{
  "match_info": {
    "home_team": "Celta",
    "away_team": "R. Racing Club",
    "tournament": "LaLiga",
    "date": "20260919",
    "timezone": "America/New_York",
    "home_formation": "3-5-2",
    "away_formation": "3-5-2",
    "lineup_status": "projected_from_squad",
    "lineup_source": "/teams/get-squad",
    "lineup_confirmed": false,
    "lineup_confidence": 0.45
  },
  "prediction": {
    "most_likely_score": "1-1",
    "home_goals": 1,
    "away_goals": 1,
    "most_likely_score_probability": 0.1366,
    "match_resolution": "draw",
    "predicted_winner": null,
    "tiebreaker": {
      "applies": false,
      "method": "none",
      "regulation_draw_probability": 0.3077,
      "shootout_home_win_probability": null,
      "shootout_away_win_probability": null,
      "penalty_home_goals": null,
      "penalty_away_goals": null,
      "penalty_score": null,
      "penalty_winner": null,
      "penalty_winner_goals": null,
      "penalty_loser_goals": null,
      "penalty_result": null,
      "home_advance_probability": null,
      "away_advance_probability": null,
      "projected_winner": null,
      "projected_winner_probability": null,
      "final_score_after_penalties": null,
      "reason": "Tie-breaker not required for this match context."
    },
    "top_5_scorelines": [
      {
        "score": "1-1",
        "probability": 0.1366
      },
      {
        "score": "0-0",
        "probability": 0.1316
      },
      {
        "score": "1-0",
        "probability": 0.1315
      },
      {
        "score": "0-1",
        "probability": 0.1313
      },
      {
        "score": "2-1",
        "probability": 0.069
      }
    ],
    "scoreline_probabilities": {
      "0-0": 0.1316,
      "0-1": 0.1313,
      "0-2": 0.0675,
      "0-3": 0.0229,
      "0-4": 0.0058,
      "0-5": 0.0012,
      "1-0": 0.1315,
      "1-1": 0.1366,
      "1-2": 0.0689,
      "1-3": 0.0234,
      "1-4": 0.0059,
      "1-5": 0.0012,
      "2-0": 0.0678,
      "2-1": 0.069,
      "2-2": 0.0351,
      "2-3": 0.0119,
      "2-4": 0.003,
      "2-5": 0.0006,
      "3-0": 0.023,
      "3-1": 0.0235,
      "3-2": 0.0119,
      "3-3": 0.0041,
      "3-4": 0.001,
      "4-0": 0.0059,
      "4-1": 0.006,
      "4-2": 0.003,
      "4-3": 0.001,
      "5-0": 0.0012,
      "5-1": 0.0012,
      "5-2": 0.0006
    },
    "outcome": {
      "home_win": 0.3467,
      "draw": 0.3077,
      "away_win": 0.3456
    },
    "markets": {
      "over_2_5_goals": 0.3336,
      "under_2_5_goals": 0.6664,
      "btts_yes": 0.4097,
      "btts_no": 0.5903,
      "home_clean_sheet": 0.3613,
      "away_clean_sheet": 0.3606
    },
    "home_ratings": {
      "DR": 6.74,
      "MCR": 7.01,
      "ATR": 6.79,
      "GK": 6.76
    },
    "away_ratings": {
      "DR": 6.67,
      "MCR": 6.79,
      "ATR": 6.85,
      "GK": 7.11
    },
    "insights": {
      "summary": "Antagonist matchup analysis for Celta vs R. Racing Club. Most likely scoreline: 1-1. Lambdas derived from 6 home and 6 away individual player duels.",
      "key_player": "Projected scorer(s): Ferrán Jutglà, Yassir Zabiri",
      "tactical_analysis": "Tactical parity between 3-5-2 and 3-5-2. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Williot Swedberg vs Andrés Martín will be the pivotal duel. Total antagonist xG — Home: 0.55, Away: 0.62. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Central Mid vs Defensive Mid — Pressing/Creation Duel."
    },
    "confidence": 0.56,
    "home_lambda": 1.02,
    "away_lambda": 1.018,
    "modal_scoreline": null,
    "modal_scoreline_probability": null,
    "headline_policy": null
  },
  "pregame_baseline": {
    "fair_win_probability": {
      "home_win": 0.3467,
      "draw": 0.3077,
      "away_win": 0.3456
    },
    "favorite": "Celta",
    "favorite_win_probability": 0.3467,
    "fair_spread": 0.002,
    "fair_total": 2.038,
    "prop_estimates": [
      {
        "market": "team_total_goals",
        "selection": "Celta",
        "estimate": 1.02,
        "probability": null,
        "unit": "goals"
      },
      {
        "market": "team_total_goals",
        "selection": "R. Racing Club",
        "estimate": 1.018,
        "probability": null,
        "unit": "goals"
      },
      {
        "market": "over_2_5_goals",
        "selection": "yes",
        "estimate": 2.5,
        "probability": 0.3336,
        "unit": "probability"
      },
      {
        "market": "both_teams_to_score",
        "selection": "yes",
        "estimate": 1.0,
        "probability": 0.4097,
        "unit": "probability"
      },
      {
        "market": "clean_sheet",
        "selection": "Celta",
        "estimate": 1.0,
        "probability": 0.3613,
        "unit": "probability"
      },
      {
        "market": "clean_sheet",
        "selection": "R. Racing Club",
        "estimate": 1.0,
        "probability": 0.3606,
        "unit": "probability"
      },
      {
        "market": "anytime_goal",
        "selection": "Jones El-Abdellaoui (Celta)",
        "estimate": 0.1967,
        "probability": 0.2964,
        "unit": "xG"
      },
      {
        "market": "anytime_goal",
        "selection": "Andrés Martín (R. Racing Club)",
        "estimate": 0.2317,
        "probability": 0.096,
        "unit": "xG"
      },
      {
        "market": "assist",
        "selection": "Hugo Álvarez (Celta)",
        "estimate": 0.1178,
        "probability": 0.1761,
        "unit": "xA"
      },
      {
        "market": "assist",
        "selection": "Iñigo Vicente (R. Racing Club)",
        "estimate": 0.1392,
        "probability": 0.2713,
        "unit": "xA"
      }
    ],
    "expected_pace": {
      "tempo": "balanced",
      "expected_total_goals": 2.038,
      "expected_total_shots": 22,
      "expected_total_passes": 624,
      "expected_pressing_actions_per_90": 13.2,
      "possession_home_pct": 51.0,
      "possession_away_pct": 49.0,
      "notes": "possession projects near even"
    },
    "expected_game_script": {
      "favorite": "Celta",
      "favorite_win_probability": 0.3467,
      "script": "Celta is the fair winner side, but the baseline remains narrow: fair spread +0.00 goals and fair total 2.04.",
      "first_half": "Expect balanced tempo while both sides test the matchup thesis; shot baseline is about 11 first-half attempts.",
      "second_half": "If level after halftime, midfield control and bench quality should decide territory; R. Racing Club must keep the match inside one goal.",
      "late_game": "A Celta lead likely shifts toward control and counters; a draw state keeps set pieces and transition chances live."
    },
    "key_matchup_thesis": "R. Racing Club chance creation leans on Andrés Martín against Ilaix Moriba in Central Mid vs Defensive Mid — Pressing/Creation Duel; possession projects near even.",
    "expected_rotation_usage_behavior": [
      "Celta: starters carry the main goal usage through Ferrán Jutglà; bench watchlist: Couhaib Driouech, Javier Rueda, Pablo Durán.",
      "R. Racing Club: starters carry the main goal usage through Yassir Zabiri; bench watchlist: Asier Villalibre, Juan Carlos Arana.",
      "Assist usage should flow through Miguel Román, Iñigo Vicente; late lineup changes should re-score these allocations."
    ],
    "pregame_play_by_play": [
      "0-15: Celta tries to establish the projected edge; track possession and first-shot share.",
      "15-45: Baseline expects balanced tempo, about 11 total first-half shots, and 1.02 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 R. Racing Club 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 Celta.",
      "R. Racing Club 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": {
    "Celta": {
      "formation": "3-5-2",
      "players": {
        "Ionuț Radu": {
          "player_id": 815202,
          "position": "G",
          "position_depth": "G",
          "is_starter": true,
          "shirt_number": 13,
          "height": 188,
          "market_value": 8700000,
          "stats": {
            "saves": 3,
            "goals_prevented": 0.0,
            "rating": 6.7577,
            "minutes": 90,
            "total_pass": 33,
            "accurate_pass": 24,
            "duels_won": 0,
            "total_long_balls": 12,
            "accurate_long_balls": 3,
            "touches": 44,
            "clearances": 2,
            "ball_recovery": 11,
            "high_claims": 1,
            "punches": 0.0,
            "aerial_won": 0,
            "sweeper_actions": 0,
            "sweeper_accurate": 0,
            "saves_inside_box": 0,
            "possession_lost": 9.0191,
            "duels_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "total_own_half_passes": 23,
            "accurate_own_half_passes": 22,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "total_shots": 0,
            "shots_on_target": 0,
            "goalsAgainst": 1.0,
            "shotsOnTargetAgainst": 4.5,
            "cleanSheets": 0.5,
            "interceptions": 0,
            "tackles_won": 0,
            "crosses_total": 0,
            "offsides": 0,
            "yellowCards": 0.25,
            "redCards": 0.0,
            "penaltySave": 0.0,
            "ownGoals": 0.0,
            "savePct": 77.8,
            "cleanSheetPct": 50.0,
            "minutesPct": 100.0,
            "pointsPerMatch": 0.5,
            "netGoalDifferencePer90": 0.0,
            "expected_saves": 1.3,
            "high_pressure_saves": 0.5,
            "shots_faced": 2.8,
            "opponent_faced": "Andrés Martín, Yassir Zabiri",
            "matchup_zone": "Goalkeeper shot-stopping context",
            "antagonist_source": "formation_fallback",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "expected_goals": 0.0,
            "expected_assists": 0.0,
            "fifa_overall": 78.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16416347.0,
              "match_date": "2026-09-13 12: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": "Celta",
              "away_team": "Málaga",
              "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": "Celta",
              "opponent": "Málaga",
              "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": "away",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Getafe",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assists": 0,
                "expected_assists": 0.0004,
                "total_shots": 0,
                "total_pass": 24,
                "accurate_pass": 21,
                "clearances": 1,
                "ball_recovery": 12,
                "saves": 1,
                "goals_prevented": -0.0814
              },
              "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": 16416340.0,
              "match_date": "2026-09-03",
              "home_team": "Real Sociedad",
              "away_team": "Celta Vigo",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 90,
                "rating": 8.2,
                "assists": 0,
                "expected_assists": 0.0007,
                "total_shots": 0,
                "total_pass": 30,
                "accurate_pass": 20,
                "clearances": 2,
                "duels_won": 1,
                "ball_recovery": 10,
                "saves": 5,
                "goals_prevented": 0.8429
              },
              "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": 16416308.0,
              "match_date": "2026-08-30",
              "home_team": "Celta Vigo",
              "away_team": "Athletic Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 90,
                "rating": 8.5,
                "assists": 0,
                "expected_assists": 0.002,
                "total_shots": 0,
                "total_pass": 46,
                "accurate_pass": 38,
                "clearances": 3,
                "ball_recovery": 14,
                "saves": 5,
                "goals_prevented": 0.8261
              },
              "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": 16815992.0,
              "match_date": "2026-08-27",
              "home_team": "Celta Vigo",
              "away_team": "Osasuna",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 90,
                "rating": 5.9,
                "assists": 0,
                "expected_assists": 0.0052,
                "total_shots": 0,
                "total_pass": 44,
                "accurate_pass": 27,
                "clearances": 2,
                "duels_won": 1,
                "ball_recovery": 10,
                "saves": 2,
                "goals_prevented": -0.6642
              },
              "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": 16416298.0,
              "match_date": "2026-08-22",
              "home_team": "Valencia",
              "away_team": "Celta Vigo",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Valencia",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assists": 0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "total_pass": 22,
                "accurate_pass": 15,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 7,
                "saves": 2,
                "goals_prevented": 0.1435
              },
              "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": 1679,
            "combined_rank_score": 681.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 129.0,
            "sofascore_rating": 7.375,
            "sofascore_appearances": 4.0,
            "fifa_rank": 1234.0,
            "fifa_overall": 78.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 7,
            "squad_role": "starter",
            "projected_match_rating": 6.7577,
            "source_file": "data/player_rankings.csv",
            "player_name": "Ionuț Radu",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Jonathan Burkardt",
                  "ranking": 1674
                },
                {
                  "player_name": "Reinildo",
                  "ranking": 1675
                },
                {
                  "player_name": "Lucas Hernández",
                  "ranking": 1676
                },
                {
                  "player_name": "Davide Zappacosta",
                  "ranking": 1677
                },
                {
                  "player_name": "Vicente Fernández",
                  "ranking": 1678
                }
              ],
              "lower": [
                {
                  "player_name": "Beom-su Lee",
                  "ranking": 1680
                },
                {
                  "player_name": "Hyeon-oh Kim",
                  "ranking": 1681
                },
                {
                  "player_name": "Osvaldo Bosso",
                  "ranking": 1682
                },
                {
                  "player_name": "Guillermo Pacheco",
                  "ranking": 1683
                },
                {
                  "player_name": "Jovany Campusano",
                  "ranking": 1684
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.603,
          "history_matches": 5,
          "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": 5,
            "data_confidence": 0.603,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0021,
            "fbref_prior_metrics": {
              "squad": "Celta Vigo",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 4.0,
              "starts": 4.0,
              "minutes": 360.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.0,
              "prior_reliability": 0.2667
            },
            "rationale": "XGBoost regressor (G_service) evaluated 5 historical appearances across 3 target models; FBref 2026-2027 prior blended (La Liga, Celta Vigo, rel: 0.27, 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.0,
                "rating": 6.7434,
                "minutes": 90,
                "total_pass": 33,
                "accurate_pass": 24,
                "duels_won": 0,
                "total_long_balls": 12,
                "accurate_long_balls": 3,
                "touches": 44,
                "clearances": 2,
                "ball_recovery": 11,
                "high_claims": 1,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 9.0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 22
              },
              "trace": {
                "model": {
                  "position_service": "G",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:40.064367+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 113,
                    "rows": 393
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Getafe",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2696,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-09-03",
                    "opponent": "Real Sociedad",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2292,
                    "rating": 8.2
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Athletic Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1948,
                    "rating": 8.5
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "Osasuna",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1656,
                    "rating": 5.9
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Valencia",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1408,
                    "rating": 6.9
                  }
                ],
                "feature_row": {
                  "history_matches": 5.0,
                  "is_starting_11": 1.0,
                  "sweeper_actions_p90": 1.0772,
                  "touches": 43.9357,
                  "totalOwnHalfPasses": 22.708,
                  "punches": 0.9596,
                  "distribution_accuracy": 0.9881,
                  "accurateKeeperSweeper": 1.0772
                },
                "per_target": [
                  {
                    "target": "saves",
                    "predicted": 2.7684178352355957,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "sweeper_actions_p90",
                        "importance": 0.0587
                      },
                      {
                        "name": "accurateKeeperSweeper",
                        "importance": 0.0534
                      },
                      {
                        "name": "touches",
                        "importance": 0.0497
                      },
                      {
                        "name": "totalOwnHalfPasses",
                        "importance": 0.049
                      },
                      {
                        "name": "distribution_accuracy",
                        "importance": 0.043
                      }
                    ],
                    "decomposition": {
                      "base": 2.9806,
                      "items": [
                        {
                          "name": "distribution_accuracy",
                          "contribution": -0.1355
                        },
                        {
                          "name": "sweeper_actions_p90",
                          "contribution": -0.1079
                        },
                        {
                          "name": "totalOwnHalfPasses",
                          "contribution": -0.0482
                        },
                        {
                          "name": "goalkeeperValueNormalized",
                          "contribution": -0.0448
                        },
                        {
                          "name": "commanding_index",
                          "contribution": 0.0289
                        }
                      ],
                      "others": 0.0953,
                      "total": 2.7684
                    }
                  },
                  {
                    "target": "goalsPrevented",
                    "predicted": 0.0,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "sweeper_actions_p90",
                        "importance": 0.053
                      },
                      {
                        "name": "punches",
                        "importance": 0.051
                      },
                      {
                        "name": "touches",
                        "importance": 0.0482
                      },
                      {
                        "name": "accurateLongBalls",
                        "importance": 0.0468
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0432
                      }
                    ],
                    "decomposition": {
                      "base": -0.0536,
                      "items": [
                        {
                          "name": "commanding_index",
                          "contribution": -0.0879
                        },
                        {
                          "name": "inside_box_save_rate",
                          "contribution": -0.0449
                        },
                        {
                          "name": "touches",
                          "contribution": 0.0441
                        },
                        {
                          "name": "sweeper_actions_p90",
                          "contribution": -0.0356
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.023
                        }
                      ],
                      "others": -0.0427,
                      "total": -0.1976
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.7434000968933105,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "sweeper_actions_p90",
                        "importance": 0.0593
                      },
                      {
                        "name": "touches",
                        "importance": 0.0495
                      },
                      {
                        "name": "distribution_accuracy",
                        "importance": 0.0484
                      },
                      {
                        "name": "savedShotsFromInsideTheBox",
                        "importance": 0.0468
                      },
                      {
                        "name": "punches",
                        "importance": 0.0464
                      }
                    ],
                    "decomposition": {
                      "base": 7.0716,
                      "items": [
                        {
                          "name": "distribution_accuracy",
                          "contribution": -0.1415
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.1036
                        },
                        {
                          "name": "sweeper_actions_p90",
                          "contribution": -0.0962
                        },
                        {
                          "name": "commanding_index",
                          "contribution": 0.0607
                        },
                        {
                          "name": "inside_box_save_rate",
                          "contribution": -0.055
                        }
                      ],
                      "others": 0.0074,
                      "total": 6.7434
                    }
                  }
                ],
                "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.0021, quality 0.507)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0,
                "rating": 6.7577,
                "minutes": 90,
                "total_pass": 33,
                "accurate_pass": 24,
                "duels_won": 0,
                "total_long_balls": 12,
                "accurate_long_balls": 3,
                "touches": 44,
                "clearances": 2,
                "ball_recovery": 11,
                "high_claims": 1,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 9.0191,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 22
              },
              "params": {
                "market_value_eur": 8700000,
                "quality_factor": 0.5071,
                "boost_factor": 1.0021
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0867)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0,
                "rating": 6.7577,
                "minutes": 90,
                "total_pass": 33,
                "accurate_pass": 24,
                "duels_won": 0,
                "total_long_balls": 12,
                "accurate_long_balls": 3,
                "touches": 44,
                "clearances": 2,
                "ball_recovery": 11,
                "high_claims": 1,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 9.0191,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 22,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 1.0,
                "shotsOnTargetAgainst": 4.5,
                "cleanSheets": 0.5,
                "interceptions": 0,
                "tackles_won": 0,
                "crosses_total": 0,
                "offsides": 0,
                "yellowCards": 0.25,
                "redCards": 0.0,
                "penaltySave": 0.0,
                "ownGoals": 0.0,
                "savePct": 77.8,
                "cleanSheetPct": 50.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": -0.75
              },
              "params": {
                "blend_weight": 0.0867,
                "history_matches": 5,
                "prior_reliability": 0.2667,
                "competition": "La Liga",
                "squad": "Celta Vigo"
              },
              "changes": [
                {
                  "stat": "saves",
                  "before": 2.7743,
                  "after": 2.8372
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0217
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0,
                "rating": 6.7577,
                "minutes": 90,
                "total_pass": 33,
                "accurate_pass": 24,
                "duels_won": 0,
                "total_long_balls": 12,
                "accurate_long_balls": 3,
                "touches": 44,
                "clearances": 2,
                "ball_recovery": 11,
                "high_claims": 1,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 9.0191,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 22,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 1.0,
                "shotsOnTargetAgainst": 4.5,
                "cleanSheets": 0.5,
                "interceptions": 0,
                "tackles_won": 0,
                "crosses_total": 0,
                "offsides": 0,
                "yellowCards": 0.25,
                "redCards": 0.0,
                "penaltySave": 0.0,
                "ownGoals": 0.0,
                "savePct": 77.8,
                "cleanSheetPct": 50.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.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": {
                "saves": 3,
                "goals_prevented": 0.0,
                "rating": 6.7577,
                "minutes": 90,
                "total_pass": 33,
                "accurate_pass": 24,
                "duels_won": 0,
                "total_long_balls": 12,
                "accurate_long_balls": 3,
                "touches": 44,
                "clearances": 2,
                "ball_recovery": 11,
                "high_claims": 1,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 9.0191,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 22,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 1.0,
                "shotsOnTargetAgainst": 4.5,
                "cleanSheets": 0.5,
                "interceptions": 0,
                "tackles_won": 0,
                "crosses_total": 0,
                "offsides": 0,
                "yellowCards": 0.25,
                "redCards": 0.0,
                "penaltySave": 0.0,
                "ownGoals": 0.0,
                "savePct": 77.8,
                "cleanSheetPct": 50.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "expected_saves": 1.3,
                "high_pressure_saves": 0.5,
                "shots_faced": 2.8,
                "opponent_faced": "Andrés Martín, Yassir Zabiri",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Andrés Martín, Yassir Zabiri",
                  "matchup_zone": "Goalkeeper shot-stopping context"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.6582, xG scale 1.5497)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0,
                "rating": 6.7577,
                "minutes": 90,
                "total_pass": 33,
                "accurate_pass": 24,
                "duels_won": 0,
                "total_long_balls": 12,
                "accurate_long_balls": 3,
                "touches": 44,
                "clearances": 2,
                "ball_recovery": 11,
                "high_claims": 1,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 9.0191,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 22,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 1.0,
                "shotsOnTargetAgainst": 4.5,
                "cleanSheets": 0.5,
                "interceptions": 0,
                "tackles_won": 0,
                "crosses_total": 0,
                "offsides": 0,
                "yellowCards": 0.25,
                "redCards": 0.0,
                "penaltySave": 0.0,
                "ownGoals": 0.0,
                "savePct": 77.8,
                "cleanSheetPct": 50.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "expected_saves": 1.3,
                "high_pressure_saves": 0.5,
                "shots_faced": 2.8,
                "opponent_faced": "Andrés Martín, Yassir Zabiri",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0
              },
              "params": {
                "team_lambda": 1.02,
                "squad_xg_sum": 0.6582,
                "xg_scale": 1.5497,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 7, fifa_overall 78.0)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0,
                "rating": 6.7577,
                "minutes": 90,
                "total_pass": 33,
                "accurate_pass": 24,
                "duels_won": 0,
                "total_long_balls": 12,
                "accurate_long_balls": 3,
                "touches": 44,
                "clearances": 2,
                "ball_recovery": 11,
                "high_claims": 1,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 9.0191,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 22,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 1.0,
                "shotsOnTargetAgainst": 4.5,
                "cleanSheets": 0.5,
                "interceptions": 0,
                "tackles_won": 0,
                "crosses_total": 0,
                "offsides": 0,
                "yellowCards": 0.25,
                "redCards": 0.0,
                "penaltySave": 0.0,
                "ownGoals": 0.0,
                "savePct": 77.8,
                "cleanSheetPct": 50.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "expected_saves": 1.3,
                "high_pressure_saves": 0.5,
                "shots_faced": 2.8,
                "opponent_faced": "Andrés Martín, Yassir Zabiri",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "fifa_overall": 78.0
              },
              "params": {
                "match_squad_rank": 7,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 1679,
                "fifa_rank": 1234.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 78.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0,
                "rating": 6.7577,
                "minutes": 90,
                "total_pass": 33,
                "accurate_pass": 24,
                "duels_won": 0,
                "total_long_balls": 12,
                "accurate_long_balls": 3,
                "touches": 44,
                "clearances": 2,
                "ball_recovery": 11,
                "high_claims": 1,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 9.0191,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 22,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 1.0,
                "shotsOnTargetAgainst": 4.5,
                "cleanSheets": 0.5,
                "interceptions": 0,
                "tackles_won": 0,
                "crosses_total": 0,
                "offsides": 0,
                "yellowCards": 0.25,
                "redCards": 0.0,
                "penaltySave": 0.0,
                "ownGoals": 0.0,
                "savePct": 77.8,
                "cleanSheetPct": 50.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "expected_saves": 1.3,
                "high_pressure_saves": 0.5,
                "shots_faced": 2.8,
                "opponent_faced": "Andrés Martín, Yassir Zabiri",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 0.0,
                "squad_weight_total": 9.3177,
                "weight_share": 0.0,
                "position_multiplier": 0.0
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0,
                "rating": 6.7577,
                "minutes": 90,
                "total_pass": 33,
                "accurate_pass": 24,
                "duels_won": 0,
                "total_long_balls": 12,
                "accurate_long_balls": 3,
                "touches": 44,
                "clearances": 2,
                "ball_recovery": 11,
                "high_claims": 1,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 9.0191,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 22,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 1.0,
                "shotsOnTargetAgainst": 4.5,
                "cleanSheets": 0.5,
                "interceptions": 0,
                "tackles_won": 0,
                "crosses_total": 0,
                "offsides": 0,
                "yellowCards": 0.25,
                "redCards": 0.0,
                "penaltySave": 0.0,
                "ownGoals": 0.0,
                "savePct": 77.8,
                "cleanSheetPct": 50.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "expected_saves": 1.3,
                "high_pressure_saves": 0.5,
                "shots_faced": 2.8,
                "opponent_faced": "Andrés Martín, Yassir Zabiri",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0,
                "provider_weight": 0.0,
                "squad_weight_total": 8.6707,
                "weight_share": 0.0,
                "position_multiplier": 0.0
              }
            }
          ]
        },
        "Javi Rodríguez": {
          "player_id": 1526627,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 20,
          "height": 184,
          "market_value": 17500000,
          "stats": {
            "interceptions": 1,
            "tackles": 1,
            "tackles_won": 1,
            "clearances": 3,
            "aerial_won": 1,
            "rating": 6.8446,
            "minutes": 61,
            "total_pass": 51,
            "accurate_pass": 46,
            "duels_won": 4,
            "total_long_balls": 5,
            "accurate_long_balls": 2,
            "total_own_half_passes": 28,
            "accurate_own_half_passes": 27,
            "total_opp_half_passes": 23,
            "accurate_opp_half_passes": 20,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 57,
            "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,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0206,
            "total_shots": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 18,
            "total_progression": 91,
            "progressive_carries": 2,
            "key_pass": 0,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 100.0,
            "shotConversion": 0.0,
            "minutesPct": 64.4,
            "pointsPerMatch": 0.5,
            "netGoalDifferencePer90": 0.0,
            "tackles_in_zone": 1.0,
            "tackles_won_in_zone": 1.2,
            "interceptions_in_zone": 1.0,
            "clearances_in_zone": 0.8,
            "aerial_duels_won": 0.7,
            "defensive_success_rate": 0.82,
            "opponent_faced": "Yassir Zabiri",
            "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.0173,
            "projected_assists": 0,
            "assist_probability": 0.0121,
            "fifa_overall": 76.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16416347.0,
              "match_date": "2026-09-13 12: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": "Celta",
              "away_team": "Málaga",
              "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": "Celta",
              "opponent": "Málaga",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16416340.0,
              "match_date": "2026-09-03",
              "home_team": "Real Sociedad",
              "away_team": "Celta Vigo",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Celta Vigo",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 12,
                "rating": 6.7,
                "assists": 0,
                "expected_assists": 0.001,
                "total_shots": 0,
                "total_pass": 5,
                "accurate_pass": 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": 16416308.0,
              "match_date": "2026-08-30",
              "home_team": "Celta Vigo",
              "away_team": "Athletic Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 45,
                "rating": 6.1,
                "assists": 0,
                "expected_assists": 0.0044,
                "total_shots": 0,
                "total_pass": 38,
                "accurate_pass": 30,
                "tackles": 1,
                "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"
            },
            {
              "match_id": 16815992.0,
              "match_date": "2026-08-27",
              "home_team": "Celta Vigo",
              "away_team": "Osasuna",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 90,
                "rating": 6.2,
                "assists": 0,
                "expected_assists": 0.046,
                "total_shots": 0,
                "total_pass": 72,
                "accurate_pass": 65,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 1,
                "duels_won": 2,
                "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": 16416298.0,
              "match_date": "2026-08-22",
              "home_team": "Valencia",
              "away_team": "Celta Vigo",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Valencia",
              "stats": {
                "minutes": 90,
                "rating": 7.1,
                "assists": 0,
                "expected_goals": 0.0149,
                "expected_assists": 0.0326,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 84,
                "accurate_pass": 80,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 4,
                "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"
            }
          ],
          "ranking": {
            "global_player_rank": 3352,
            "combined_rank_score": 1302.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 616.0,
            "sofascore_rating": 6.7727,
            "sofascore_appearances": 33.0,
            "fifa_rank": 1988.0,
            "fifa_overall": 76.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 2,
            "squad_role": "starter",
            "projected_match_rating": 6.8446,
            "source_file": "data/player_rankings.csv",
            "player_name": "Javi Rodríguez",
            "ranking_neighbors": {
              "upper": [
                {
                  "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
                }
              ],
              "lower": [
                {
                  "player_name": "Kristian Thorstvedt",
                  "ranking": 3353
                },
                {
                  "player_name": "Danilo Santos",
                  "ranking": 3354
                },
                {
                  "player_name": "Soufiane Rahimi",
                  "ranking": 3355
                },
                {
                  "player_name": "Héctor Bellerín",
                  "ranking": 3356
                },
                {
                  "player_name": "Lucas Perri",
                  "ranking": 3357
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.526,
          "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",
              "rating"
            ],
            "history_matches": 4,
            "data_confidence": 0.526,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0317,
            "fbref_prior_metrics": {
              "squad": "Celta Vigo",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 4.0,
              "starts": 3.0,
              "minutes": 232.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.39,
              "shots_on_target_pct": 100.0,
              "prior_reliability": 0.1733
            },
            "rationale": "XGBoost regressor (D_service) evaluated 4 historical appearances across 6 target models; FBref 2026-2027 prior blended (La Liga, Celta Vigo, rel: 0.17, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 6 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "rating": 6.6341,
                "minutes": 59,
                "total_pass": 50,
                "accurate_pass": 45,
                "duels_won": 4,
                "total_long_balls": 5,
                "accurate_long_balls": 2,
                "total_own_half_passes": 27,
                "accurate_own_half_passes": 26,
                "total_opp_half_passes": 23,
                "accurate_opp_half_passes": 19,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 55,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.02,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 88,
                "progressive_carries": 2,
                "key_pass": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:44.724055+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 374,
                    "rows": 1289
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-03",
                    "opponent": "Real Sociedad",
                    "minutes": 12.0,
                    "is_starting": false,
                    "weight": 0.3138,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Athletic Club",
                    "minutes": 45.0,
                    "is_starting": true,
                    "weight": 0.2667,
                    "rating": 6.1
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "Osasuna",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2267,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Valencia",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1927,
                    "rating": 7.1
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 1.0,
                  "accuratePass": 39.7262,
                  "touches_p90": 69.9286,
                  "possessionLostCtrl": 4.9514,
                  "totalClearance": 1.2643,
                  "aerialWon": 0.0
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.9104719758033752,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0944
                      },
                      {
                        "name": "duel_win_rate",
                        "importance": 0.0353
                      },
                      {
                        "name": "duelWon_p90",
                        "importance": 0.0341
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0326
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0322
                      }
                    ],
                    "decomposition": {
                      "base": 0.9108,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0446
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.038
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": -0.0265
                        },
                        {
                          "name": "interceptionWon_p90",
                          "contribution": -0.0148
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0124
                        }
                      ],
                      "others": -0.0292,
                      "total": 0.9105
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.185563325881958,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0588
                      },
                      {
                        "name": "duelLost",
                        "importance": 0.0461
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0446
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0406
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0401
                      }
                    ],
                    "decomposition": {
                      "base": 1.3553,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0832
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0527
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0393
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0333
                        },
                        {
                          "name": "totalProgression",
                          "contribution": 0.0255
                        }
                      ],
                      "others": 0.0133,
                      "total": 1.1856
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.7341099381446838,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0565
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0432
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0353
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0347
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0329
                      }
                    ],
                    "decomposition": {
                      "base": 0.8675,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.1246
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0523
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0445
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0321
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0262
                        }
                      ],
                      "others": 0.0573,
                      "total": 0.7341
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 3.126490354537964,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0506
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0425
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0417
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 3.4032,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": -0.4989
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.4394
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.351
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.3504
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.133
                        }
                      ],
                      "others": -0.0848,
                      "total": 3.1265
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 1.1039799451828003,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0798
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0597
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0439
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0426
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0411
                      }
                    ],
                    "decomposition": {
                      "base": 1.2421,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": -0.0799
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0538
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0527
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0472
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0392
                        }
                      ],
                      "others": -0.0491,
                      "total": 1.104
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.634052753448486,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches_p90",
                        "importance": 0.0708
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0705
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0537
                      },
                      {
                        "name": "pass_accuracy",
                        "importance": 0.0518
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 6.6627,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0524
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0466
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.044
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": -0.0422
                        },
                        {
                          "name": "press_vulnerability",
                          "contribution": 0.0276
                        }
                      ],
                      "others": 0.0358,
                      "total": 6.6341
                    }
                  }
                ],
                "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.0317, quality 0.606)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "rating": 6.8446,
                "minutes": 61,
                "total_pass": 51,
                "accurate_pass": 46,
                "duels_won": 4,
                "total_long_balls": 5,
                "accurate_long_balls": 2,
                "total_own_half_passes": 28,
                "accurate_own_half_passes": 27,
                "total_opp_half_passes": 23,
                "accurate_opp_half_passes": 20,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0206,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 91,
                "progressive_carries": 2,
                "key_pass": 0
              },
              "params": {
                "market_value_eur": 17500000,
                "quality_factor": 0.6058,
                "boost_factor": 1.0317
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0626)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "rating": 6.8446,
                "minutes": 61,
                "total_pass": 51,
                "accurate_pass": 46,
                "duels_won": 4,
                "total_long_balls": 5,
                "accurate_long_balls": 2,
                "total_own_half_passes": 28,
                "accurate_own_half_passes": 27,
                "total_opp_half_passes": 23,
                "accurate_opp_half_passes": 20,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0206,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 91,
                "progressive_carries": 2,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 64.4,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": -1.16
              },
              "params": {
                "blend_weight": 0.0626,
                "history_matches": 4,
                "prior_reliability": 0.1733,
                "competition": "La Liga",
                "squad": "Celta Vigo"
              },
              "changes": [
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.0,
                  "after": 0.0244
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0241
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0241
                },
                {
                  "stat": "wonTackle",
                  "before": 0.7574,
                  "after": 0.7341
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.9394,
                  "after": 0.9528
                },
                {
                  "stat": "totalShots",
                  "before": 0.2579,
                  "after": 0.2662
                }
              ]
            },
            {
              "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,
                "rating": 6.8446,
                "minutes": 61,
                "total_pass": 51,
                "accurate_pass": 46,
                "duels_won": 4,
                "total_long_balls": 5,
                "accurate_long_balls": 2,
                "total_own_half_passes": 28,
                "accurate_own_half_passes": 27,
                "total_opp_half_passes": 23,
                "accurate_opp_half_passes": 20,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0206,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 91,
                "progressive_carries": 2,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 64.4,
                "pointsPerMatch": 0.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": 3,
                "aerial_won": 1,
                "rating": 6.8446,
                "minutes": 61,
                "total_pass": 51,
                "accurate_pass": 46,
                "duels_won": 4,
                "total_long_balls": 5,
                "accurate_long_balls": 2,
                "total_own_half_passes": 28,
                "accurate_own_half_passes": 27,
                "total_opp_half_passes": 23,
                "accurate_opp_half_passes": 20,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0206,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 91,
                "progressive_carries": 2,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 64.4,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.2,
                "interceptions_in_zone": 1.0,
                "clearances_in_zone": 0.8,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Yassir Zabiri",
                "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": "Yassir Zabiri",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.6582, xG scale 1.5497)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "rating": 6.8446,
                "minutes": 61,
                "total_pass": 51,
                "accurate_pass": 46,
                "duels_won": 4,
                "total_long_balls": 5,
                "accurate_long_balls": 2,
                "total_own_half_passes": 28,
                "accurate_own_half_passes": 27,
                "total_opp_half_passes": 23,
                "accurate_opp_half_passes": 20,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0206,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 91,
                "progressive_carries": 2,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 64.4,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.2,
                "interceptions_in_zone": 1.0,
                "clearances_in_zone": 0.8,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Yassir Zabiri",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.02,
                "squad_xg_sum": 0.6582,
                "xg_scale": 1.5497,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 2, fifa_overall 76.0)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "rating": 6.8446,
                "minutes": 61,
                "total_pass": 51,
                "accurate_pass": 46,
                "duels_won": 4,
                "total_long_balls": 5,
                "accurate_long_balls": 2,
                "total_own_half_passes": 28,
                "accurate_own_half_passes": 27,
                "total_opp_half_passes": 23,
                "accurate_opp_half_passes": 20,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0206,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 91,
                "progressive_carries": 2,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 64.4,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.2,
                "interceptions_in_zone": 1.0,
                "clearances_in_zone": 0.8,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Yassir Zabiri",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 76.0
              },
              "params": {
                "match_squad_rank": 2,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3352,
                "fifa_rank": 1988.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 76.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "rating": 6.8446,
                "minutes": 61,
                "total_pass": 51,
                "accurate_pass": 46,
                "duels_won": 4,
                "total_long_balls": 5,
                "accurate_long_balls": 2,
                "total_own_half_passes": 28,
                "accurate_own_half_passes": 27,
                "total_opp_half_passes": 23,
                "accurate_opp_half_passes": 20,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0206,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 91,
                "progressive_carries": 2,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 64.4,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.2,
                "interceptions_in_zone": 1.0,
                "clearances_in_zone": 0.8,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Yassir Zabiri",
                "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.0173,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 76.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0173,
                "scorer_weight": 0.1614,
                "squad_weight_total": 9.3177,
                "weight_share": 0.0173,
                "position_multiplier": 0.38
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "rating": 6.8446,
                "minutes": 61,
                "total_pass": 51,
                "accurate_pass": 46,
                "duels_won": 4,
                "total_long_balls": 5,
                "accurate_long_balls": 2,
                "total_own_half_passes": 28,
                "accurate_own_half_passes": 27,
                "total_opp_half_passes": 23,
                "accurate_opp_half_passes": 20,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0206,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 91,
                "progressive_carries": 2,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 64.4,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.2,
                "interceptions_in_zone": 1.0,
                "clearances_in_zone": 0.8,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Yassir Zabiri",
                "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.0173,
                "projected_assists": 0,
                "assist_probability": 0.0121,
                "fifa_overall": 76.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0121,
                "provider_weight": 0.105,
                "squad_weight_total": 8.6707,
                "weight_share": 0.0121,
                "position_multiplier": 0.45
              }
            }
          ]
        },
        "Abdoulaye Faye": {
          "player_id": 1529051,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 4,
          "height": 191,
          "market_value": 4200000,
          "stats": {
            "interceptions": 1,
            "tackles": 1,
            "tackles_won": 1,
            "clearances": 5,
            "aerial_won": 1,
            "rating": 6.5816,
            "minutes": 44,
            "total_pass": 33,
            "accurate_pass": 32,
            "duels_won": 1,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "total_own_half_passes": 24,
            "accurate_own_half_passes": 24,
            "total_opp_half_passes": 9,
            "accurate_opp_half_passes": 8,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 40,
            "possession_lost": 0.9857,
            "dispossessed": 0.0,
            "duels_lost": 2,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 2,
            "challenges_lost": 1,
            "fouls": 1,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0,
            "total_shots": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 8,
            "total_progression": 2,
            "progressive_carries": 0,
            "key_pass": 0,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "minutesPct": 12.5,
            "pointsPerMatch": 0.0,
            "netGoalDifferencePer90": 0.0,
            "tackles_in_zone": 1.0,
            "tackles_won_in_zone": 1.1,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.6,
            "aerial_duels_won": 0.7,
            "defensive_success_rate": 0.82,
            "opponent_faced": "Yassir Zabiri",
            "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.0503,
            "projected_assists": 0,
            "assist_probability": 0.0059,
            "fifa_overall": 71.0
          },
          "latest_10_games": [
            {
              "match_id": 16416308.0,
              "match_date": "2026-08-30",
              "home_team": "Celta Vigo",
              "away_team": "Athletic Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 45,
                "rating": 6.1,
                "assists": 0,
                "expected_assists": 0.002,
                "total_shots": 0,
                "total_pass": 33,
                "accurate_pass": 32,
                "tackles": 1,
                "interceptions": 1,
                "clearances": 6,
                "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": 4920,
            "combined_rank_score": 3016.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 996.0,
            "sofascore_rating": 6.1,
            "sofascore_appearances": 1.0,
            "fifa_rank": 5036.0,
            "fifa_overall": 71.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 14,
            "squad_role": "starter",
            "projected_match_rating": 6.5816,
            "source_file": "data/player_rankings.csv",
            "player_name": "Abdoulaye Faye",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Peter Vindahl",
                  "ranking": 4915
                },
                {
                  "player_name": "Igoh Ogbu",
                  "ranking": 4916
                },
                {
                  "player_name": "Jakub Markovič",
                  "ranking": 4917
                },
                {
                  "player_name": "Matěj Ryneš",
                  "ranking": 4918
                },
                {
                  "player_name": "Patrik Vydra",
                  "ranking": 4919
                }
              ],
              "lower": [
                {
                  "player_name": "Pedrinho",
                  "ranking": 4921
                },
                {
                  "player_name": "Dmytro Riznyk",
                  "ranking": 4922
                },
                {
                  "player_name": "Gilberto Mora",
                  "ranking": 4923
                },
                {
                  "player_name": "Armando González",
                  "ranking": 4924
                },
                {
                  "player_name": "Joaquim",
                  "ranking": 4925
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.317,
          "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",
              "rating"
            ],
            "history_matches": 1,
            "data_confidence": 0.317,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.9857,
            "fbref_prior_metrics": {
              "squad": "Celta Vigo",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 1.0,
              "starts": 1.0,
              "minutes": 45.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.0,
              "prior_reliability": 0.0333
            },
            "rationale": "XGBoost regressor (D_service) evaluated 1 historical appearances across 6 target models; FBref 2026-2027 prior blended (La Liga, Celta Vigo, rel: 0.03, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 6 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 1,
                "rating": 6.6771,
                "minutes": 45,
                "total_pass": 33,
                "accurate_pass": 32,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 24,
                "accurate_own_half_passes": 24,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 41,
                "possession_lost": 1.0,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 1,
                "fouls": 1,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 2,
                "progressive_carries": 0,
                "key_pass": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:44.724055+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 374,
                    "rows": 1289
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Athletic Club",
                    "minutes": 45.0,
                    "is_starting": true,
                    "weight": 1.0,
                    "rating": 6.1
                  }
                ],
                "feature_row": {
                  "history_matches": 1.0,
                  "is_starting_11": 1.0,
                  "accuratePass": 32.0,
                  "touches_p90": 82.0,
                  "possessionLostCtrl": 1.0,
                  "totalClearance": 6.0,
                  "aerialWon": 0.0
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.9383746385574341,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0944
                      },
                      {
                        "name": "duel_win_rate",
                        "importance": 0.0353
                      },
                      {
                        "name": "duelWon_p90",
                        "importance": 0.0341
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0326
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0322
                      }
                    ],
                    "decomposition": {
                      "base": 0.9108,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0492
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.034
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0315
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0144
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0094
                        }
                      ],
                      "others": -0.0141,
                      "total": 0.9384
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.4311375617980957,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0588
                      },
                      {
                        "name": "duelLost",
                        "importance": 0.0461
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0446
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0406
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0401
                      }
                    ],
                    "decomposition": {
                      "base": 1.3553,
                      "items": [
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.1548
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.1383
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0508
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0464
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0371
                        }
                      ],
                      "others": 0.0266,
                      "total": 1.4311
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.8614025712013245,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0565
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0432
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0353
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0347
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0329
                      }
                    ],
                    "decomposition": {
                      "base": 0.8675,
                      "items": [
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.0906
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0721
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0353
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0352
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0284
                        }
                      ],
                      "others": 0.0577,
                      "total": 0.8614
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 4.64821195602417,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0506
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0425
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0417
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 3.4032,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.3883
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.3681
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.3658
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.2579
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.2568
                        }
                      ],
                      "others": 0.3397,
                      "total": 4.6482
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 1.2719173431396484,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0798
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0597
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0439
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0426
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0411
                      }
                    ],
                    "decomposition": {
                      "base": 1.2421,
                      "items": [
                        {
                          "name": "totalClearance",
                          "contribution": 0.0796
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0711
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0678
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0476
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0471
                        }
                      ],
                      "others": -0.046,
                      "total": 1.2719
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.677121162414551,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches_p90",
                        "importance": 0.0708
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0705
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0537
                      },
                      {
                        "name": "pass_accuracy",
                        "importance": 0.0518
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 6.6627,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0904
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0886
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": -0.0434
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0369
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0262
                        }
                      ],
                      "others": 0.0703,
                      "total": 6.6771
                    }
                  }
                ],
                "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.9857, quality 0.452)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 1,
                "rating": 6.5816,
                "minutes": 44,
                "total_pass": 33,
                "accurate_pass": 32,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 24,
                "accurate_own_half_passes": 24,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 40,
                "possession_lost": 0.9857,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 1,
                "fouls": 1,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 2,
                "progressive_carries": 0,
                "key_pass": 0
              },
              "params": {
                "market_value_eur": 4200000,
                "quality_factor": 0.4523,
                "boost_factor": 0.9857
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0180)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 1,
                "rating": 6.5816,
                "minutes": 44,
                "total_pass": 33,
                "accurate_pass": 32,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 24,
                "accurate_own_half_passes": 24,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 40,
                "possession_lost": 0.9857,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 1,
                "fouls": 1,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 2,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 12.5,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": -4.0
              },
              "params": {
                "blend_weight": 0.018,
                "history_matches": 1,
                "prior_reliability": 0.0333,
                "competition": "La Liga",
                "squad": "Celta Vigo"
              },
              "changes": [
                {
                  "stat": "interceptionWon",
                  "before": 0.9249,
                  "after": 0.9443
                },
                {
                  "stat": "fouls",
                  "before": 0.9857,
                  "after": 1.004
                },
                {
                  "stat": "wonTackle",
                  "before": 0.8491,
                  "after": 0.8338
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 1,
                "rating": 6.5816,
                "minutes": 44,
                "total_pass": 33,
                "accurate_pass": 32,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 24,
                "accurate_own_half_passes": 24,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 40,
                "possession_lost": 0.9857,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 1,
                "fouls": 1,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 2,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 12.5,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 1,
                "rating": 6.5816,
                "minutes": 44,
                "total_pass": 33,
                "accurate_pass": 32,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 24,
                "accurate_own_half_passes": 24,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 40,
                "possession_lost": 0.9857,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 1,
                "fouls": 1,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 2,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 12.5,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.1,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Yassir Zabiri",
                "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": "Yassir Zabiri",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.6582, xG scale 1.5497)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 1,
                "rating": 6.5816,
                "minutes": 44,
                "total_pass": 33,
                "accurate_pass": 32,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 24,
                "accurate_own_half_passes": 24,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 40,
                "possession_lost": 0.9857,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 1,
                "fouls": 1,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 2,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 12.5,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.1,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Yassir Zabiri",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.02,
                "squad_xg_sum": 0.6582,
                "xg_scale": 1.5497,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 14, fifa_overall 71.0)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 1,
                "rating": 6.5816,
                "minutes": 44,
                "total_pass": 33,
                "accurate_pass": 32,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 24,
                "accurate_own_half_passes": 24,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 40,
                "possession_lost": 0.9857,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 1,
                "fouls": 1,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 2,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 12.5,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.1,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Yassir Zabiri",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 71.0
              },
              "params": {
                "match_squad_rank": 14,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 4920,
                "fifa_rank": 5036.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 71.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 1,
                "rating": 6.5816,
                "minutes": 44,
                "total_pass": 33,
                "accurate_pass": 32,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 24,
                "accurate_own_half_passes": 24,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 40,
                "possession_lost": 0.9857,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 1,
                "fouls": 1,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 2,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 12.5,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.1,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Yassir Zabiri",
                "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.0503,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 71.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0503,
                "scorer_weight": 0.4691,
                "squad_weight_total": 9.3177,
                "weight_share": 0.0503,
                "position_multiplier": 0.38
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 1,
                "rating": 6.5816,
                "minutes": 44,
                "total_pass": 33,
                "accurate_pass": 32,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 24,
                "accurate_own_half_passes": 24,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 40,
                "possession_lost": 0.9857,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 1,
                "fouls": 1,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 2,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 12.5,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.1,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Yassir Zabiri",
                "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.0503,
                "projected_assists": 0,
                "assist_probability": 0.0059,
                "fifa_overall": 71.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0059,
                "provider_weight": 0.051,
                "squad_weight_total": 8.6707,
                "weight_share": 0.0059,
                "position_multiplier": 0.45
              }
            }
          ]
        },
        "Sebastián Cáceres": {
          "player_id": 924889,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 21,
          "height": 183,
          "market_value": 4099999,
          "stats": {
            "interceptions": 2,
            "tackles": 2,
            "tackles_won": 1,
            "clearances": 3,
            "aerial_won": 2,
            "duels_won": 5,
            "total_pass": 42,
            "accurate_pass": 34,
            "expected_goals": 0.0248,
            "rating": 6.8,
            "minutes": 90,
            "total_long_balls": 5,
            "accurate_long_balls": 3,
            "total_own_half_passes": 27,
            "accurate_own_half_passes": 22,
            "total_opp_half_passes": 10,
            "accurate_opp_half_passes": 7,
            "crosses_total": 1,
            "crosses_accurate": 0,
            "touches": 59,
            "possession_lost": 6.3,
            "dispossessed": 0.4,
            "duels_lost": 3,
            "aerial_lost": 2,
            "total_contest": 4,
            "won_contest": 2,
            "ball_recovery": 5,
            "challenges_lost": 1,
            "fouls": 1,
            "fouls_drawn": 1,
            "blocks": 1,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_assists": 0.046,
            "total_shots": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "big_chances_created": 0,
            "xgot": 0.012,
            "key_pass": 1,
            "ball_carries": 19,
            "total_progression": 57,
            "progressive_carries": 4,
            "opponent_faced": "Yassir Zabiri",
            "matchup_zone": "Shape fallback",
            "antagonist_source": "formation_fallback",
            "projected_goals": 0,
            "goal_probability": 0.0356,
            "projected_assists": 0,
            "assist_probability": 0.041,
            "fifa_overall": 75.0
          },
          "latest_10_games": [],
          "ranking": {
            "global_player_rank": 3519,
            "combined_rank_score": 1493.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 499.0,
            "sofascore_rating": 6.86,
            "sofascore_appearances": 5.0,
            "fifa_rank": 2487.0,
            "fifa_overall": 75.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 15,
            "squad_role": "starter",
            "projected_match_rating": 6.8,
            "source_file": "data/player_rankings.csv",
            "player_name": "Sebastián Cáceres",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Grischa Prömel",
                  "ranking": 3514
                },
                {
                  "player_name": "Pol Lozano",
                  "ranking": 3515
                },
                {
                  "player_name": "Aurèle Amenda",
                  "ranking": 3516
                },
                {
                  "player_name": "Manu Morlanes",
                  "ranking": 3517
                },
                {
                  "player_name": "Alexis Claude-Maurice",
                  "ranking": 3518
                }
              ],
              "lower": [
                {
                  "player_name": "Anthony Caci",
                  "ranking": 3520
                },
                {
                  "player_name": "Amar Memić",
                  "ranking": 3521
                },
                {
                  "player_name": "Miro Muheim",
                  "ranking": 3522
                },
                {
                  "player_name": "Aarón Martín",
                  "ranking": 3523
                },
                {
                  "player_name": "Robin Hack",
                  "ranking": 3524
                }
              ]
            }
          },
          "data_sources": [
            "market_value"
          ],
          "data_confidence": 0.25,
          "history_matches": 0,
          "xgboost_reasoning": {
            "model_source": "market_value_prior",
            "position_service": "D_service",
            "features_evaluated": [],
            "targets_predicted": [],
            "history_matches": 0,
            "data_confidence": 0.25,
            "data_sources": [
              "market_value"
            ],
            "market_value_adjustment": 0.4511,
            "fbref_prior_metrics": null,
            "rationale": "Market-value baseline (€4,099,999) applied for position D (quality factor 0.45)."
          },
          "stat_evolution": [
            {
              "step": "market_value_prior",
              "description": "Market-value baseline for position D (quality 0.45)",
              "stats": {
                "interceptions": 2,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 2,
                "duels_won": 5,
                "total_pass": 42,
                "accurate_pass": 34,
                "expected_goals": 0.016,
                "rating": 6.8,
                "minutes": 90,
                "total_long_balls": 5,
                "accurate_long_balls": 3,
                "total_own_half_passes": 27,
                "accurate_own_half_passes": 22,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 7,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 59,
                "possession_lost": 6.3,
                "dispossessed": 0.4,
                "duels_lost": 3,
                "aerial_lost": 2,
                "total_contest": 4,
                "won_contest": 2,
                "ball_recovery": 5,
                "challenges_lost": 1,
                "fouls": 1,
                "fouls_drawn": 1,
                "blocks": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_assists": 0.046,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.012,
                "key_pass": 1,
                "ball_carries": 19,
                "total_progression": 57,
                "progressive_carries": 4
              },
              "params": {
                "market_value_eur": 4099999,
                "quality_factor": 0.4511
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 2,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 2,
                "duels_won": 5,
                "total_pass": 42,
                "accurate_pass": 34,
                "expected_goals": 0.016,
                "rating": 6.8,
                "minutes": 90,
                "total_long_balls": 5,
                "accurate_long_balls": 3,
                "total_own_half_passes": 27,
                "accurate_own_half_passes": 22,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 7,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 59,
                "possession_lost": 6.3,
                "dispossessed": 0.4,
                "duels_lost": 3,
                "aerial_lost": 2,
                "total_contest": 4,
                "won_contest": 2,
                "ball_recovery": 5,
                "challenges_lost": 1,
                "fouls": 1,
                "fouls_drawn": 1,
                "blocks": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_assists": 0.046,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.012,
                "key_pass": 1,
                "ball_carries": 19,
                "total_progression": 57,
                "progressive_carries": 4
              },
              "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": 2,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 2,
                "duels_won": 5,
                "total_pass": 42,
                "accurate_pass": 34,
                "expected_goals": 0.016,
                "rating": 6.8,
                "minutes": 90,
                "total_long_balls": 5,
                "accurate_long_balls": 3,
                "total_own_half_passes": 27,
                "accurate_own_half_passes": 22,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 7,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 59,
                "possession_lost": 6.3,
                "dispossessed": 0.4,
                "duels_lost": 3,
                "aerial_lost": 2,
                "total_contest": 4,
                "won_contest": 2,
                "ball_recovery": 5,
                "challenges_lost": 1,
                "fouls": 1,
                "fouls_drawn": 1,
                "blocks": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_assists": 0.046,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.012,
                "key_pass": 1,
                "ball_carries": 19,
                "total_progression": 57,
                "progressive_carries": 4,
                "opponent_faced": "Yassir Zabiri",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Yassir Zabiri",
                  "matchup_zone": "Shape fallback"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.6582, xG scale 1.5497)",
              "stats": {
                "interceptions": 2,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 2,
                "duels_won": 5,
                "total_pass": 42,
                "accurate_pass": 34,
                "expected_goals": 0.0248,
                "rating": 6.8,
                "minutes": 90,
                "total_long_balls": 5,
                "accurate_long_balls": 3,
                "total_own_half_passes": 27,
                "accurate_own_half_passes": 22,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 7,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 59,
                "possession_lost": 6.3,
                "dispossessed": 0.4,
                "duels_lost": 3,
                "aerial_lost": 2,
                "total_contest": 4,
                "won_contest": 2,
                "ball_recovery": 5,
                "challenges_lost": 1,
                "fouls": 1,
                "fouls_drawn": 1,
                "blocks": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_assists": 0.046,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.012,
                "key_pass": 1,
                "ball_carries": 19,
                "total_progression": 57,
                "progressive_carries": 4,
                "opponent_faced": "Yassir Zabiri",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.02,
                "squad_xg_sum": 0.6582,
                "xg_scale": 1.5497,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.016,
                  "after": 0.0248
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 15, fifa_overall 75.0)",
              "stats": {
                "interceptions": 2,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 2,
                "duels_won": 5,
                "total_pass": 42,
                "accurate_pass": 34,
                "expected_goals": 0.0248,
                "rating": 6.8,
                "minutes": 90,
                "total_long_balls": 5,
                "accurate_long_balls": 3,
                "total_own_half_passes": 27,
                "accurate_own_half_passes": 22,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 7,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 59,
                "possession_lost": 6.3,
                "dispossessed": 0.4,
                "duels_lost": 3,
                "aerial_lost": 2,
                "total_contest": 4,
                "won_contest": 2,
                "ball_recovery": 5,
                "challenges_lost": 1,
                "fouls": 1,
                "fouls_drawn": 1,
                "blocks": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_assists": 0.046,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.012,
                "key_pass": 1,
                "ball_carries": 19,
                "total_progression": 57,
                "progressive_carries": 4,
                "opponent_faced": "Yassir Zabiri",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 75.0
              },
              "params": {
                "match_squad_rank": 15,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3519,
                "fifa_rank": 2487.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 75.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "interceptions": 2,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 2,
                "duels_won": 5,
                "total_pass": 42,
                "accurate_pass": 34,
                "expected_goals": 0.0248,
                "rating": 6.8,
                "minutes": 90,
                "total_long_balls": 5,
                "accurate_long_balls": 3,
                "total_own_half_passes": 27,
                "accurate_own_half_passes": 22,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 7,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 59,
                "possession_lost": 6.3,
                "dispossessed": 0.4,
                "duels_lost": 3,
                "aerial_lost": 2,
                "total_contest": 4,
                "won_contest": 2,
                "ball_recovery": 5,
                "challenges_lost": 1,
                "fouls": 1,
                "fouls_drawn": 1,
                "blocks": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_assists": 0.046,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.012,
                "key_pass": 1,
                "ball_carries": 19,
                "total_progression": 57,
                "progressive_carries": 4,
                "opponent_faced": "Yassir Zabiri",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0356,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 75.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0356,
                "scorer_weight": 0.3316,
                "squad_weight_total": 9.3177,
                "weight_share": 0.0356,
                "position_multiplier": 0.38
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "interceptions": 2,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 2,
                "duels_won": 5,
                "total_pass": 42,
                "accurate_pass": 34,
                "expected_goals": 0.0248,
                "rating": 6.8,
                "minutes": 90,
                "total_long_balls": 5,
                "accurate_long_balls": 3,
                "total_own_half_passes": 27,
                "accurate_own_half_passes": 22,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 7,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 59,
                "possession_lost": 6.3,
                "dispossessed": 0.4,
                "duels_lost": 3,
                "aerial_lost": 2,
                "total_contest": 4,
                "won_contest": 2,
                "ball_recovery": 5,
                "challenges_lost": 1,
                "fouls": 1,
                "fouls_drawn": 1,
                "blocks": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_assists": 0.046,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.012,
                "key_pass": 1,
                "ball_carries": 19,
                "total_progression": 57,
                "progressive_carries": 4,
                "opponent_faced": "Yassir Zabiri",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0356,
                "projected_assists": 0,
                "assist_probability": 0.041,
                "fifa_overall": 75.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.041,
                "provider_weight": 0.3555,
                "squad_weight_total": 8.6707,
                "weight_share": 0.041,
                "position_multiplier": 0.45
              }
            }
          ]
        },
        "Williot Swedberg": {
          "player_id": 1126779,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 19,
          "height": 185,
          "market_value": 18700000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.0386,
            "assists": 0,
            "expected_goals": 0.1227,
            "rating": 6.9882,
            "minutes": 56,
            "total_pass": 12,
            "accurate_pass": 9,
            "duels_won": 5,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 3,
            "accurate_own_half_passes": 3,
            "total_opp_half_passes": 9,
            "accurate_opp_half_passes": 6,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 24,
            "possession_lost": 8.0246,
            "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": 3,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 8,
            "total_progression": 32,
            "progressive_carries": 2,
            "total_shots": 2,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 66.7,
            "shotConversion": 0.0,
            "minutesPct": 60.0,
            "pointsPerMatch": 0.5,
            "netGoalDifferencePer90": 0.0,
            "dribbles_attempted": 2,
            "dribbles_successful": 1.0,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.55,
            "pressing_faced": "LOW",
            "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
            "numerical_situation": "1v1",
            "opponent_defenders": "André Almeida",
            "opponent_faced": "André Almeida",
            "antagonist_source": "attacking_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.0693,
            "projected_assists": 0,
            "assist_probability": 0.1283,
            "fifa_overall": 76.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16416347.0,
              "match_date": "2026-09-13 12: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": "Celta",
              "away_team": "Málaga",
              "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": "Celta",
              "opponent": "Málaga",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16416340.0,
              "match_date": "2026-09-03",
              "home_team": "Real Sociedad",
              "away_team": "Celta Vigo",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 63,
                "rating": 6.9,
                "assists": 0,
                "expected_assists": 0.0072,
                "total_shots": 0,
                "total_pass": 17,
                "accurate_pass": 10,
                "tackles": 1,
                "clearances": 1,
                "aerial_won": 2,
                "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": 16416308.0,
              "match_date": "2026-08-30",
              "home_team": "Celta Vigo",
              "away_team": "Athletic Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 57,
                "rating": 6.6,
                "assists": 0,
                "expected_goals": 0.3908,
                "expected_assists": 0.0165,
                "total_shots": 3,
                "shots_on_target": 2,
                "total_pass": 10,
                "accurate_pass": 6,
                "clearances": 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": 16815992.0,
              "match_date": "2026-08-27",
              "home_team": "Celta Vigo",
              "away_team": "Osasuna",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 65,
                "rating": 6.9,
                "assists": 0,
                "expected_assists": 0.0061,
                "total_shots": 0,
                "total_pass": 11,
                "accurate_pass": 9,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 1,
                "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": 16416298.0,
              "match_date": "2026-08-22",
              "home_team": "Valencia",
              "away_team": "Celta Vigo",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Celta Vigo",
              "opponent": "Valencia",
              "stats": {
                "minutes": 33,
                "rating": 6.8,
                "assists": 0,
                "expected_assists": 0.0296,
                "total_shots": 0,
                "total_pass": 10,
                "accurate_pass": 8,
                "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"
            }
          ],
          "ranking": {
            "global_player_rank": 3324,
            "combined_rank_score": 1279.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 578.0,
            "sofascore_rating": 6.8,
            "sofascore_appearances": 4.0,
            "fifa_rank": 1981.0,
            "fifa_overall": 76.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 1,
            "squad_role": "starter",
            "projected_match_rating": 6.9882,
            "source_file": "data/player_rankings.csv",
            "player_name": "Williot Swedberg",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Dion Drena Beljo",
                  "ranking": 3319
                },
                {
                  "player_name": "Aimar Oroz",
                  "ranking": 3320
                },
                {
                  "player_name": "Konstantinos Koulierakis",
                  "ranking": 3321
                },
                {
                  "player_name": "Óliver Torres",
                  "ranking": 3322
                },
                {
                  "player_name": "Daley Blind",
                  "ranking": 3323
                }
              ],
              "lower": [
                {
                  "player_name": "Leandro Cabrera",
                  "ranking": 3325
                },
                {
                  "player_name": "Alejandro Zendejas",
                  "ranking": 3326
                },
                {
                  "player_name": "Sacha Boey",
                  "ranking": 3327
                },
                {
                  "player_name": "Hugo Cuypers",
                  "ranking": 3328
                },
                {
                  "player_name": "Carl Rushworth",
                  "ranking": 3329
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.524,
          "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",
              "rating"
            ],
            "history_matches": 4,
            "data_confidence": 0.524,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0354,
            "fbref_prior_metrics": {
              "squad": "Celta Vigo",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 4.0,
              "starts": 3.0,
              "minutes": 216.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 1.25,
              "shots_on_target_pct": 66.7,
              "prior_reliability": 0.16
            },
            "rationale": "XGBoost regressor (M_service) evaluated 4 historical appearances across 5 target models; FBref 2026-2027 prior blended (La Liga, Celta Vigo, rel: 0.16, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 5 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0373,
                "assists": 0,
                "expected_goals": 0.0765,
                "rating": 6.7491,
                "minutes": 54,
                "total_pass": 12,
                "accurate_pass": 8,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 2,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 23,
                "possession_lost": 7.75,
                "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": 3,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 31,
                "progressive_carries": 2
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:48.236605+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-03",
                    "opponent": "Real Sociedad",
                    "minutes": 63.0,
                    "is_starting": true,
                    "weight": 0.3138,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Athletic Club",
                    "minutes": 57.0,
                    "is_starting": true,
                    "weight": 0.2667,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "Osasuna",
                    "minutes": 65.0,
                    "is_starting": true,
                    "weight": 0.2267,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Valencia",
                    "minutes": 33.0,
                    "is_starting": false,
                    "weight": 0.1927,
                    "rating": 6.8
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 1.0,
                  "ballRecovery_p90": 1.9728,
                  "ballRecovery": 1.3949,
                  "intensity_index": 4.1093,
                  "expectedAssists": 0.0138,
                  "kilometersCovered": 4.5562
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.8774640560150146,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0515
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0444
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0345
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.033
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0303
                        }
                      ],
                      "others": -0.0615,
                      "total": 0.8775
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.037324655801057816,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0181
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0071
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0061
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0055
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0047
                        }
                      ],
                      "others": -0.0141,
                      "total": 0.0373
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.0857180804014206,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0078
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0047
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0042
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0029
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": 0.0025
                        }
                      ],
                      "others": 0.0014,
                      "total": 0.0857
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.07653819769620895,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0144
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0109
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0085
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0067
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0059
                        }
                      ],
                      "others": 0.0024,
                      "total": 0.0765
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.749144077301025,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0277
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0256
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.019
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": 0.0176
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0149
                        }
                      ],
                      "others": -0.0429,
                      "total": 6.7491
                    }
                  }
                ],
                "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.0354, quality 0.618)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0386,
                "assists": 0,
                "expected_goals": 0.0792,
                "rating": 6.9882,
                "minutes": 56,
                "total_pass": 12,
                "accurate_pass": 9,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 24,
                "possession_lost": 8.0246,
                "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": 3,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 32,
                "progressive_carries": 2
              },
              "params": {
                "market_value_eur": 18700000,
                "quality_factor": 0.6181,
                "boost_factor": 1.0354
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0578)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0386,
                "assists": 0,
                "expected_goals": 0.0792,
                "rating": 6.9882,
                "minutes": 56,
                "total_pass": 12,
                "accurate_pass": 9,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 24,
                "possession_lost": 8.0246,
                "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": 3,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 32,
                "progressive_carries": 2,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 66.7,
                "shotConversion": 0.0,
                "minutesPct": 60.0,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": -1.25
              },
              "params": {
                "blend_weight": 0.0578,
                "history_matches": 4,
                "prior_reliability": 0.16,
                "competition": "La Liga",
                "squad": "Celta Vigo"
              },
              "changes": [
                {
                  "stat": "wasFouled",
                  "before": 2.8474,
                  "after": 2.9477
                },
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.0481
                },
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0481
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0481
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.0,
                  "after": 0.048
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.0,
                  "after": 0.0241
                },
                {
                  "stat": "goalAssist",
                  "before": 0.0888,
                  "after": 0.0837
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0386,
                "assists": 0,
                "expected_goals": 0.0792,
                "rating": 6.9882,
                "minutes": 56,
                "total_pass": 12,
                "accurate_pass": 9,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 24,
                "possession_lost": 8.0246,
                "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": 3,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 32,
                "progressive_carries": 2,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 66.7,
                "shotConversion": 0.0,
                "minutesPct": 60.0,
                "pointsPerMatch": 0.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.0386,
                "assists": 0,
                "expected_goals": 0.0792,
                "rating": 6.9882,
                "minutes": 56,
                "total_pass": 12,
                "accurate_pass": 9,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 24,
                "possession_lost": 8.0246,
                "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": 3,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 32,
                "progressive_carries": 2,
                "total_shots": 2,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 66.7,
                "shotConversion": 0.0,
                "minutesPct": 60.0,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 1.0,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.55,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "André Almeida",
                "opponent_faced": "André Almeida",
                "antagonist_source": "attacking_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "André Almeida",
                  "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                  "duel_win_rate": 0.55,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v1"
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.0,
                  "after": 1.2
                },
                {
                  "stat": "totalShots",
                  "before": 1.25,
                  "after": 1.9
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.6582, xG scale 1.5497)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0386,
                "assists": 0,
                "expected_goals": 0.1227,
                "rating": 6.9882,
                "minutes": 56,
                "total_pass": 12,
                "accurate_pass": 9,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 24,
                "possession_lost": 8.0246,
                "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": 3,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 32,
                "progressive_carries": 2,
                "total_shots": 2,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 66.7,
                "shotConversion": 0.0,
                "minutesPct": 60.0,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 1.0,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.55,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "André Almeida",
                "opponent_faced": "André Almeida",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.02,
                "squad_xg_sum": 0.6582,
                "xg_scale": 1.5497,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0792,
                  "after": 0.1227
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 1, fifa_overall 76.0)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0386,
                "assists": 0,
                "expected_goals": 0.1227,
                "rating": 6.9882,
                "minutes": 56,
                "total_pass": 12,
                "accurate_pass": 9,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 24,
                "possession_lost": 8.0246,
                "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": 3,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 32,
                "progressive_carries": 2,
                "total_shots": 2,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 66.7,
                "shotConversion": 0.0,
                "minutesPct": 60.0,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 1.0,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.55,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "André Almeida",
                "opponent_faced": "André Almeida",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 76.0
              },
              "params": {
                "match_squad_rank": 1,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3324,
                "fifa_rank": 1981.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 76.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0386,
                "assists": 0,
                "expected_goals": 0.1227,
                "rating": 6.9882,
                "minutes": 56,
                "total_pass": 12,
                "accurate_pass": 9,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 24,
                "possession_lost": 8.0246,
                "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": 3,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 32,
                "progressive_carries": 2,
                "total_shots": 2,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 66.7,
                "shotConversion": 0.0,
                "minutesPct": 60.0,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 1.0,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.55,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "André Almeida",
                "opponent_faced": "André Almeida",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0693,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 76.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0693,
                "scorer_weight": 0.6455,
                "squad_weight_total": 9.3177,
                "weight_share": 0.0693,
                "position_multiplier": 0.78
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0386,
                "assists": 0,
                "expected_goals": 0.1227,
                "rating": 6.9882,
                "minutes": 56,
                "total_pass": 12,
                "accurate_pass": 9,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 24,
                "possession_lost": 8.0246,
                "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": 3,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 32,
                "progressive_carries": 2,
                "total_shots": 2,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 66.7,
                "shotConversion": 0.0,
                "minutesPct": 60.0,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 1.0,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.55,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "André Almeida",
                "opponent_faced": "André Almeida",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0693,
                "projected_assists": 0,
                "assist_probability": 0.1283,
                "fifa_overall": 76.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.1283,
                "provider_weight": 1.1121,
                "squad_weight_total": 8.6707,
                "weight_share": 0.1283,
                "position_multiplier": 1.45
              }
            }
          ]
        },
        "Miguel Román": {
          "player_id": 1398526,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 8,
          "height": 178,
          "market_value": 14400000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.117,
            "assists": 1,
            "expected_goals": 0.0965,
            "rating": 7.0903,
            "minutes": 83,
            "total_pass": 61,
            "accurate_pass": 54,
            "duels_won": 2,
            "total_long_balls": 4,
            "accurate_long_balls": 3,
            "total_own_half_passes": 23,
            "accurate_own_half_passes": 20,
            "total_opp_half_passes": 38,
            "accurate_opp_half_passes": 34,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 70,
            "possession_lost": 10.6265,
            "dispossessed": 0.0,
            "duels_lost": 2,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 17,
            "total_progression": 43,
            "progressive_carries": 0,
            "total_shots": 2,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "minutesPct": 87.5,
            "pointsPerMatch": 0.5,
            "netGoalDifferencePer90": 0.0,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.9,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.501,
            "pressing_faced": "LOW",
            "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
            "numerical_situation": "1v1",
            "opponent_defenders": "André Almeida",
            "opponent_faced": "André Almeida",
            "antagonist_source": "attacking_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.0603,
            "projected_assists": 1,
            "assist_probability": 0.1842,
            "fifa_overall": 74.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16416347.0,
              "match_date": "2026-09-13 12: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": "Celta",
              "away_team": "Málaga",
              "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": "Celta",
              "opponent": "Málaga",
              "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": "away",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Getafe",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assists": 0,
                "expected_goals": 0.0427,
                "expected_assists": 0.0686,
                "total_shots": 3,
                "total_pass": 57,
                "accurate_pass": 46,
                "key_pass": 1,
                "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": 16416340.0,
              "match_date": "2026-09-03",
              "home_team": "Real Sociedad",
              "away_team": "Celta Vigo",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assists": 0,
                "expected_assists": 0.0493,
                "total_shots": 0,
                "total_pass": 38,
                "accurate_pass": 33,
                "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": 16416308.0,
              "match_date": "2026-08-30",
              "home_team": "Celta Vigo",
              "away_team": "Athletic Club",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Celta Vigo",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 45,
                "rating": 7.2,
                "assists": 0,
                "expected_assists": 0.1388,
                "total_shots": 0,
                "total_pass": 42,
                "accurate_pass": 37,
                "key_pass": 2,
                "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": 16815992.0,
              "match_date": "2026-08-27",
              "home_team": "Celta Vigo",
              "away_team": "Osasuna",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assists": 1,
                "expected_assists": 0.0334,
                "total_shots": 0,
                "total_pass": 76,
                "accurate_pass": 70,
                "key_pass": 1,
                "interceptions": 1,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 2,
                "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": 16416298.0,
              "match_date": "2026-08-22",
              "home_team": "Valencia",
              "away_team": "Celta Vigo",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Valencia",
              "stats": {
                "minutes": 90,
                "rating": 7.4,
                "assists": 0,
                "expected_assists": 0.3443,
                "total_shots": 0,
                "total_pass": 85,
                "accurate_pass": 77,
                "key_pass": 2,
                "clearances": 1,
                "aerial_won": 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"
            }
          ],
          "ranking": {
            "global_player_rank": 3643,
            "combined_rank_score": 1606.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 292.0,
            "sofascore_rating": 7.05,
            "sofascore_appearances": 4.0,
            "fifa_rank": 2921.0,
            "fifa_overall": 74.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 3,
            "squad_role": "starter",
            "projected_match_rating": 7.0903,
            "source_file": "data/player_rankings.csv",
            "player_name": "Miguel Román",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Nélson Semedo",
                  "ranking": 3638
                },
                {
                  "player_name": "Jan Kuchta",
                  "ranking": 3639
                },
                {
                  "player_name": "Rodrigo Mora",
                  "ranking": 3640
                },
                {
                  "player_name": "Milan van Ewijk",
                  "ranking": 3641
                },
                {
                  "player_name": "William Gomes",
                  "ranking": 3642
                }
              ],
              "lower": [
                {
                  "player_name": "João Moutinho",
                  "ranking": 3644
                },
                {
                  "player_name": "Tom Cairney",
                  "ranking": 3645
                },
                {
                  "player_name": "Mads Hermansen",
                  "ranking": 3646
                },
                {
                  "player_name": "Pepê",
                  "ranking": 3647
                },
                {
                  "player_name": "Finn Azaz",
                  "ranking": 3648
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.597,
          "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",
              "rating"
            ],
            "history_matches": 5,
            "data_confidence": 0.597,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0218,
            "fbref_prior_metrics": {
              "squad": "Celta Vigo",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 4.0,
              "starts": 3.0,
              "minutes": 315.0,
              "goals_per90": 0.0,
              "assists_per90": 0.2857142857142857,
              "shots_per90": 0.0,
              "prior_reliability": 0.2333
            },
            "rationale": "XGBoost regressor (M_service) evaluated 5 historical appearances across 5 target models; FBref 2026-2027 prior blended (La Liga, Celta Vigo, rel: 0.23, gls/90: 0.0, ast/90: 0.2857142857142857)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 5 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1145,
                "assists": 0,
                "expected_goals": 0.0609,
                "rating": 6.9392,
                "minutes": 81,
                "total_pass": 60,
                "accurate_pass": 53,
                "duels_won": 2,
                "total_long_balls": 4,
                "accurate_long_balls": 3,
                "total_own_half_passes": 22,
                "accurate_own_half_passes": 20,
                "total_opp_half_passes": 37,
                "accurate_opp_half_passes": 33,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 69,
                "possession_lost": 10.4,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 16,
                "total_progression": 42,
                "progressive_carries": 0
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:48.236605+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Getafe",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2696,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-09-03",
                    "opponent": "Real Sociedad",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2292,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Athletic Club",
                    "minutes": 45.0,
                    "is_starting": false,
                    "weight": 0.1948,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "Osasuna",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1656,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Valencia",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1408,
                    "rating": 7.4
                  }
                ],
                "feature_row": {
                  "history_matches": 5.0,
                  "is_starting_11": 1.0,
                  "ballRecovery_p90": 3.7698,
                  "ballRecovery": 3.7698,
                  "intensity_index": 5.1417,
                  "expectedAssists": 0.1108,
                  "kilometersCovered": 7.9406
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 1.2325526475906372,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0807
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": 0.0618
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0541
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0331
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.026
                        }
                      ],
                      "others": 0.0078,
                      "total": 1.2326
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.11451812088489532,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.0131
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": -0.0063
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0056
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": -0.0052
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0045
                        }
                      ],
                      "others": 0.0099,
                      "total": 0.1145
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.08380270004272461,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0072
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0037
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.003
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.0024
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": 0.0024
                        }
                      ],
                      "others": -0.0087,
                      "total": 0.0838
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.06093836575746536,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0222
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.008
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0053
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0047
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": -0.0036
                        }
                      ],
                      "others": -0.0134,
                      "total": 0.0609
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.93916654586792,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0301
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": 0.0193
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0186
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0168
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": 0.0149
                        }
                      ],
                      "others": 0.0077,
                      "total": 6.9392
                    }
                  }
                ],
                "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.0218, quality 0.573)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.117,
                "assists": 0,
                "expected_goals": 0.0623,
                "rating": 7.0903,
                "minutes": 83,
                "total_pass": 61,
                "accurate_pass": 54,
                "duels_won": 2,
                "total_long_balls": 4,
                "accurate_long_balls": 3,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 20,
                "total_opp_half_passes": 38,
                "accurate_opp_half_passes": 34,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 70,
                "possession_lost": 10.6265,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 17,
                "total_progression": 43,
                "progressive_carries": 0
              },
              "params": {
                "market_value_eur": 14400000,
                "quality_factor": 0.5726,
                "boost_factor": 1.0218
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0758)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.117,
                "assists": 0,
                "expected_goals": 0.0623,
                "rating": 7.0903,
                "minutes": 83,
                "total_pass": 61,
                "accurate_pass": 54,
                "duels_won": 2,
                "total_long_balls": 4,
                "accurate_long_balls": 3,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 20,
                "total_opp_half_passes": 38,
                "accurate_opp_half_passes": 34,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 70,
                "possession_lost": 10.6265,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 17,
                "total_progression": 43,
                "progressive_carries": 0,
                "total_shots": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 87.5,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": -0.29
              },
              "params": {
                "blend_weight": 0.0758,
                "history_matches": 5,
                "prior_reliability": 0.2333,
                "competition": "La Liga",
                "squad": "Celta Vigo"
              },
              "changes": [
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.2816
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.065
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0433
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.0,
                  "after": 0.0217
                },
                {
                  "stat": "goalAssist",
                  "before": 0.0856,
                  "after": 0.1008
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.117,
                "assists": 0,
                "expected_goals": 0.0623,
                "rating": 7.0903,
                "minutes": 83,
                "total_pass": 61,
                "accurate_pass": 54,
                "duels_won": 2,
                "total_long_balls": 4,
                "accurate_long_balls": 3,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 20,
                "total_opp_half_passes": 38,
                "accurate_opp_half_passes": 34,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 70,
                "possession_lost": 10.6265,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 17,
                "total_progression": 43,
                "progressive_carries": 0,
                "total_shots": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 87.5,
                "pointsPerMatch": 0.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.117,
                "assists": 0,
                "expected_goals": 0.0623,
                "rating": 7.0903,
                "minutes": 83,
                "total_pass": 61,
                "accurate_pass": 54,
                "duels_won": 2,
                "total_long_balls": 4,
                "accurate_long_balls": 3,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 20,
                "total_opp_half_passes": 38,
                "accurate_opp_half_passes": 34,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 70,
                "possession_lost": 10.6265,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 17,
                "total_progression": 43,
                "progressive_carries": 0,
                "total_shots": 2,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 87.5,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.9,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.501,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "André Almeida",
                "opponent_faced": "André Almeida",
                "antagonist_source": "attacking_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "André Almeida",
                  "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                  "duel_win_rate": 0.501,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v1"
                }
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 0.0,
                  "after": 1.8
                },
                {
                  "stat": "aerialWon",
                  "before": 0.0,
                  "after": 1.0
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.6582, xG scale 1.5497)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.117,
                "assists": 0,
                "expected_goals": 0.0965,
                "rating": 7.0903,
                "minutes": 83,
                "total_pass": 61,
                "accurate_pass": 54,
                "duels_won": 2,
                "total_long_balls": 4,
                "accurate_long_balls": 3,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 20,
                "total_opp_half_passes": 38,
                "accurate_opp_half_passes": 34,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 70,
                "possession_lost": 10.6265,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 17,
                "total_progression": 43,
                "progressive_carries": 0,
                "total_shots": 2,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 87.5,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.9,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.501,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "André Almeida",
                "opponent_faced": "André Almeida",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.02,
                "squad_xg_sum": 0.6582,
                "xg_scale": 1.5497,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0623,
                  "after": 0.0965
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 3, fifa_overall 74.0)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.117,
                "assists": 0,
                "expected_goals": 0.0965,
                "rating": 7.0903,
                "minutes": 83,
                "total_pass": 61,
                "accurate_pass": 54,
                "duels_won": 2,
                "total_long_balls": 4,
                "accurate_long_balls": 3,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 20,
                "total_opp_half_passes": 38,
                "accurate_opp_half_passes": 34,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 70,
                "possession_lost": 10.6265,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 17,
                "total_progression": 43,
                "progressive_carries": 0,
                "total_shots": 2,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 87.5,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.9,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.501,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "André Almeida",
                "opponent_faced": "André Almeida",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 74.0
              },
              "params": {
                "match_squad_rank": 3,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3643,
                "fifa_rank": 2921.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 74.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.117,
                "assists": 0,
                "expected_goals": 0.0965,
                "rating": 7.0903,
                "minutes": 83,
                "total_pass": 61,
                "accurate_pass": 54,
                "duels_won": 2,
                "total_long_balls": 4,
                "accurate_long_balls": 3,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 20,
                "total_opp_half_passes": 38,
                "accurate_opp_half_passes": 34,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 70,
                "possession_lost": 10.6265,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 17,
                "total_progression": 43,
                "progressive_carries": 0,
                "total_shots": 2,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 87.5,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.9,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.501,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "André Almeida",
                "opponent_faced": "André Almeida",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0603,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0603,
                "scorer_weight": 0.5614,
                "squad_weight_total": 9.3177,
                "weight_share": 0.0603,
                "position_multiplier": 0.78
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.117,
                "assists": 1,
                "expected_goals": 0.0965,
                "rating": 7.0903,
                "minutes": 83,
                "total_pass": 61,
                "accurate_pass": 54,
                "duels_won": 2,
                "total_long_balls": 4,
                "accurate_long_balls": 3,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 20,
                "total_opp_half_passes": 38,
                "accurate_opp_half_passes": 34,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 70,
                "possession_lost": 10.6265,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 17,
                "total_progression": 43,
                "progressive_carries": 0,
                "total_shots": 2,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 87.5,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.9,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.501,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "André Almeida",
                "opponent_faced": "André Almeida",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0603,
                "projected_assists": 1,
                "assist_probability": 0.1842,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 1,
                "assist_probability": 0.1842,
                "provider_weight": 1.5974,
                "squad_weight_total": 8.6707,
                "weight_share": 0.1842,
                "position_multiplier": 1.45
              }
            }
          ]
        },
        "Ilaix Moriba": {
          "player_id": 962890,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 6,
          "height": 183,
          "market_value": 13700000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.0623,
            "assists": 0,
            "expected_goals": 0.0629,
            "rating": 7.0117,
            "minutes": 67,
            "total_pass": 46,
            "accurate_pass": 43,
            "duels_won": 4,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 16,
            "accurate_own_half_passes": 16,
            "total_opp_half_passes": 30,
            "accurate_opp_half_passes": 27,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 54,
            "possession_lost": 4.4856,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_won": 0,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 18,
            "total_progression": 66,
            "progressive_carries": 1,
            "total_shots": 1,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 0.0,
            "shotConversion": 0.0,
            "minutesPct": 66.4,
            "pointsPerMatch": 0.5,
            "netGoalDifferencePer90": 0.0,
            "opponent_faced": "Pablo García, Andrés Martín, André Almeida",
            "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
            "antagonist_source": "defensive_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.0411,
            "projected_assists": 0,
            "assist_probability": 0.1474,
            "fifa_overall": 78.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16416347.0,
              "match_date": "2026-09-13 12: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": "Celta",
              "away_team": "Málaga",
              "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": "Celta",
              "opponent": "Málaga",
              "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": "away",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Getafe",
              "stats": {
                "minutes": 90,
                "rating": 6.5,
                "assists": 0,
                "expected_goals": 0.0154,
                "expected_assists": 0.0861,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 79,
                "accurate_pass": 71,
                "tackles": 2,
                "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": 16416340.0,
              "match_date": "2026-09-03",
              "home_team": "Real Sociedad",
              "away_team": "Celta Vigo",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 90,
                "rating": 7.1,
                "assists": 0,
                "expected_goals": 0.0496,
                "expected_assists": 0.0381,
                "total_shots": 2,
                "shots_off_target": 2,
                "total_pass": 49,
                "accurate_pass": 47,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 1,
                "clearances": 1,
                "duels_won": 3,
                "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": 16416308.0,
              "match_date": "2026-08-30",
              "home_team": "Celta Vigo",
              "away_team": "Athletic Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 45,
                "rating": 6.4,
                "assists": 0,
                "expected_assists": 0.0067,
                "total_shots": 0,
                "total_pass": 22,
                "accurate_pass": 21,
                "interceptions": 1,
                "clearances": 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": 16815992.0,
              "match_date": "2026-08-27",
              "home_team": "Celta Vigo",
              "away_team": "Osasuna",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assists": 0,
                "expected_assists": 0.0275,
                "total_shots": 0,
                "total_pass": 61,
                "accurate_pass": 58,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 3,
                "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": 16416298.0,
              "match_date": "2026-08-22",
              "home_team": "Valencia",
              "away_team": "Celta Vigo",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Celta Vigo",
              "opponent": "Valencia",
              "stats": {
                "minutes": 13,
                "rating": 6.6,
                "assists": 0,
                "expected_assists": 0.0136,
                "total_shots": 0,
                "total_pass": 14,
                "accurate_pass": 14,
                "clearances": 2,
                "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": 2650,
            "combined_rank_score": 929.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 617.0,
            "sofascore_rating": 6.7722,
            "sofascore_appearances": 36.0,
            "fifa_rank": 1242.0,
            "fifa_overall": 78.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 4,
            "squad_role": "starter",
            "projected_match_rating": 7.0117,
            "source_file": "data/player_rankings.csv",
            "player_name": "Ilaix Moriba",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Kevin Serna",
                  "ranking": 2645
                },
                {
                  "player_name": "Abdulazizkhon Abdurashidov",
                  "ranking": 2646
                },
                {
                  "player_name": "Pau López",
                  "ranking": 2647
                },
                {
                  "player_name": "Orbelín Pineda",
                  "ranking": 2648
                },
                {
                  "player_name": "Raúl Jiménez",
                  "ranking": 2649
                }
              ],
              "lower": [
                {
                  "player_name": "Saša Lukić",
                  "ranking": 2651
                },
                {
                  "player_name": "Basil Tuma",
                  "ranking": 2652
                },
                {
                  "player_name": "Jorge Recalde",
                  "ranking": 2653
                },
                {
                  "player_name": "Mauricio",
                  "ranking": 2654
                },
                {
                  "player_name": "Luca Sosa",
                  "ranking": 2655
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.59,
          "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",
              "rating"
            ],
            "history_matches": 5,
            "data_confidence": 0.59,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0195,
            "fbref_prior_metrics": {
              "squad": "Celta Vigo",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 4.0,
              "starts": 3.0,
              "minutes": 239.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.75,
              "shots_on_target_pct": 0.0,
              "prior_reliability": 0.18
            },
            "rationale": "XGBoost regressor (M_service) evaluated 5 historical appearances across 5 target models; FBref 2026-2027 prior blended (La Liga, Celta Vigo, rel: 0.18, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 5 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0611,
                "assists": 0,
                "expected_goals": 0.0398,
                "rating": 6.8779,
                "minutes": 66,
                "total_pass": 45,
                "accurate_pass": 42,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 16,
                "accurate_own_half_passes": 15,
                "total_opp_half_passes": 29,
                "accurate_opp_half_passes": 27,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 53,
                "possession_lost": 4.4,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 65,
                "progressive_carries": 1
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:48.236605+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Getafe",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2696,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-03",
                    "opponent": "Real Sociedad",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2292,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Athletic Club",
                    "minutes": 45.0,
                    "is_starting": true,
                    "weight": 0.1948,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "Osasuna",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1656,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Valencia",
                    "minutes": 13.0,
                    "is_starting": false,
                    "weight": 0.1408,
                    "rating": 6.6
                  }
                ],
                "feature_row": {
                  "history_matches": 5.0,
                  "is_starting_11": 1.0,
                  "ballRecovery_p90": 3.317,
                  "ballRecovery": 3.1222,
                  "intensity_index": 2.9514,
                  "expectedAssists": 0.0397,
                  "kilometersCovered": 6.3507
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.899214506149292,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0755
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0617
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.043
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": 0.0332
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.0218
                        }
                      ],
                      "others": -0.1105,
                      "total": 0.8992
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.06113387271761894,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0164
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0057
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0049
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0044
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0038
                        }
                      ],
                      "others": -0.008,
                      "total": 0.0611
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.07322174310684204,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0068
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0045
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.004
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0032
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": -0.0022
                        }
                      ],
                      "others": -0.0097,
                      "total": 0.0732
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.039830174297094345,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0185
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0147
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0095
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0081
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0039
                        }
                      ],
                      "others": -0.022,
                      "total": 0.0398
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.877880096435547,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "duel_win_rate",
                          "contribution": -0.0353
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0218
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0191
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": 0.0186
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.018
                        }
                      ],
                      "others": 0.0039,
                      "total": 6.8779
                    }
                  }
                ],
                "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.0195, quality 0.565)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0623,
                "assists": 0,
                "expected_goals": 0.0406,
                "rating": 7.0117,
                "minutes": 67,
                "total_pass": 46,
                "accurate_pass": 43,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 16,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 30,
                "accurate_opp_half_passes": 27,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 54,
                "possession_lost": 4.4856,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 66,
                "progressive_carries": 1
              },
              "params": {
                "market_value_eur": 13700000,
                "quality_factor": 0.5649,
                "boost_factor": 1.0195
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0585)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0623,
                "assists": 0,
                "expected_goals": 0.0406,
                "rating": 7.0117,
                "minutes": 67,
                "total_pass": 46,
                "accurate_pass": 43,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 16,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 30,
                "accurate_opp_half_passes": 27,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 54,
                "possession_lost": 4.4856,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 66,
                "progressive_carries": 1,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 66.4,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": -1.13
              },
              "params": {
                "blend_weight": 0.0585,
                "history_matches": 5,
                "prior_reliability": 0.18,
                "competition": "La Liga",
                "squad": "Celta Vigo"
              },
              "changes": [
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0867
                },
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.065
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.0,
                  "after": 0.0433
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0623,
                "assists": 0,
                "expected_goals": 0.0406,
                "rating": 7.0117,
                "minutes": 67,
                "total_pass": 46,
                "accurate_pass": 43,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 16,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 30,
                "accurate_opp_half_passes": 27,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 54,
                "possession_lost": 4.4856,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 66,
                "progressive_carries": 1,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 66.4,
                "pointsPerMatch": 0.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.0623,
                "assists": 0,
                "expected_goals": 0.0406,
                "rating": 7.0117,
                "minutes": 67,
                "total_pass": 46,
                "accurate_pass": 43,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 16,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 30,
                "accurate_opp_half_passes": 27,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 54,
                "possession_lost": 4.4856,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 66,
                "progressive_carries": 1,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 66.4,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "opponent_faced": "Pablo García, Andrés Martín, André Almeida",
                "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": "Pablo García, Andrés Martín, André Almeida",
                  "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.6582, xG scale 1.5497)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0623,
                "assists": 0,
                "expected_goals": 0.0629,
                "rating": 7.0117,
                "minutes": 67,
                "total_pass": 46,
                "accurate_pass": 43,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 16,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 30,
                "accurate_opp_half_passes": 27,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 54,
                "possession_lost": 4.4856,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 66,
                "progressive_carries": 1,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 66.4,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "opponent_faced": "Pablo García, Andrés Martín, André Almeida",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "antagonist_source": "defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.02,
                "squad_xg_sum": 0.6582,
                "xg_scale": 1.5497,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0406,
                  "after": 0.0629
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 4, fifa_overall 78.0)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0623,
                "assists": 0,
                "expected_goals": 0.0629,
                "rating": 7.0117,
                "minutes": 67,
                "total_pass": 46,
                "accurate_pass": 43,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 16,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 30,
                "accurate_opp_half_passes": 27,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 54,
                "possession_lost": 4.4856,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 66,
                "progressive_carries": 1,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 66.4,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "opponent_faced": "Pablo García, Andrés Martín, André Almeida",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "antagonist_source": "defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 78.0
              },
              "params": {
                "match_squad_rank": 4,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 2650,
                "fifa_rank": 1242.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 78.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0623,
                "assists": 0,
                "expected_goals": 0.0629,
                "rating": 7.0117,
                "minutes": 67,
                "total_pass": 46,
                "accurate_pass": 43,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 16,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 30,
                "accurate_opp_half_passes": 27,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 54,
                "possession_lost": 4.4856,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 66,
                "progressive_carries": 1,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 66.4,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "opponent_faced": "Pablo García, Andrés Martín, André Almeida",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "antagonist_source": "defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0411,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0411,
                "scorer_weight": 0.3827,
                "squad_weight_total": 9.3177,
                "weight_share": 0.0411,
                "position_multiplier": 0.78
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0623,
                "assists": 0,
                "expected_goals": 0.0629,
                "rating": 7.0117,
                "minutes": 67,
                "total_pass": 46,
                "accurate_pass": 43,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 16,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 30,
                "accurate_opp_half_passes": 27,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 54,
                "possession_lost": 4.4856,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 66,
                "progressive_carries": 1,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 66.4,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "opponent_faced": "Pablo García, Andrés Martín, André Almeida",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "antagonist_source": "defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0411,
                "projected_assists": 0,
                "assist_probability": 0.1474,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.1474,
                "provider_weight": 1.278,
                "squad_weight_total": 8.6707,
                "weight_share": 0.1474,
                "position_multiplier": 1.45
              }
            }
          ]
        },
        "Sergio Carreira": {
          "player_id": 1002764,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 5,
          "height": 170,
          "market_value": 11500000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.0699,
            "assists": 0,
            "expected_goals": 0.0996,
            "rating": 6.9907,
            "minutes": 65,
            "total_pass": 40,
            "accurate_pass": 33,
            "duels_won": 4,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 14,
            "accurate_own_half_passes": 12,
            "total_opp_half_passes": 26,
            "accurate_opp_half_passes": 21,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 52,
            "possession_lost": 9.5126,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 15,
            "total_progression": 96,
            "progressive_carries": 2,
            "total_shots": 1,
            "offsides": 0,
            "yellowCards": 0.303,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 0.0,
            "shotConversion": 0.0,
            "minutesPct": 82.2,
            "pointsPerMatch": 0.5,
            "netGoalDifferencePer90": 0.0,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.7,
            "crosses_attempted": 2.4,
            "duel_win_rate": 0.407,
            "pressing_faced": "LOW",
            "matchup_zone": "LWB vs RWB",
            "numerical_situation": "1v1",
            "opponent_defenders": "Matteo Prati",
            "opponent_faced": "Matteo Prati",
            "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.0524,
            "projected_assists": 0,
            "assist_probability": 0.1498,
            "fifa_overall": 83.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16416347.0,
              "match_date": "2026-09-13 12: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": "Celta",
              "away_team": "Málaga",
              "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": "Celta",
              "opponent": "Málaga",
              "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": "away",
              "is_starting_11": 0,
              "team": "Celta Vigo",
              "opponent": "Getafe",
              "stats": {
                "minutes": 26,
                "rating": 6.9,
                "assists": 0,
                "expected_assists": 0.0595,
                "total_shots": 0,
                "total_pass": 20,
                "accurate_pass": 16,
                "key_pass": 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": 16416340.0,
              "match_date": "2026-09-03",
              "home_team": "Real Sociedad",
              "away_team": "Celta Vigo",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assists": 0,
                "expected_assists": 0.2399,
                "total_shots": 0,
                "total_pass": 59,
                "accurate_pass": 52,
                "key_pass": 1,
                "clearances": 1,
                "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": 16416308.0,
              "match_date": "2026-08-30",
              "home_team": "Celta Vigo",
              "away_team": "Athletic Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assists": 0,
                "expected_goals": 0.1437,
                "expected_assists": 0.0099,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 37,
                "accurate_pass": 26,
                "key_pass": 1,
                "clearances": 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": 16815992.0,
              "match_date": "2026-08-27",
              "home_team": "Celta Vigo",
              "away_team": "Osasuna",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Celta Vigo",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 25,
                "rating": 8.0,
                "assists": 0,
                "expected_goals": 0.0214,
                "expected_assists": 0.0214,
                "total_shots": 1,
                "total_pass": 24,
                "accurate_pass": 20,
                "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": 16416298.0,
              "match_date": "2026-08-22",
              "home_team": "Valencia",
              "away_team": "Celta Vigo",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Valencia",
              "stats": {
                "minutes": 90,
                "rating": 7.1,
                "assists": 0,
                "expected_goals": 0.0279,
                "expected_assists": 0.1461,
                "total_shots": 1,
                "total_pass": 59,
                "accurate_pass": 50,
                "clearances": 2,
                "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": 453,
            "combined_rank_score": 290.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 273.0,
            "sofascore_rating": 7.075,
            "sofascore_appearances": 4.0,
            "fifa_rank": 308.0,
            "fifa_overall": 83.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 5,
            "squad_role": "starter",
            "projected_match_rating": 6.9907,
            "source_file": "data/player_rankings.csv",
            "player_name": "Sergio Carreira",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Umar Adhamzoda",
                  "ranking": 448
                },
                {
                  "player_name": "Mateo Kovačić",
                  "ranking": 449
                },
                {
                  "player_name": "Jun-seok Lee",
                  "ranking": 450
                },
                {
                  "player_name": "Ademola Lookman",
                  "ranking": 451
                },
                {
                  "player_name": "Gonzalo Escalante",
                  "ranking": 452
                }
              ],
              "lower": [
                {
                  "player_name": "Neto Moura",
                  "ranking": 454
                },
                {
                  "player_name": "Walter",
                  "ranking": 455
                },
                {
                  "player_name": "Gonzalo Plata",
                  "ranking": 456
                },
                {
                  "player_name": "Luciano Acosta",
                  "ranking": 457
                },
                {
                  "player_name": "Kiernan Dewsbury-Hall",
                  "ranking": 458
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.596,
          "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",
              "rating"
            ],
            "history_matches": 5,
            "data_confidence": 0.596,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.012,
            "fbref_prior_metrics": {
              "squad": "Celta Vigo",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 4.0,
              "starts": 3.0,
              "minutes": 296.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.91,
              "shots_on_target_pct": 0.0,
              "prior_reliability": 0.22
            },
            "rationale": "XGBoost regressor (M_service) evaluated 5 historical appearances across 5 target models; FBref 2026-2027 prior blended (La Liga, Celta Vigo, rel: 0.22, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 5 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0691,
                "assists": 0,
                "expected_goals": 0.0635,
                "rating": 6.908,
                "minutes": 64,
                "total_pass": 40,
                "accurate_pass": 33,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 14,
                "accurate_own_half_passes": 12,
                "total_opp_half_passes": 26,
                "accurate_opp_half_passes": 21,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 52,
                "possession_lost": 9.4,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 95,
                "progressive_carries": 2
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:48.236605+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Getafe",
                    "minutes": 26.0,
                    "is_starting": false,
                    "weight": 0.2696,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-09-03",
                    "opponent": "Real Sociedad",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2292,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Athletic Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1948,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "Osasuna",
                    "minutes": 25.0,
                    "is_starting": false,
                    "weight": 0.1656,
                    "rating": 8.0
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Valencia",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1408,
                    "rating": 7.1
                  }
                ],
                "feature_row": {
                  "history_matches": 5.0,
                  "is_starting_11": 1.0,
                  "ballRecovery_p90": 5.5473,
                  "ballRecovery": 3.3587,
                  "intensity_index": 4.0602,
                  "expectedAssists": 0.097,
                  "kilometersCovered": 5.4497
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 1.193437099456787,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0945
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0648
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": 0.0616
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0532
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0499
                        }
                      ],
                      "others": 0.0067,
                      "total": 1.1934
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.06906217336654663,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0225
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": 0.0061
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0044
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0039
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0037
                        }
                      ],
                      "others": -0.0116,
                      "total": 0.0691
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.08368947356939316,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0055
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0046
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0033
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": 0.0027
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": -0.002
                        }
                      ],
                      "others": 0.0008,
                      "total": 0.0837
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.06353839486837387,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "intensity_index",
                          "contribution": -0.0148
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0096
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0077
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": 0.0076
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0059
                        }
                      ],
                      "others": -0.0148,
                      "total": 0.0635
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.9080119132995605,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "duel_win_rate",
                          "contribution": -0.0268
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0188
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0186
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": 0.0185
                        },
                        {
                          "name": "totalProgression",
                          "contribution": 0.0149
                        }
                      ],
                      "others": 0.0322,
                      "total": 6.908
                    }
                  }
                ],
                "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.0120, quality 0.540)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0699,
                "assists": 0,
                "expected_goals": 0.0643,
                "rating": 6.9907,
                "minutes": 65,
                "total_pass": 40,
                "accurate_pass": 33,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 14,
                "accurate_own_half_passes": 12,
                "total_opp_half_passes": 26,
                "accurate_opp_half_passes": 21,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 52,
                "possession_lost": 9.5126,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 96,
                "progressive_carries": 2
              },
              "params": {
                "market_value_eur": 11500000,
                "quality_factor": 0.5399,
                "boost_factor": 1.012
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0715)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0699,
                "assists": 0,
                "expected_goals": 0.0643,
                "rating": 6.9907,
                "minutes": 65,
                "total_pass": 40,
                "accurate_pass": 33,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 14,
                "accurate_own_half_passes": 12,
                "total_opp_half_passes": 26,
                "accurate_opp_half_passes": 21,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 52,
                "possession_lost": 9.5126,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 96,
                "progressive_carries": 2,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.303,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 82.2,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": -0.61
              },
              "params": {
                "blend_weight": 0.0715,
                "history_matches": 5,
                "prior_reliability": 0.22,
                "competition": "La Liga",
                "squad": "Celta Vigo"
              },
              "changes": [
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.1517
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0867
                },
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.0217
                },
                {
                  "stat": "goalAssist",
                  "before": 0.0847,
                  "after": 0.0786
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0699,
                "assists": 0,
                "expected_goals": 0.0643,
                "rating": 6.9907,
                "minutes": 65,
                "total_pass": 40,
                "accurate_pass": 33,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 14,
                "accurate_own_half_passes": 12,
                "total_opp_half_passes": 26,
                "accurate_opp_half_passes": 21,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 52,
                "possession_lost": 9.5126,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 96,
                "progressive_carries": 2,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.303,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 82.2,
                "pointsPerMatch": 0.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.0699,
                "assists": 0,
                "expected_goals": 0.0643,
                "rating": 6.9907,
                "minutes": 65,
                "total_pass": 40,
                "accurate_pass": 33,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 14,
                "accurate_own_half_passes": 12,
                "total_opp_half_passes": 26,
                "accurate_opp_half_passes": 21,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 52,
                "possession_lost": 9.5126,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 96,
                "progressive_carries": 2,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.303,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 82.2,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "crosses_attempted": 2.4,
                "duel_win_rate": 0.407,
                "pressing_faced": "LOW",
                "matchup_zone": "LWB vs RWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Matteo Prati",
                "opponent_faced": "Matteo Prati",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Matteo Prati",
                  "matchup_zone": "LWB vs RWB",
                  "duel_win_rate": 0.407,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v1"
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.0,
                  "after": 0.8
                },
                {
                  "stat": "totalShots",
                  "before": 0.91,
                  "after": 1.0
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.6582, xG scale 1.5497)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0699,
                "assists": 0,
                "expected_goals": 0.0996,
                "rating": 6.9907,
                "minutes": 65,
                "total_pass": 40,
                "accurate_pass": 33,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 14,
                "accurate_own_half_passes": 12,
                "total_opp_half_passes": 26,
                "accurate_opp_half_passes": 21,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 52,
                "possession_lost": 9.5126,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 96,
                "progressive_carries": 2,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.303,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 82.2,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "crosses_attempted": 2.4,
                "duel_win_rate": 0.407,
                "pressing_faced": "LOW",
                "matchup_zone": "LWB vs RWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Matteo Prati",
                "opponent_faced": "Matteo Prati",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.02,
                "squad_xg_sum": 0.6582,
                "xg_scale": 1.5497,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0643,
                  "after": 0.0996
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 5, fifa_overall 83.0)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0699,
                "assists": 0,
                "expected_goals": 0.0996,
                "rating": 6.9907,
                "minutes": 65,
                "total_pass": 40,
                "accurate_pass": 33,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 14,
                "accurate_own_half_passes": 12,
                "total_opp_half_passes": 26,
                "accurate_opp_half_passes": 21,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 52,
                "possession_lost": 9.5126,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 96,
                "progressive_carries": 2,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.303,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 82.2,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "crosses_attempted": 2.4,
                "duel_win_rate": 0.407,
                "pressing_faced": "LOW",
                "matchup_zone": "LWB vs RWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Matteo Prati",
                "opponent_faced": "Matteo Prati",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 83.0
              },
              "params": {
                "match_squad_rank": 5,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 453,
                "fifa_rank": 308.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 83.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0699,
                "assists": 0,
                "expected_goals": 0.0996,
                "rating": 6.9907,
                "minutes": 65,
                "total_pass": 40,
                "accurate_pass": 33,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 14,
                "accurate_own_half_passes": 12,
                "total_opp_half_passes": 26,
                "accurate_opp_half_passes": 21,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 52,
                "possession_lost": 9.5126,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 96,
                "progressive_carries": 2,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.303,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 82.2,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "crosses_attempted": 2.4,
                "duel_win_rate": 0.407,
                "pressing_faced": "LOW",
                "matchup_zone": "LWB vs RWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Matteo Prati",
                "opponent_faced": "Matteo Prati",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0524,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 83.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0524,
                "scorer_weight": 0.488,
                "squad_weight_total": 9.3177,
                "weight_share": 0.0524,
                "position_multiplier": 0.78
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0699,
                "assists": 0,
                "expected_goals": 0.0996,
                "rating": 6.9907,
                "minutes": 65,
                "total_pass": 40,
                "accurate_pass": 33,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 14,
                "accurate_own_half_passes": 12,
                "total_opp_half_passes": 26,
                "accurate_opp_half_passes": 21,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 52,
                "possession_lost": 9.5126,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 96,
                "progressive_carries": 2,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.303,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 82.2,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "crosses_attempted": 2.4,
                "duel_win_rate": 0.407,
                "pressing_faced": "LOW",
                "matchup_zone": "LWB vs RWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Matteo Prati",
                "opponent_faced": "Matteo Prati",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0524,
                "projected_assists": 0,
                "assist_probability": 0.1498,
                "fifa_overall": 83.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.1498,
                "provider_weight": 1.2989,
                "squad_weight_total": 8.6707,
                "weight_share": 0.1498,
                "position_multiplier": 1.45
              }
            }
          ]
        },
        "Hugo Álvarez": {
          "player_id": 1154935,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 23,
          "height": 176,
          "market_value": 7800000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.1178,
            "assists": 0,
            "expected_goals": 0.1333,
            "rating": 6.9706,
            "minutes": 38,
            "total_pass": 20,
            "accurate_pass": 16,
            "duels_won": 4,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 5,
            "accurate_own_half_passes": 4,
            "total_opp_half_passes": 15,
            "accurate_opp_half_passes": 12,
            "crosses_total": 2,
            "crosses_accurate": 0,
            "touches": 26,
            "possession_lost": 8.3207,
            "dispossessed": 1.3285,
            "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,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 10,
            "total_progression": 45,
            "progressive_carries": 2,
            "total_shots": 1,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "minutesPct": 32.2,
            "pointsPerMatch": 0.33,
            "netGoalDifferencePer90": 0.0,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.7,
            "crosses_attempted": 2.3,
            "duel_win_rate": 0.419,
            "pressing_faced": "LOW",
            "matchup_zone": "RWB vs LWB",
            "numerical_situation": "1v1",
            "opponent_defenders": "Iñigo Vicente",
            "opponent_faced": "Iñigo Vicente",
            "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.0624,
            "projected_assists": 0,
            "assist_probability": 0.1761,
            "fifa_overall": 75.0
          },
          "latest_10_games": [
            {
              "match_id": 16416308.0,
              "match_date": "2026-08-30",
              "home_team": "Celta Vigo",
              "away_team": "Athletic Club",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Celta Vigo",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 33,
                "rating": 6.5,
                "assists": 0,
                "expected_assists": 0.0254,
                "total_shots": 0,
                "total_pass": 18,
                "accurate_pass": 13,
                "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": 16815992.0,
              "match_date": "2026-08-27",
              "home_team": "Celta Vigo",
              "away_team": "Osasuna",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Celta Vigo",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 25,
                "rating": 6.7,
                "assists": 0,
                "expected_assists": 0.0622,
                "total_shots": 0,
                "total_pass": 15,
                "accurate_pass": 12,
                "key_pass": 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": 16416298.0,
              "match_date": "2026-08-22",
              "home_team": "Valencia",
              "away_team": "Celta Vigo",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Valencia",
              "stats": {
                "minutes": 57,
                "rating": 6.2,
                "assists": 0,
                "expected_assists": 0.033,
                "total_shots": 0,
                "total_pass": 27,
                "accurate_pass": 23,
                "key_pass": 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"
            }
          ],
          "ranking": {
            "global_player_rank": 3534,
            "combined_rank_score": 1503.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 592.0,
            "sofascore_rating": 6.7893,
            "sofascore_appearances": 28.0,
            "fifa_rank": 2415.0,
            "fifa_overall": 75.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 9,
            "squad_role": "starter",
            "projected_match_rating": 6.9706,
            "source_file": "data/player_rankings.csv",
            "player_name": "Hugo Álvarez",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Yuito Suzuki",
                  "ranking": 3529
                },
                {
                  "player_name": "Tim Lemperle",
                  "ranking": 3530
                },
                {
                  "player_name": "Nicolò Savona",
                  "ranking": 3531
                },
                {
                  "player_name": "Pablo Torre",
                  "ranking": 3532
                },
                {
                  "player_name": "Paul Nebel",
                  "ranking": 3533
                }
              ],
              "lower": [
                {
                  "player_name": "Israel Reyes",
                  "ranking": 3535
                },
                {
                  "player_name": "Rocco Reitz",
                  "ranking": 3536
                },
                {
                  "player_name": "Chrislain Matsima",
                  "ranking": 3537
                },
                {
                  "player_name": "Yan Couto",
                  "ranking": 3538
                },
                {
                  "player_name": "Enes Ünal",
                  "ranking": 3539
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.451,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.451,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.9989,
            "fbref_prior_metrics": {
              "squad": "Celta Vigo",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 1.0,
              "minutes": 116.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.0,
              "prior_reliability": 0.0867
            },
            "rationale": "XGBoost regressor (M_service) evaluated 3 historical appearances across 5 target models; FBref 2026-2027 prior blended (La Liga, Celta Vigo, rel: 0.09, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 5 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1179,
                "assists": 0,
                "expected_goals": 0.0861,
                "rating": 6.9784,
                "minutes": 38,
                "total_pass": 20,
                "accurate_pass": 16,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 12,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 26,
                "possession_lost": 8.33,
                "dispossessed": 1.33,
                "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,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 45,
                "progressive_carries": 2
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:48.236605+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Athletic Club",
                    "minutes": 33.0,
                    "is_starting": false,
                    "weight": 0.3887,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "Osasuna",
                    "minutes": 25.0,
                    "is_starting": false,
                    "weight": 0.3304,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Valencia",
                    "minutes": 57.0,
                    "is_starting": true,
                    "weight": 0.2809,
                    "rating": 6.2
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 1.0,
                  "ballRecovery_p90": 2.3905,
                  "ballRecovery": 1.2313,
                  "intensity_index": 3.6986,
                  "expectedAssists": 0.0397,
                  "kilometersCovered": 5.1793
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 1.1224662065505981,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0637
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0426
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": 0.0398
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0383
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.032
                        }
                      ],
                      "others": 0.001,
                      "total": 1.1225
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.11794616281986237,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.0166
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": 0.0112
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0086
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": -0.0059
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0058
                        }
                      ],
                      "others": 0.0059,
                      "total": 0.1179
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.1106836274266243,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0054
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.0047
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.005
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": 0.0051
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.005
                        }
                      ],
                      "others": 0.0007,
                      "total": 0.1107
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.08610253781080246,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0153
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0131
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0074
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0058
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": 0.0054
                        }
                      ],
                      "others": 0.0136,
                      "total": 0.0861
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.97841215133667,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.024
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.0233
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0229
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0221
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0162
                        }
                      ],
                      "others": 0.0705,
                      "total": 6.9784
                    }
                  }
                ],
                "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.9989, quality 0.496)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1178,
                "assists": 0,
                "expected_goals": 0.086,
                "rating": 6.9706,
                "minutes": 38,
                "total_pass": 20,
                "accurate_pass": 16,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 12,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 26,
                "possession_lost": 8.3207,
                "dispossessed": 1.3285,
                "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,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 45,
                "progressive_carries": 2
              },
              "params": {
                "market_value_eur": 7800000,
                "quality_factor": 0.4963,
                "boost_factor": 0.9989
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0352)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1178,
                "assists": 0,
                "expected_goals": 0.086,
                "rating": 6.9706,
                "minutes": 38,
                "total_pass": 20,
                "accurate_pass": 16,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 12,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 26,
                "possession_lost": 8.3207,
                "dispossessed": 1.3285,
                "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,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 45,
                "progressive_carries": 2,
                "total_shots": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 32.2,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "blend_weight": 0.0352,
                "history_matches": 3,
                "prior_reliability": 0.0867,
                "competition": "La Liga",
                "squad": "Celta Vigo"
              },
              "changes": [
                {
                  "stat": "totalCross",
                  "before": 1.9978,
                  "after": 2.09
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0542
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0271
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1178,
                "assists": 0,
                "expected_goals": 0.086,
                "rating": 6.9706,
                "minutes": 38,
                "total_pass": 20,
                "accurate_pass": 16,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 12,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 26,
                "possession_lost": 8.3207,
                "dispossessed": 1.3285,
                "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,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 45,
                "progressive_carries": 2,
                "total_shots": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 32.2,
                "pointsPerMatch": 0.33,
                "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.1178,
                "assists": 0,
                "expected_goals": 0.086,
                "rating": 6.9706,
                "minutes": 38,
                "total_pass": 20,
                "accurate_pass": 16,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 12,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 26,
                "possession_lost": 8.3207,
                "dispossessed": 1.3285,
                "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,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 45,
                "progressive_carries": 2,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 32.2,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "crosses_attempted": 2.3,
                "duel_win_rate": 0.419,
                "pressing_faced": "LOW",
                "matchup_zone": "RWB vs LWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Iñigo Vicente",
                "opponent_faced": "Iñigo Vicente",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Iñigo Vicente",
                  "matchup_zone": "RWB vs LWB",
                  "duel_win_rate": 0.419,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v1"
                }
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 0.0,
                  "after": 1.0
                },
                {
                  "stat": "aerialWon",
                  "before": 0.0,
                  "after": 0.9
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.6582, xG scale 1.5497)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1178,
                "assists": 0,
                "expected_goals": 0.1333,
                "rating": 6.9706,
                "minutes": 38,
                "total_pass": 20,
                "accurate_pass": 16,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 12,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 26,
                "possession_lost": 8.3207,
                "dispossessed": 1.3285,
                "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,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 45,
                "progressive_carries": 2,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 32.2,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "crosses_attempted": 2.3,
                "duel_win_rate": 0.419,
                "pressing_faced": "LOW",
                "matchup_zone": "RWB vs LWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Iñigo Vicente",
                "opponent_faced": "Iñigo Vicente",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.02,
                "squad_xg_sum": 0.6582,
                "xg_scale": 1.5497,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.086,
                  "after": 0.1333
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 9, fifa_overall 75.0)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1178,
                "assists": 0,
                "expected_goals": 0.1333,
                "rating": 6.9706,
                "minutes": 38,
                "total_pass": 20,
                "accurate_pass": 16,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 12,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 26,
                "possession_lost": 8.3207,
                "dispossessed": 1.3285,
                "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,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 45,
                "progressive_carries": 2,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 32.2,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "crosses_attempted": 2.3,
                "duel_win_rate": 0.419,
                "pressing_faced": "LOW",
                "matchup_zone": "RWB vs LWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Iñigo Vicente",
                "opponent_faced": "Iñigo Vicente",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 75.0
              },
              "params": {
                "match_squad_rank": 9,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3534,
                "fifa_rank": 2415.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 75.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1178,
                "assists": 0,
                "expected_goals": 0.1333,
                "rating": 6.9706,
                "minutes": 38,
                "total_pass": 20,
                "accurate_pass": 16,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 12,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 26,
                "possession_lost": 8.3207,
                "dispossessed": 1.3285,
                "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,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 45,
                "progressive_carries": 2,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 32.2,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "crosses_attempted": 2.3,
                "duel_win_rate": 0.419,
                "pressing_faced": "LOW",
                "matchup_zone": "RWB vs LWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Iñigo Vicente",
                "opponent_faced": "Iñigo Vicente",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0624,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 75.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0624,
                "scorer_weight": 0.5818,
                "squad_weight_total": 9.3177,
                "weight_share": 0.0624,
                "position_multiplier": 0.78
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1178,
                "assists": 0,
                "expected_goals": 0.1333,
                "rating": 6.9706,
                "minutes": 38,
                "total_pass": 20,
                "accurate_pass": 16,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 12,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 26,
                "possession_lost": 8.3207,
                "dispossessed": 1.3285,
                "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,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 45,
                "progressive_carries": 2,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 32.2,
                "pointsPerMatch": 0.33,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "crosses_attempted": 2.3,
                "duel_win_rate": 0.419,
                "pressing_faced": "LOW",
                "matchup_zone": "RWB vs LWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Iñigo Vicente",
                "opponent_faced": "Iñigo Vicente",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0624,
                "projected_assists": 0,
                "assist_probability": 0.1761,
                "fifa_overall": 75.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.1761,
                "provider_weight": 1.5268,
                "squad_weight_total": 8.6707,
                "weight_share": 0.1761,
                "position_multiplier": 1.45
              }
            }
          ]
        },
        "Ferrán Jutglà": {
          "player_id": 949962,
          "position": "F",
          "position_depth": "F",
          "is_starter": true,
          "shirt_number": 9,
          "height": 175,
          "market_value": 10700000,
          "stats": {
            "expected_goals": 0.1771,
            "goal_rate": 0.2789,
            "goals": 1,
            "shots_on_target": 1,
            "expected_assists": 0.0452,
            "key_pass": 1,
            "rating": 6.8348,
            "minutes": 50,
            "total_pass": 9,
            "accurate_pass": 7,
            "duels_won": 3,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 6,
            "accurate_opp_half_passes": 4,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 17,
            "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,
            "assists": 0,
            "shots_off_target": 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": 8,
            "progressive_carries": 1,
            "total_shots": 2,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 0.0,
            "shotConversion": 0.0,
            "minutesPct": 64.7,
            "pointsPerMatch": 0.5,
            "netGoalDifferencePer90": 0.0,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.3,
            "aerial_won": 1,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.18,
            "pressing_faced": "LOW",
            "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "numerical_situation": "1v2",
            "opponent_defenders": "Jeanuël Belocian, Jorge Salinas",
            "opponent_faced": "Jeanuël Belocian, Jorge Salinas",
            "antagonist_source": "attacking_duel",
            "projected_goals": 1,
            "goal_probability": 0.3149,
            "projected_assists": 0,
            "assist_probability": 0.0759,
            "fifa_overall": 75.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16416347.0,
              "match_date": "2026-09-13 12: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": "Celta",
              "away_team": "Málaga",
              "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": "Celta",
              "opponent": "Málaga",
              "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": "away",
              "is_starting_11": 0,
              "team": "Celta Vigo",
              "opponent": "Getafe",
              "stats": {
                "minutes": 13,
                "rating": 6.7,
                "assists": 0,
                "expected_assists": 0.0168,
                "total_shots": 0,
                "total_pass": 3,
                "accurate_pass": 3,
                "tackles": 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": 16416340.0,
              "match_date": "2026-09-03",
              "home_team": "Real Sociedad",
              "away_team": "Celta Vigo",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 69,
                "rating": 6.5,
                "assists": 0,
                "expected_assists": 0.0939,
                "total_shots": 0,
                "total_pass": 15,
                "accurate_pass": 9,
                "key_pass": 1,
                "aerial_won": 2,
                "duels_won": 7,
                "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": 16416308.0,
              "match_date": "2026-08-30",
              "home_team": "Celta Vigo",
              "away_team": "Athletic Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assists": 0,
                "expected_goals": 0.0268,
                "expected_assists": 0.0949,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 13,
                "accurate_pass": 12,
                "key_pass": 1,
                "clearances": 1,
                "aerial_won": 2,
                "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": 16815992.0,
              "match_date": "2026-08-27",
              "home_team": "Celta Vigo",
              "away_team": "Osasuna",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Celta Vigo",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 11,
                "rating": 6.7,
                "assists": 0,
                "expected_assists": 0.0053,
                "total_shots": 0,
                "total_pass": 6,
                "accurate_pass": 5,
                "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": 16416298.0,
              "match_date": "2026-08-22",
              "home_team": "Valencia",
              "away_team": "Celta Vigo",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Valencia",
              "stats": {
                "minutes": 64,
                "rating": 6.0,
                "assists": 0,
                "expected_assists": 0.0013,
                "total_shots": 0,
                "total_pass": 8,
                "accurate_pass": 6,
                "tackles": 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": 3438,
            "combined_rank_score": 1429.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 444.0,
            "sofascore_rating": 6.9033,
            "sofascore_appearances": 30.0,
            "fifa_rank": 2414.0,
            "fifa_overall": 75.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 6,
            "squad_role": "starter",
            "projected_match_rating": 6.8348,
            "source_file": "data/player_rankings.csv",
            "player_name": "Ferran Jutglà",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Carlos Rodríguez",
                  "ranking": 3433
                },
                {
                  "player_name": "Ryan Manning",
                  "ranking": 3434
                },
                {
                  "player_name": "Sebastiaan Bornauw",
                  "ranking": 3435
                },
                {
                  "player_name": "Lorenzo Melgarejo",
                  "ranking": 3436
                },
                {
                  "player_name": "Tomáš Chorý",
                  "ranking": 3437
                }
              ],
              "lower": [
                {
                  "player_name": "César Tárrega",
                  "ranking": 3439
                },
                {
                  "player_name": "Lucas Stassin",
                  "ranking": 3440
                },
                {
                  "player_name": "Nelson Deossa",
                  "ranking": 3441
                },
                {
                  "player_name": "Filip Jörgensen",
                  "ranking": 3442
                },
                {
                  "player_name": "Luis Muriel",
                  "ranking": 3443
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.588,
          "history_matches": 5,
          "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",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 5,
            "data_confidence": 0.588,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0092,
            "fbref_prior_metrics": {
              "squad": "Celta Vigo",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 4.0,
              "starts": 3.0,
              "minutes": 233.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.39,
              "shots_on_target_pct": 0.0,
              "prior_reliability": 0.1733
            },
            "rationale": "XGBoost regressor (F_service) evaluated 5 historical appearances across 6 target models; FBref 2026-2027 prior blended (La Liga, Celta Vigo, rel: 0.17, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 6 target models",
              "stats": {
                "expected_goals": 0.1757,
                "goal_rate": 0.2928,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0448,
                "key_pass": 1,
                "rating": 6.7725,
                "minutes": 49,
                "total_pass": 9,
                "accurate_pass": 7,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 17,
                "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,
                "assists": 0,
                "shots_off_target": 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": 8,
                "progressive_carries": 1
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:52.318462+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 278,
                    "rows": 769
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Getafe",
                    "minutes": 13.0,
                    "is_starting": false,
                    "weight": 0.2696,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-09-03",
                    "opponent": "Real Sociedad",
                    "minutes": 69.0,
                    "is_starting": true,
                    "weight": 0.2292,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Athletic Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1948,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "Osasuna",
                    "minutes": 11.0,
                    "is_starting": false,
                    "weight": 0.1656,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Valencia",
                    "minutes": 64.0,
                    "is_starting": true,
                    "weight": 0.1408,
                    "rating": 6.0
                  }
                ],
                "feature_row": {
                  "history_matches": 5.0,
                  "is_starting_11": 1.0,
                  "onTargetScoringAttempt": 0.0,
                  "totalShots": 0.1948,
                  "minutesPlayed": 47.683,
                  "touches": 17.0806,
                  "dribbleValueNormalized": 0.0173
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.17567075788974762,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.093
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0745
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0545
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.043
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0314
                      }
                    ],
                    "decomposition": {
                      "base": 0.2757,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0441
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0272
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0149
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0141
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0114
                        }
                      ],
                      "others": -0.0725,
                      "total": 0.1757
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.2928088307380676,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0371
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0298
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.3455,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0461
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0353
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": 0.0222
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0237
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0166
                        }
                      ],
                      "others": -0.0338,
                      "total": 0.2928
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.6748698353767395,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0703
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0486
                      },
                      {
                        "name": "touches",
                        "importance": 0.0401
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0347
                      }
                    ],
                    "decomposition": {
                      "base": 0.6329,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0501
                        },
                        {
                          "name": "topSpeed",
                          "contribution": 0.0406
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0322
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.025
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": -0.0232
                        }
                      ],
                      "others": -0.0183,
                      "total": 0.6749
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.044814493507146835,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0802
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0621
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0547
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0537
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0397
                      }
                    ],
                    "decomposition": {
                      "base": 0.0579,
                      "items": [
                        {
                          "name": "totalPass",
                          "contribution": -0.0063
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0052
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.004
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.003
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": 0.0029
                        }
                      ],
                      "others": 0.0025,
                      "total": 0.0448
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.5790368914604187,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0738
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0657
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0615
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0458
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0313
                      }
                    ],
                    "decomposition": {
                      "base": 0.6829,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.125
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.068
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0353
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.024
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0219
                        }
                      ],
                      "others": -0.0797,
                      "total": 0.579
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.772544860839844,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "speed_threat",
                        "importance": 0.0598
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0489
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0439
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0404
                      }
                    ],
                    "decomposition": {
                      "base": 6.7136,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0379
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.033
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0273
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": -0.0261
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0207
                        }
                      ],
                      "others": 0.0867,
                      "total": 6.7725
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0092, quality 0.531)",
              "stats": {
                "expected_goals": 0.1773,
                "goal_rate": 0.2955,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0452,
                "key_pass": 1,
                "rating": 6.8348,
                "minutes": 50,
                "total_pass": 9,
                "accurate_pass": 7,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 17,
                "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,
                "assists": 0,
                "shots_off_target": 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": 8,
                "progressive_carries": 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.0563)",
              "stats": {
                "expected_goals": 0.1773,
                "goal_rate": 0.2789,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0452,
                "key_pass": 1,
                "rating": 6.8348,
                "minutes": 50,
                "total_pass": 9,
                "accurate_pass": 7,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 17,
                "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,
                "assists": 0,
                "shots_off_target": 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": 8,
                "progressive_carries": 1,
                "total_shots": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 64.7,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": -0.77
              },
              "params": {
                "blend_weight": 0.0563,
                "history_matches": 5,
                "prior_reliability": 0.1733,
                "competition": "La Liga",
                "squad": "Celta Vigo"
              },
              "changes": [
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.1516
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.065
                },
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.0433
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.6811,
                  "after": 0.6427
                },
                {
                  "stat": "goals",
                  "before": 0.2955,
                  "after": 0.2789
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.1773,
                "goal_rate": 0.2789,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0452,
                "key_pass": 1,
                "rating": 6.8348,
                "minutes": 50,
                "total_pass": 9,
                "accurate_pass": 7,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 17,
                "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,
                "assists": 0,
                "shots_off_target": 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": 8,
                "progressive_carries": 1,
                "total_shots": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 64.7,
                "pointsPerMatch": 0.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": {
                "expected_goals": 0.1143,
                "goal_rate": 0.2789,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0452,
                "key_pass": 1,
                "rating": 6.8348,
                "minutes": 50,
                "total_pass": 9,
                "accurate_pass": 7,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 17,
                "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,
                "assists": 0,
                "shots_off_target": 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": 8,
                "progressive_carries": 1,
                "total_shots": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 64.7,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Jeanuël Belocian, Jorge Salinas",
                "opponent_faced": "Jeanuël Belocian, Jorge Salinas",
                "antagonist_source": "attacking_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Jeanuël Belocian, Jorge Salinas",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                  "duel_win_rate": 0.18,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v2",
                  "xg_override": 0.1143
                }
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 0.6427,
                  "after": 2.0
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.1773,
                  "after": 0.1143
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.6582, xG scale 1.5497)",
              "stats": {
                "expected_goals": 0.1771,
                "goal_rate": 0.2789,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0452,
                "key_pass": 1,
                "rating": 6.8348,
                "minutes": 50,
                "total_pass": 9,
                "accurate_pass": 7,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 17,
                "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,
                "assists": 0,
                "shots_off_target": 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": 8,
                "progressive_carries": 1,
                "total_shots": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 64.7,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Jeanuël Belocian, Jorge Salinas",
                "opponent_faced": "Jeanuël Belocian, Jorge Salinas",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.02,
                "squad_xg_sum": 0.6582,
                "xg_scale": 1.5497,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.1143,
                  "after": 0.1771
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 6, fifa_overall 75.0)",
              "stats": {
                "expected_goals": 0.1771,
                "goal_rate": 0.2789,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0452,
                "key_pass": 1,
                "rating": 6.8348,
                "minutes": 50,
                "total_pass": 9,
                "accurate_pass": 7,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 17,
                "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,
                "assists": 0,
                "shots_off_target": 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": 8,
                "progressive_carries": 1,
                "total_shots": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 64.7,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Jeanuël Belocian, Jorge Salinas",
                "opponent_faced": "Jeanuël Belocian, Jorge Salinas",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 75.0
              },
              "params": {
                "match_squad_rank": 6,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3438,
                "fifa_rank": 2414.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 75.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "expected_goals": 0.1771,
                "goal_rate": 0.2789,
                "goals": 1,
                "shots_on_target": 1,
                "expected_assists": 0.0452,
                "key_pass": 1,
                "rating": 6.8348,
                "minutes": 50,
                "total_pass": 9,
                "accurate_pass": 7,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 17,
                "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,
                "assists": 0,
                "shots_off_target": 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": 8,
                "progressive_carries": 1,
                "total_shots": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 64.7,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Jeanuël Belocian, Jorge Salinas",
                "opponent_faced": "Jeanuël Belocian, Jorge Salinas",
                "antagonist_source": "attacking_duel",
                "projected_goals": 1,
                "goal_probability": 0.3149,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 75.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 1,
                "goal_probability": 0.3149,
                "scorer_weight": 2.9343,
                "squad_weight_total": 9.3177,
                "weight_share": 0.3149,
                "position_multiplier": 1.45
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "expected_goals": 0.1771,
                "goal_rate": 0.2789,
                "goals": 1,
                "shots_on_target": 1,
                "expected_assists": 0.0452,
                "key_pass": 1,
                "rating": 6.8348,
                "minutes": 50,
                "total_pass": 9,
                "accurate_pass": 7,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 17,
                "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,
                "assists": 0,
                "shots_off_target": 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": 8,
                "progressive_carries": 1,
                "total_shots": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 64.7,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Jeanuël Belocian, Jorge Salinas",
                "opponent_faced": "Jeanuël Belocian, Jorge Salinas",
                "antagonist_source": "attacking_duel",
                "projected_goals": 1,
                "goal_probability": 0.3149,
                "projected_assists": 0,
                "assist_probability": 0.0759,
                "fifa_overall": 75.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0759,
                "provider_weight": 0.6581,
                "squad_weight_total": 8.6707,
                "weight_share": 0.0759,
                "position_multiplier": 0.85
              }
            }
          ]
        },
        "Jones El-Abdellaoui": {
          "player_id": 1173575,
          "position": "F",
          "position_depth": "F",
          "is_starter": true,
          "shirt_number": 39,
          "height": 184,
          "market_value": 8400000,
          "stats": {
            "expected_goals": 0.1967,
            "goal_rate": 0.2064,
            "goals": 0,
            "shots_on_target": 1,
            "expected_assists": 0.0546,
            "key_pass": 1,
            "rating": 6.7517,
            "minutes": 51,
            "total_pass": 13,
            "accurate_pass": 11,
            "duels_won": 3,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 10,
            "accurate_opp_half_passes": 9,
            "crosses_total": 2,
            "crosses_accurate": 0,
            "touches": 23,
            "possession_lost": 7.3377,
            "dispossessed": 0.0,
            "duels_lost": 2,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assists": 0,
            "shots_off_target": 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": 10,
            "total_progression": 60,
            "progressive_carries": 2,
            "total_shots": 2,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 50.0,
            "shotConversion": 0.0,
            "minutesPct": 24.4,
            "pointsPerMatch": 0.5,
            "netGoalDifferencePer90": 0.0,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.3,
            "aerial_won": 2,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.19,
            "pressing_faced": "LOW",
            "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "numerical_situation": "1v2",
            "opponent_defenders": "Jeanuël Belocian, Jorge Salinas",
            "opponent_faced": "Jeanuël Belocian, Jorge Salinas",
            "antagonist_source": "attacking_duel",
            "projected_goals": 0,
            "goal_probability": 0.2964,
            "projected_assists": 0,
            "assist_probability": 0.0793,
            "fifa_overall": 72.0
          },
          "latest_10_games": [
            {
              "match_id": 16416348.0,
              "match_date": "2026-09-07",
              "home_team": "Getafe",
              "away_team": "Celta Vigo",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Getafe",
              "stats": {
                "minutes": 64,
                "rating": 6.2,
                "assists": 0,
                "expected_goals": 0.0319,
                "expected_assists": 0.0087,
                "total_shots": 1,
                "total_pass": 20,
                "accurate_pass": 17,
                "clearances": 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": 16815992.0,
              "match_date": "2026-08-27",
              "home_team": "Celta Vigo",
              "away_team": "Osasuna",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Celta Vigo",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 25,
                "rating": 6.5,
                "assists": 0,
                "expected_goals": 0.0193,
                "expected_assists": 0.0117,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 6,
                "accurate_pass": 5,
                "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": 16416298.0,
              "match_date": "2026-08-22",
              "home_team": "Valencia",
              "away_team": "Celta Vigo",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Valencia",
              "stats": {
                "minutes": 63,
                "rating": 6.3,
                "assists": 0,
                "expected_goals": 0.2722,
                "expected_assists": 0.0172,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 13,
                "accurate_pass": 12
              },
              "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": 4507,
            "combined_rank_score": 2528.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 792.0,
            "sofascore_rating": 6.6273,
            "sofascore_appearances": 22.0,
            "fifa_rank": 4264.0,
            "fifa_overall": 72.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 8,
            "squad_role": "starter",
            "projected_match_rating": 6.7517,
            "source_file": "data/player_rankings.csv",
            "player_name": "Jones El-Abdellaoui",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Arthur Cabral",
                  "ranking": 4502
                },
                {
                  "player_name": "Iván Colman",
                  "ranking": 4503
                },
                {
                  "player_name": "Álvaro Montoro",
                  "ranking": 4504
                },
                {
                  "player_name": "Cryzan",
                  "ranking": 4505
                },
                {
                  "player_name": "Valentino Lazaro",
                  "ranking": 4506
                }
              ],
              "lower": [
                {
                  "player_name": "Filip Đuričić",
                  "ranking": 4508
                },
                {
                  "player_name": "Michał Skóraś",
                  "ranking": 4509
                },
                {
                  "player_name": "Santiago Ramos Mingo",
                  "ranking": 4510
                },
                {
                  "player_name": "Thelo Aasgaard",
                  "ranking": 4511
                },
                {
                  "player_name": "Richie Laryea",
                  "ranking": 4512
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.448,
          "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",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.448,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.001,
            "fbref_prior_metrics": {
              "squad": "Celta Vigo",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 1.0,
              "minutes": 88.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 2.05,
              "shots_on_target_pct": 50.0,
              "prior_reliability": 0.0667
            },
            "rationale": "XGBoost regressor (F_service) evaluated 3 historical appearances across 6 target models; FBref 2026-2027 prior blended (La Liga, Celta Vigo, rel: 0.07, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 6 target models",
              "stats": {
                "expected_goals": 0.1923,
                "goal_rate": 0.2119,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0546,
                "key_pass": 1,
                "rating": 6.7447,
                "minutes": 51,
                "total_pass": 13,
                "accurate_pass": 11,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 9,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 23,
                "possession_lost": 7.33,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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": 10,
                "total_progression": 60,
                "progressive_carries": 2
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:52.318462+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 278,
                    "rows": 769
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Getafe",
                    "minutes": 64.0,
                    "is_starting": true,
                    "weight": 0.3887,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "Osasuna",
                    "minutes": 25.0,
                    "is_starting": false,
                    "weight": 0.3304,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Valencia",
                    "minutes": 63.0,
                    "is_starting": true,
                    "weight": 0.2809,
                    "rating": 6.3
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 1.0,
                  "onTargetScoringAttempt": 0.3304,
                  "totalShots": 1.0,
                  "minutesPlayed": 50.8328,
                  "touches": 24.1224,
                  "dribbleValueNormalized": 0.1865
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.1923237442970276,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.093
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0745
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0545
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.043
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0314
                      }
                    ],
                    "decomposition": {
                      "base": 0.2757,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0494
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0249
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0262
                        },
                        {
                          "name": "aerial_dominance",
                          "contribution": -0.0236
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0154
                        }
                      ],
                      "others": -0.0461,
                      "total": 0.1923
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.2118559628725052,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0371
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0298
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.3455,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.1417
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0739
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0451
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0332
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": -0.0241
                        }
                      ],
                      "others": -0.099,
                      "total": 0.2119
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.669214129447937,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0703
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0486
                      },
                      {
                        "name": "touches",
                        "importance": 0.0401
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0347
                      }
                    ],
                    "decomposition": {
                      "base": 0.6329,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0595
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0468
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0449
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0336
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0155
                        }
                      ],
                      "others": -0.0032,
                      "total": 0.6692
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.05457678809762001,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0802
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0621
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0547
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0537
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0397
                      }
                    ],
                    "decomposition": {
                      "base": 0.0579,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0192
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0105
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0061
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0058
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": -0.0039
                        }
                      ],
                      "others": -0.0084,
                      "total": 0.0546
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.7147830128669739,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0738
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0657
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0615
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0458
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0313
                      }
                    ],
                    "decomposition": {
                      "base": 0.6829,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1439
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0465
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0367
                        },
                        {
                          "name": "duelWon",
                          "contribution": -0.0321
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0237
                        }
                      ],
                      "others": 0.027,
                      "total": 0.7148
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.744695663452148,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "speed_threat",
                        "importance": 0.0598
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0489
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0439
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0404
                      }
                    ],
                    "decomposition": {
                      "base": 6.7136,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0631
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0532
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0381
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0358
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.031
                        }
                      ],
                      "others": 0.0197,
                      "total": 6.7447
                    }
                  }
                ],
                "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.0010, quality 0.503)",
              "stats": {
                "expected_goals": 0.1925,
                "goal_rate": 0.2121,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0546,
                "key_pass": 1,
                "rating": 6.7517,
                "minutes": 51,
                "total_pass": 13,
                "accurate_pass": 11,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 9,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 23,
                "possession_lost": 7.3377,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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": 10,
                "total_progression": 60,
                "progressive_carries": 2
              },
              "params": {
                "market_value_eur": 8400000,
                "quality_factor": 0.5035,
                "boost_factor": 1.001
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0271)",
              "stats": {
                "expected_goals": 0.1925,
                "goal_rate": 0.2064,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0546,
                "key_pass": 1,
                "rating": 6.7517,
                "minutes": 51,
                "total_pass": 13,
                "accurate_pass": 11,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 9,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 23,
                "possession_lost": 7.3377,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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": 10,
                "total_progression": 60,
                "progressive_carries": 2,
                "total_shots": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 24.4,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "blend_weight": 0.0271,
                "history_matches": 3,
                "prior_reliability": 0.0667,
                "competition": "La Liga",
                "squad": "Celta Vigo"
              },
              "changes": [
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0542
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0271
                },
                {
                  "stat": "totalOffside",
                  "before": 0.0,
                  "after": 0.0271
                },
                {
                  "stat": "totalCross",
                  "before": 2.0021,
                  "after": 2.0291
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.6699,
                  "after": 0.6794
                },
                {
                  "stat": "goals",
                  "before": 0.2121,
                  "after": 0.2064
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.1925,
                "goal_rate": 0.2064,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0546,
                "key_pass": 1,
                "rating": 6.7517,
                "minutes": 51,
                "total_pass": 13,
                "accurate_pass": 11,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 9,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 23,
                "possession_lost": 7.3377,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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": 10,
                "total_progression": 60,
                "progressive_carries": 2,
                "total_shots": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 24.4,
                "pointsPerMatch": 0.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": {
                "expected_goals": 0.1269,
                "goal_rate": 0.2064,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0546,
                "key_pass": 1,
                "rating": 6.7517,
                "minutes": 51,
                "total_pass": 13,
                "accurate_pass": 11,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 9,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 23,
                "possession_lost": 7.3377,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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": 10,
                "total_progression": 60,
                "progressive_carries": 2,
                "total_shots": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 24.4,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.19,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Jeanuël Belocian, Jorge Salinas",
                "opponent_faced": "Jeanuël Belocian, Jorge Salinas",
                "antagonist_source": "attacking_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Jeanuël Belocian, Jorge Salinas",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                  "duel_win_rate": 0.19,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v2",
                  "xg_override": 0.1269
                }
              },
              "changes": [
                {
                  "stat": "expectedGoals",
                  "before": 0.1925,
                  "after": 0.1269
                },
                {
                  "stat": "totalShots",
                  "before": 2.05,
                  "after": 2.1
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.6582, xG scale 1.5497)",
              "stats": {
                "expected_goals": 0.1967,
                "goal_rate": 0.2064,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0546,
                "key_pass": 1,
                "rating": 6.7517,
                "minutes": 51,
                "total_pass": 13,
                "accurate_pass": 11,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 9,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 23,
                "possession_lost": 7.3377,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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": 10,
                "total_progression": 60,
                "progressive_carries": 2,
                "total_shots": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 24.4,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.19,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Jeanuël Belocian, Jorge Salinas",
                "opponent_faced": "Jeanuël Belocian, Jorge Salinas",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.02,
                "squad_xg_sum": 0.6582,
                "xg_scale": 1.5497,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.1269,
                  "after": 0.1967
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 8, fifa_overall 72.0)",
              "stats": {
                "expected_goals": 0.1967,
                "goal_rate": 0.2064,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0546,
                "key_pass": 1,
                "rating": 6.7517,
                "minutes": 51,
                "total_pass": 13,
                "accurate_pass": 11,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 9,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 23,
                "possession_lost": 7.3377,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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": 10,
                "total_progression": 60,
                "progressive_carries": 2,
                "total_shots": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 24.4,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.19,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Jeanuël Belocian, Jorge Salinas",
                "opponent_faced": "Jeanuël Belocian, Jorge Salinas",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 72.0
              },
              "params": {
                "match_squad_rank": 8,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 4507,
                "fifa_rank": 4264.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 72.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "expected_goals": 0.1967,
                "goal_rate": 0.2064,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0546,
                "key_pass": 1,
                "rating": 6.7517,
                "minutes": 51,
                "total_pass": 13,
                "accurate_pass": 11,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 9,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 23,
                "possession_lost": 7.3377,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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": 10,
                "total_progression": 60,
                "progressive_carries": 2,
                "total_shots": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 24.4,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.19,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Jeanuël Belocian, Jorge Salinas",
                "opponent_faced": "Jeanuël Belocian, Jorge Salinas",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.2964,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 72.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.2964,
                "scorer_weight": 2.7619,
                "squad_weight_total": 9.3177,
                "weight_share": 0.2964,
                "position_multiplier": 1.45
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "expected_goals": 0.1967,
                "goal_rate": 0.2064,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0546,
                "key_pass": 1,
                "rating": 6.7517,
                "minutes": 51,
                "total_pass": 13,
                "accurate_pass": 11,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 9,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 23,
                "possession_lost": 7.3377,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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": 10,
                "total_progression": 60,
                "progressive_carries": 2,
                "total_shots": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 24.4,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.19,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Jeanuël Belocian, Jorge Salinas",
                "opponent_faced": "Jeanuël Belocian, Jorge Salinas",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.2964,
                "projected_assists": 0,
                "assist_probability": 0.0793,
                "fifa_overall": 72.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0793,
                "provider_weight": 0.6877,
                "squad_weight_total": 8.6707,
                "weight_share": 0.0793,
                "position_multiplier": 0.85
              }
            }
          ]
        }
      },
      "bench_players": {
        "Altay Bayındır": {
          "player_id": 815890,
          "position": "G",
          "position_depth": "G_BENCH",
          "is_starter": false,
          "shirt_number": 1,
          "height": 198,
          "market_value": 4900000,
          "stats": {
            "saves": 0,
            "goals_prevented": 0.0234,
            "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.015,
            "aerial_won": 0,
            "sweeper_actions": 0,
            "sweeper_accurate": 0,
            "saves_inside_box": 0,
            "possession_lost": 0.1196,
            "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.113,
            "bench_expected_minutes": 4.49,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.541,
            "projected_substitution_game_state_adjustment": 0,
            "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": 75.0
          },
          "latest_10_games": [],
          "ranking": {
            "global_player_rank": 3182,
            "combined_rank_score": 1148.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 91.0,
            "sofascore_rating": 7.5,
            "sofascore_appearances": 1.0,
            "fifa_rank": 2205.0,
            "fifa_overall": 75.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 13,
            "squad_role": "substitute",
            "projected_match_rating": 6.8,
            "source_file": "data/player_rankings.csv",
            "player_name": "Altay Bayındır",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Jordan Teze",
                  "ranking": 3177
                },
                {
                  "player_name": "Charlie Cresswell",
                  "ranking": 3178
                },
                {
                  "player_name": "Jaydee Canvot",
                  "ranking": 3179
                },
                {
                  "player_name": "Julio César Enciso",
                  "ranking": 3180
                },
                {
                  "player_name": "Franco Mastantuono",
                  "ranking": 3181
                }
              ],
              "lower": [
                {
                  "player_name": "Daniel Bragança",
                  "ranking": 3183
                },
                {
                  "player_name": "Hákon Arnar Haraldsson",
                  "ranking": 3184
                },
                {
                  "player_name": "Brajan Gruda",
                  "ranking": 3185
                },
                {
                  "player_name": "Guillaume Restes",
                  "ranking": 3186
                },
                {
                  "player_name": "Johan Mojica",
                  "ranking": 3187
                }
              ]
            }
          },
          "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.485343983285876,
            "bench_appearance_prob": 0.11297018105844892,
            "market_value_adjustment": 0.4609,
            "fbref_prior_metrics": {
              "squad": "Celta Vigo",
              "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 (€4,900,000) scaled to 4.5 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.46)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.47,
                "rating": 6.8,
                "minutes": 90,
                "total_pass": 27,
                "accurate_pass": 20,
                "total_long_balls": 9,
                "accurate_long_balls": 4,
                "touches": 32,
                "clearances": 1,
                "ball_recovery": 1,
                "high_claims": 1,
                "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": 22,
                "accurate_own_half_passes": 17
              },
              "params": {
                "market_value_eur": 4900000,
                "quality_factor": 0.4609
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0000)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.47,
                "rating": 6.8,
                "minutes": 90,
                "total_pass": 27,
                "accurate_pass": 20,
                "total_long_balls": 9,
                "accurate_long_balls": 4,
                "touches": 32,
                "clearances": 1,
                "ball_recovery": 1,
                "high_claims": 1,
                "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": 22,
                "accurate_own_half_passes": 17
              },
              "params": {
                "blend_weight": 0.0,
                "history_matches": 0,
                "prior_reliability": 0.0,
                "competition": "La Liga",
                "squad": "Celta Vigo"
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 4.5 expected minutes (appearance prob 0.11)",
              "stats": {
                "saves": 0,
                "goals_prevented": 0.0234,
                "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.015,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 0.1196,
                "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.113,
                "bench_expected_minutes": 4.49
              },
              "params": {
                "expected_minutes": 4.49,
                "appearance_probability": 0.113
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "saves": 0,
                "goals_prevented": 0.0234,
                "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.015,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 0.1196,
                "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.113,
                "bench_expected_minutes": 4.49
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 13, fifa_overall 75.0)",
              "stats": {
                "saves": 0,
                "goals_prevented": 0.0234,
                "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.015,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 0.1196,
                "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.113,
                "bench_expected_minutes": 4.49,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.541,
                "projected_substitution_game_state_adjustment": 0,
                "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": 75.0
              },
              "params": {
                "match_squad_rank": 13,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3182,
                "fifa_rank": 2205.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 75.0
              }
            }
          ]
        },
        "Carl Starfelt": {
          "player_id": 360718,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 2,
          "height": 185,
          "market_value": 4099999,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 0,
            "aerial_won": 0,
            "rating": 6.6523,
            "minutes": 28,
            "total_pass": 20,
            "accurate_pass": 19,
            "duels_won": 2,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 13,
            "accurate_own_half_passes": 13,
            "total_opp_half_passes": 6,
            "accurate_opp_half_passes": 6,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 23,
            "possession_lost": 0.0,
            "dispossessed": 0.0,
            "duels_lost": 1,
            "aerial_lost": 3,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 1,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_goals": 0.0302,
            "expected_assists": 0.003,
            "total_shots": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 7,
            "total_progression": 51,
            "progressive_carries": 0,
            "key_pass": 0,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 0.0,
            "shotConversion": 0.0,
            "minutesPct": 35.8,
            "pointsPerMatch": 0.0,
            "netGoalDifferencePer90": 0.0,
            "bench_appearance_probability": 0.411,
            "bench_expected_minutes": 27.58,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.541,
            "projected_substitution_game_state_adjustment": 0,
            "substitution_usage": "available_bench_not_projected_used",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 78.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16416347.0,
              "match_date": "2026-09-13 12: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": "Celta",
              "away_team": "Málaga",
              "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": "Celta",
              "opponent": "Málaga",
              "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": "away",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Getafe",
              "stats": {
                "minutes": 90,
                "rating": 8.4,
                "goal_rate": 1.0,
                "goals": 1,
                "assists": 0,
                "expected_goals": 0.1377,
                "expected_assists": 0.0331,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 92,
                "accurate_pass": 87,
                "key_pass": 1,
                "tackles": 3,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 1,
                "aerial_won": 1,
                "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": 16416308.0,
              "match_date": "2026-08-30",
              "home_team": "Celta Vigo",
              "away_team": "Athletic Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assists": 0,
                "expected_goals": 0.1303,
                "expected_assists": 0.0017,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 82,
                "accurate_pass": 81,
                "tackles": 4,
                "tackles_won": 2,
                "interceptions": 2,
                "clearances": 5,
                "aerial_won": 1,
                "duels_won": 5,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16815992.0,
              "match_date": "2026-08-27",
              "home_team": "Celta Vigo",
              "away_team": "Osasuna",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Celta Vigo",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 38,
                "rating": 6.2,
                "assists": 0,
                "expected_goals": 0.0369,
                "expected_assists": 0.0092,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 20,
                "accurate_pass": 20,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 3,
                "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"
            }
          ],
          "ranking": {
            "global_player_rank": 2391,
            "combined_rank_score": 865.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 501.0,
            "sofascore_rating": 6.8579,
            "sofascore_appearances": 19.0,
            "fifa_rank": 1230.0,
            "fifa_overall": 78.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 17,
            "squad_role": "substitute",
            "projected_match_rating": 6.6523,
            "source_file": "data/player_rankings.csv",
            "player_name": "Carl Starfelt",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Fredrik André Bjørkan",
                  "ranking": 2386
                },
                {
                  "player_name": "Carlos Escobar",
                  "ranking": 2387
                },
                {
                  "player_name": "Daniel Londoño",
                  "ranking": 2388
                },
                {
                  "player_name": "Moisés González",
                  "ranking": 2389
                },
                {
                  "player_name": "António Silva",
                  "ranking": 2390
                }
              ],
              "lower": [
                {
                  "player_name": "Max Kilman",
                  "ranking": 2392
                },
                {
                  "player_name": "Manuel Sánchez",
                  "ranking": 2393
                },
                {
                  "player_name": "Mukhammadkarim Toirov",
                  "ranking": 2394
                },
                {
                  "player_name": "Gabriel Cléúr",
                  "ranking": 2395
                },
                {
                  "player_name": "Carlo Villanueva",
                  "ranking": 2396
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.451,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "D_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "totalOppositionHalfPasses",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "ballRecovery",
              "touches",
              "totalClearance",
              "wonTackle",
              "interceptionWon",
              "dispossessed",
              "challengeLost",
              "errorLeadToAShot",
              "errorLeadToAGoal",
              "possessionLostCtrl",
              "passValueNormalized",
              "defensiveValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.451,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 27.58,
            "bench_appearance_prob": 0.411,
            "market_value_adjustment": 0.9853,
            "fbref_prior_metrics": {
              "squad": "Celta Vigo",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 1.0,
              "sub_appearances": 1.0,
              "minutes_per_sub": 39.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "prior_reliability": 0.0933
            },
            "rationale": "Bench projection scaled from XGBoost D_service (3 historical appearances) to 27.6 expected mins (appearance prob 0.41); FBref playing time empirical prior: 1.0 sub appearances, 39.0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 6 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 1,
                "rating": 6.7514,
                "minutes": 73,
                "total_pass": 65,
                "accurate_pass": 63,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 43,
                "accurate_own_half_passes": 43,
                "total_opp_half_passes": 21,
                "accurate_opp_half_passes": 20,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 77,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 3,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.1,
                "expected_assists": 0.01,
                "total_shots": 1,
                "shots_on_target": 0,
                "shots_off_target": 1,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 23,
                "total_progression": 170,
                "progressive_carries": 1,
                "key_pass": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:44.724055+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 374,
                    "rows": 1289
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Getafe",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3887,
                    "rating": 8.4
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Athletic Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3304,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "Osasuna",
                    "minutes": 38.0,
                    "is_starting": false,
                    "weight": 0.2809,
                    "rating": 6.2
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 0.0,
                  "accuratePass": 66.2002,
                  "touches_p90": 92.0989,
                  "possessionLostCtrl": 2.9932,
                  "totalClearance": 3.1642,
                  "aerialWon": 1.5617
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.8103672862052917,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0944
                      },
                      {
                        "name": "duel_win_rate",
                        "importance": 0.0353
                      },
                      {
                        "name": "duelWon_p90",
                        "importance": 0.0341
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0326
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0322
                      }
                    ],
                    "decomposition": {
                      "base": 0.9108,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1988
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0458
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0254
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0261
                        },
                        {
                          "name": "aerialWon",
                          "contribution": 0.0177
                        }
                      ],
                      "others": -0.0166,
                      "total": 0.8104
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.245047688484192,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0588
                      },
                      {
                        "name": "duelLost",
                        "importance": 0.0461
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0446
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0406
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0401
                      }
                    ],
                    "decomposition": {
                      "base": 1.3553,
                      "items": [
                        {
                          "name": "defensive_actions",
                          "contribution": 0.1342
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0686
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0626
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0557
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0513
                        }
                      ],
                      "others": -0.1089,
                      "total": 1.245
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.586603581905365,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0565
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0432
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0353
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0347
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0329
                      }
                    ],
                    "decomposition": {
                      "base": 0.8675,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.139
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0565
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0409
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": 0.0316
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0291
                        }
                      ],
                      "others": -0.1052,
                      "total": 0.5866
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 1.4989267587661743,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0506
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0425
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0417
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 3.4032,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -1.9589
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": -0.1063
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.1015
                        },
                        {
                          "name": "totalProgression",
                          "contribution": 0.1056
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": 0.0462
                        }
                      ],
                      "others": -0.0924,
                      "total": 1.4989
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.9603931903839111,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0798
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0597
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0439
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0426
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0411
                      }
                    ],
                    "decomposition": {
                      "base": 1.2421,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.3183
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0369
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.0314
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0247
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0203
                        }
                      ],
                      "others": 0.0465,
                      "total": 0.9604
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.751392364501953,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches_p90",
                        "importance": 0.0708
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0705
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0537
                      },
                      {
                        "name": "pass_accuracy",
                        "importance": 0.0518
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 6.6627,
                      "items": [
                        {
                          "name": "totalProgression",
                          "contribution": 0.0886
                        },
                        {
                          "name": "aerial_dominance",
                          "contribution": -0.0572
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0514
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0318
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0301
                        }
                      ],
                      "others": 0.0468,
                      "total": 6.7514
                    }
                  }
                ],
                "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": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 1,
                "rating": 6.6523,
                "minutes": 72,
                "total_pass": 64,
                "accurate_pass": 62,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 43,
                "accurate_own_half_passes": 42,
                "total_opp_half_passes": 21,
                "accurate_opp_half_passes": 19,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 76,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 3,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0985,
                "expected_assists": 0.0099,
                "total_shots": 1,
                "shots_on_target": 0,
                "shots_off_target": 1,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 23,
                "total_progression": 167,
                "progressive_carries": 1,
                "key_pass": 0
              },
              "params": {
                "market_value_eur": 4099999,
                "quality_factor": 0.4511,
                "boost_factor": 0.9853
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0379)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 1,
                "rating": 6.6523,
                "minutes": 72,
                "total_pass": 64,
                "accurate_pass": 62,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 43,
                "accurate_own_half_passes": 42,
                "total_opp_half_passes": 21,
                "accurate_opp_half_passes": 19,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 76,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 3,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0985,
                "expected_assists": 0.0099,
                "total_shots": 1,
                "shots_on_target": 0,
                "shots_off_target": 1,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 23,
                "total_progression": 167,
                "progressive_carries": 1,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 35.8,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": -2.79
              },
              "params": {
                "blend_weight": 0.0379,
                "history_matches": 3,
                "prior_reliability": 0.0933,
                "competition": "La Liga",
                "squad": "Celta Vigo"
              },
              "changes": [
                {
                  "stat": "wonTackle",
                  "before": 0.578,
                  "after": 0.6373
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0271
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0271
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.7985,
                  "after": 0.8224
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 27.6 expected minutes (appearance prob 0.41)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "rating": 6.6523,
                "minutes": 28,
                "total_pass": 20,
                "accurate_pass": 19,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 13,
                "accurate_own_half_passes": 13,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 23,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_lost": 3,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0302,
                "expected_assists": 0.003,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 7,
                "total_progression": 51,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 35.8,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.411,
                "bench_expected_minutes": 27.58
              },
              "params": {
                "expected_minutes": 27.58,
                "appearance_probability": 0.411
              }
            },
            {
              "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,
                "rating": 6.6523,
                "minutes": 28,
                "total_pass": 20,
                "accurate_pass": 19,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 13,
                "accurate_own_half_passes": 13,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 23,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_lost": 3,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0302,
                "expected_assists": 0.003,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 7,
                "total_progression": 51,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 35.8,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.411,
                "bench_expected_minutes": 27.58
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 17, fifa_overall 78.0)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "rating": 6.6523,
                "minutes": 28,
                "total_pass": 20,
                "accurate_pass": 19,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 13,
                "accurate_own_half_passes": 13,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 23,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_lost": 3,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0302,
                "expected_assists": 0.003,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 7,
                "total_progression": 51,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 35.8,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.411,
                "bench_expected_minutes": 27.58,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.541,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "available_bench_not_projected_used",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 78.0
              },
              "params": {
                "match_squad_rank": 17,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 2391,
                "fifa_rank": 1230.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 78.0
              }
            }
          ]
        },
        "Álvaro Núñez": {
          "player_id": 1012410,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 15,
          "height": 174,
          "market_value": 3900000,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 0,
            "aerial_won": 0,
            "rating": 6.4173,
            "minutes": 14,
            "total_pass": 11,
            "accurate_pass": 10,
            "duels_won": 0,
            "total_long_balls": 1,
            "accurate_long_balls": 1,
            "total_own_half_passes": 5,
            "accurate_own_half_passes": 5,
            "total_opp_half_passes": 6,
            "accurate_opp_half_passes": 5,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 13,
            "possession_lost": 0.8193,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 1,
            "challenges_lost": 1,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.003,
            "total_shots": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 5,
            "total_progression": 18,
            "progressive_carries": 0,
            "key_pass": 0,
            "offsides": 1,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 100.0,
            "shotConversion": 0.0,
            "minutesPct": 48.1,
            "pointsPerMatch": 0.5,
            "netGoalDifferencePer90": 0.0,
            "bench_appearance_probability": 0.218,
            "bench_expected_minutes": 13.62,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.541,
            "projected_substitution_game_state_adjustment": 0,
            "substitution_usage": "available_bench_not_projected_used",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 76.0
          },
          "latest_10_games": [
            {
              "match_id": 16416340.0,
              "match_date": "2026-09-03",
              "home_team": "Real Sociedad",
              "away_team": "Celta Vigo",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 84,
                "rating": 7.0,
                "assists": 0,
                "expected_goals": 0.0054,
                "expected_assists": 0.022,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 76,
                "accurate_pass": 72,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "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": 16416308.0,
              "match_date": "2026-08-30",
              "home_team": "Celta Vigo",
              "away_team": "Athletic Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assists": 0,
                "expected_assists": 0.0211,
                "total_shots": 0,
                "total_pass": 70,
                "accurate_pass": 67,
                "key_pass": 1,
                "tackles": 2,
                "interceptions": 3,
                "clearances": 2,
                "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": 3210,
            "combined_rank_score": 1161.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 336.0,
            "sofascore_rating": 7.0,
            "sofascore_appearances": 2.0,
            "fifa_rank": 1987.0,
            "fifa_overall": 76.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 18,
            "squad_role": "substitute",
            "projected_match_rating": 6.4173,
            "source_file": "data/player_rankings.csv",
            "player_name": "Álvaro Núñez",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Franck Honorat",
                  "ranking": 3205
                },
                {
                  "player_name": "Djibril Sow",
                  "ranking": 3206
                },
                {
                  "player_name": "Pepelu",
                  "ranking": 3207
                },
                {
                  "player_name": "Dayann Methalie",
                  "ranking": 3208
                },
                {
                  "player_name": "Robin Gosens",
                  "ranking": 3209
                }
              ],
              "lower": [
                {
                  "player_name": "Marvin Schwäbe",
                  "ranking": 3211
                },
                {
                  "player_name": "Moi Gómez",
                  "ranking": 3212
                },
                {
                  "player_name": "Benjamin Henrichs",
                  "ranking": 3213
                },
                {
                  "player_name": "Harvey Elliott",
                  "ranking": 3214
                },
                {
                  "player_name": "Azor Matusiwa",
                  "ranking": 3215
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.394,
          "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",
              "rating"
            ],
            "history_matches": 2,
            "data_confidence": 0.394,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 13.61644058998921,
            "bench_appearance_prob": 0.218,
            "market_value_adjustment": 0.9846,
            "fbref_prior_metrics": {
              "squad": "Celta Vigo",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 2.0,
              "sub_appearances": 0.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "prior_reliability": 0.1267
            },
            "rationale": "Bench projection scaled from XGBoost D_service (2 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 6 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "rating": 6.5178,
                "minutes": 87,
                "total_pass": 73,
                "accurate_pass": 70,
                "duels_won": 2,
                "total_long_balls": 6,
                "accurate_long_balls": 4,
                "total_own_half_passes": 34,
                "accurate_own_half_passes": 33,
                "total_opp_half_passes": 39,
                "accurate_opp_half_passes": 36,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 84,
                "possession_lost": 5.5,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 1,
                "fouls": 1,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.02,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 35,
                "total_progression": 124,
                "progressive_carries": 0,
                "key_pass": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:44.724055+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 374,
                    "rows": 1289
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-03",
                    "opponent": "Real Sociedad",
                    "minutes": 84.0,
                    "is_starting": true,
                    "weight": 0.5405,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Athletic Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.4595,
                    "rating": 7.0
                  }
                ],
                "feature_row": {
                  "history_matches": 2.0,
                  "is_starting_11": 0.0,
                  "accuratePass": 69.7027,
                  "touches_p90": 87.1236,
                  "possessionLostCtrl": 5.4595,
                  "totalClearance": 2.0,
                  "aerialWon": 0.0
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.644798755645752,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0944
                      },
                      {
                        "name": "duel_win_rate",
                        "importance": 0.0353
                      },
                      {
                        "name": "duelWon_p90",
                        "importance": 0.0341
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0326
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0322
                      }
                    ],
                    "decomposition": {
                      "base": 0.9108,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2198
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0168
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": -0.0138
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0105
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0095
                        }
                      ],
                      "others": -0.0356,
                      "total": 0.6448
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.1574733257293701,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0588
                      },
                      {
                        "name": "duelLost",
                        "importance": 0.0461
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0446
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0406
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0401
                      }
                    ],
                    "decomposition": {
                      "base": 1.3553,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0641
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0443
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": -0.0325
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": 0.0318
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0297
                        }
                      ],
                      "others": -0.059,
                      "total": 1.1575
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.6144927144050598,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0565
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0432
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0353
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0347
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0329
                      }
                    ],
                    "decomposition": {
                      "base": 0.8675,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1427
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0747
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": 0.0635
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0464
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0299
                        }
                      ],
                      "others": -0.1754,
                      "total": 0.6145
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 1.6958301067352295,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0506
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0425
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0417
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 3.4032,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -1.4982
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.2084
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.1846
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.1331
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": 0.0783
                        }
                      ],
                      "others": -0.1306,
                      "total": 1.6958
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.9313480257987976,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0798
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0597
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0439
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0426
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0411
                      }
                    ],
                    "decomposition": {
                      "base": 1.2421,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2994
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0749
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.0363
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.032
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0285
                        }
                      ],
                      "others": 0.0237,
                      "total": 0.9313
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.517777919769287,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches_p90",
                        "importance": 0.0708
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0705
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0537
                      },
                      {
                        "name": "pass_accuracy",
                        "importance": 0.0518
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 6.6627,
                      "items": [
                        {
                          "name": "aerial_dominance",
                          "contribution": -0.0889
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0773
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0575
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0464
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0296
                        }
                      ],
                      "others": 0.0028,
                      "total": 6.5178
                    }
                  }
                ],
                "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.9846, quality 0.449)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "rating": 6.4173,
                "minutes": 86,
                "total_pass": 72,
                "accurate_pass": 68,
                "duels_won": 2,
                "total_long_balls": 6,
                "accurate_long_balls": 4,
                "total_own_half_passes": 33,
                "accurate_own_half_passes": 32,
                "total_opp_half_passes": 38,
                "accurate_opp_half_passes": 36,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 83,
                "possession_lost": 5.4152,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 1,
                "fouls": 1,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0197,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 34,
                "total_progression": 122,
                "progressive_carries": 0,
                "key_pass": 0
              },
              "params": {
                "market_value_eur": 3900000,
                "quality_factor": 0.4486,
                "boost_factor": 0.9846
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0588)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "rating": 6.4173,
                "minutes": 86,
                "total_pass": 72,
                "accurate_pass": 68,
                "duels_won": 2,
                "total_long_balls": 6,
                "accurate_long_balls": 4,
                "total_own_half_passes": 33,
                "accurate_own_half_passes": 32,
                "total_opp_half_passes": 38,
                "accurate_opp_half_passes": 36,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 83,
                "possession_lost": 5.4152,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 1,
                "fouls": 1,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0197,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 34,
                "total_progression": 122,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 48.1,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": -1.04
              },
              "params": {
                "blend_weight": 0.0588,
                "history_matches": 2,
                "prior_reliability": 0.1267,
                "competition": "La Liga",
                "squad": "Celta Vigo"
              },
              "changes": [
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.0619
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.6349,
                  "after": 0.6904
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.031
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.0,
                  "after": 0.0306
                }
              ]
            },
            {
              "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,
                "rating": 6.4173,
                "minutes": 14,
                "total_pass": 11,
                "accurate_pass": 10,
                "duels_won": 0,
                "total_long_balls": 1,
                "accurate_long_balls": 1,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 5,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 0.8193,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.003,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 18,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 48.1,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.218,
                "bench_expected_minutes": 13.62
              },
              "params": {
                "expected_minutes": 13.62,
                "appearance_probability": 0.218
              }
            },
            {
              "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,
                "rating": 6.4173,
                "minutes": 14,
                "total_pass": 11,
                "accurate_pass": 10,
                "duels_won": 0,
                "total_long_balls": 1,
                "accurate_long_balls": 1,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 5,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 0.8193,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.003,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 18,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 48.1,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.218,
                "bench_expected_minutes": 13.62
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 18, fifa_overall 76.0)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "rating": 6.4173,
                "minutes": 14,
                "total_pass": 11,
                "accurate_pass": 10,
                "duels_won": 0,
                "total_long_balls": 1,
                "accurate_long_balls": 1,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 5,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 0.8193,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.003,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 18,
                "progressive_carries": 0,
                "key_pass": 0,
                "offsides": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 48.1,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.218,
                "bench_expected_minutes": 13.62,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.541,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "available_bench_not_projected_used",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 76.0
              },
              "params": {
                "match_squad_rank": 18,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3210,
                "fifa_rank": 1987.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 76.0
              }
            }
          ]
        },
        "Javier Rueda": {
          "player_id": 1008259,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 17,
          "height": 176,
          "market_value": 6200000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0136,
            "assists": 0,
            "expected_goals": 0.0119,
            "rating": 6.7349,
            "minutes": 22,
            "total_pass": 5,
            "accurate_pass": 4,
            "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": 3,
            "accurate_opp_half_passes": 2,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 8,
            "possession_lost": 2.0022,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_won": 0,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 0,
            "total_progression": 0,
            "progressive_carries": 0,
            "bench_appearance_probability": 0.506,
            "bench_expected_minutes": 22.13,
            "projected_substitution_order": 3,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.541,
            "projected_substitution_game_state_adjustment": 0,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 81.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16416347.0,
              "match_date": "2026-09-13 12: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": "Celta",
              "away_team": "Málaga",
              "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": "Celta",
              "opponent": "Málaga",
              "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": "away",
              "is_starting_11": 0,
              "team": "Celta Vigo",
              "opponent": "Getafe",
              "stats": {
                "minutes": 26,
                "rating": 7.0,
                "assists": 0,
                "expected_assists": 0.2814,
                "total_shots": 0,
                "total_pass": 9,
                "accurate_pass": 8,
                "key_pass": 2,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 1,
                "aerial_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": 16416340.0,
              "match_date": "2026-09-03",
              "home_team": "Real Sociedad",
              "away_team": "Celta Vigo",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 84,
                "rating": 6.2,
                "assists": 0,
                "expected_goals": 0.0436,
                "expected_assists": 0.0261,
                "total_shots": 1,
                "total_pass": 34,
                "accurate_pass": 28,
                "tackles": 2,
                "tackles_won": 2,
                "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": 16416308.0,
              "match_date": "2026-08-30",
              "home_team": "Celta Vigo",
              "away_team": "Athletic Club",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Celta Vigo",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 45,
                "rating": 7.1,
                "assists": 0,
                "expected_goals": 0.0055,
                "expected_assists": 0.0272,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 33,
                "accurate_pass": 27,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 1,
                "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": 16815992.0,
              "match_date": "2026-08-27",
              "home_team": "Celta Vigo",
              "away_team": "Osasuna",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 65,
                "rating": 6.7,
                "assists": 0,
                "expected_assists": 0.011,
                "total_shots": 0,
                "total_pass": 18,
                "accurate_pass": 17,
                "interceptions": 2,
                "clearances": 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": 16416298.0,
              "match_date": "2026-08-22",
              "home_team": "Valencia",
              "away_team": "Celta Vigo",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Celta Vigo",
              "opponent": "Valencia",
              "stats": {
                "minutes": 27,
                "rating": 6.3,
                "assists": 0,
                "expected_assists": 0.0019,
                "total_shots": 0,
                "total_pass": 8,
                "accurate_pass": 4,
                "interceptions": 1,
                "clearances": 2,
                "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": 1329,
            "combined_rank_score": 577.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 578.0,
            "sofascore_rating": 6.8,
            "sofascore_appearances": 26.0,
            "fifa_rank": 577.0,
            "fifa_overall": 81.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 11,
            "squad_role": "substitute",
            "projected_match_rating": 6.7349,
            "source_file": "data/player_rankings.csv",
            "player_name": "Javier Rueda",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Jean-Philippe Mateta",
                  "ranking": 1324
                },
                {
                  "player_name": "Brahim",
                  "ranking": 1325
                },
                {
                  "player_name": "Diego Llorente",
                  "ranking": 1326
                },
                {
                  "player_name": "Brandon Mechele",
                  "ranking": 1327
                },
                {
                  "player_name": "De Frutos",
                  "ranking": 1328
                }
              ],
              "lower": [
                {
                  "player_name": "Ji-yong Jeong",
                  "ranking": 1330
                },
                {
                  "player_name": "Jae-jun You",
                  "ranking": 1331
                },
                {
                  "player_name": "Mukhammadali Reimov",
                  "ranking": 1332
                },
                {
                  "player_name": "Jakhongir Abdusalomov",
                  "ranking": 1333
                },
                {
                  "player_name": "Asad Sobirzhonov",
                  "ranking": 1334
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.562,
          "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",
              "rating"
            ],
            "history_matches": 5,
            "data_confidence": 0.562,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 22.128465634082904,
            "bench_appearance_prob": 0.5058393470037683,
            "market_value_adjustment": 0.9931,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost M_service (5 historical appearances) to 22.1 expected mins (appearance prob 0.51)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 5 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0557,
                "assists": 0,
                "expected_goals": 0.0316,
                "rating": 6.7819,
                "minutes": 49,
                "total_pass": 20,
                "accurate_pass": 17,
                "duels_won": 3,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 8,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 10,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 35,
                "possession_lost": 8.2,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:48.236605+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Getafe",
                    "minutes": 26.0,
                    "is_starting": false,
                    "weight": 0.2696,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-09-03",
                    "opponent": "Real Sociedad",
                    "minutes": 84.0,
                    "is_starting": true,
                    "weight": 0.2292,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Athletic Club",
                    "minutes": 45.0,
                    "is_starting": false,
                    "weight": 0.1948,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "Osasuna",
                    "minutes": 65.0,
                    "is_starting": true,
                    "weight": 0.1656,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Valencia",
                    "minutes": 27.0,
                    "is_starting": false,
                    "weight": 0.1408,
                    "rating": 6.3
                  }
                ],
                "feature_row": {
                  "history_matches": 5.0,
                  "is_starting_11": 0.0,
                  "ballRecovery_p90": 3.954,
                  "ballRecovery": 2.3723,
                  "intensity_index": 4.8985,
                  "expectedAssists": 0.0893,
                  "kilometersCovered": 3.4801
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.7025556564331055,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1586
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0481
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0428
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0362
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.022
                        }
                      ],
                      "others": -0.0312,
                      "total": 0.7026
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.05567537993192673,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0145
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.0108
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0091
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0075
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": -0.0045
                        }
                      ],
                      "others": -0.0124,
                      "total": 0.0557
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.09804052859544754,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0058
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0051
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.0048
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0035
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.0035
                        }
                      ],
                      "others": 0.0015,
                      "total": 0.098
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.031592532992362976,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0267
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0195
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0078
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0063
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0048
                        }
                      ],
                      "others": -0.012,
                      "total": 0.0316
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.781923770904541,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0662
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0246
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0231
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0169
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": 0.0157
                        }
                      ],
                      "others": -0.0178,
                      "total": 6.7819
                    }
                  }
                ],
                "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.9931, quality 0.477)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0553,
                "assists": 0,
                "expected_goals": 0.0314,
                "rating": 6.7349,
                "minutes": 49,
                "total_pass": 20,
                "accurate_pass": 17,
                "duels_won": 3,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 8,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 10,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 35,
                "possession_lost": 8.1431,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0
              },
              "params": {
                "market_value_eur": 6200000,
                "quality_factor": 0.4769,
                "boost_factor": 0.9931
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 22.1 expected minutes (appearance prob 0.51)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0136,
                "assists": 0,
                "expected_goals": 0.0077,
                "rating": 6.7349,
                "minutes": 22,
                "total_pass": 5,
                "accurate_pass": 4,
                "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": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 8,
                "possession_lost": 2.0022,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "bench_appearance_probability": 0.506,
                "bench_expected_minutes": 22.13
              },
              "params": {
                "expected_minutes": 22.13,
                "appearance_probability": 0.506
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0136,
                "assists": 0,
                "expected_goals": 0.0077,
                "rating": 6.7349,
                "minutes": 22,
                "total_pass": 5,
                "accurate_pass": 4,
                "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": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 8,
                "possession_lost": 2.0022,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "bench_appearance_probability": 0.506,
                "bench_expected_minutes": 22.13
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.6582, xG scale 1.5497)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0136,
                "assists": 0,
                "expected_goals": 0.0119,
                "rating": 6.7349,
                "minutes": 22,
                "total_pass": 5,
                "accurate_pass": 4,
                "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": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 8,
                "possession_lost": 2.0022,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "bench_appearance_probability": 0.506,
                "bench_expected_minutes": 22.13,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.541,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.02,
                "squad_xg_sum": 0.6582,
                "xg_scale": 1.5497,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 11, fifa_overall 81.0)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0136,
                "assists": 0,
                "expected_goals": 0.0119,
                "rating": 6.7349,
                "minutes": 22,
                "total_pass": 5,
                "accurate_pass": 4,
                "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": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 8,
                "possession_lost": 2.0022,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "bench_appearance_probability": 0.506,
                "bench_expected_minutes": 22.13,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.541,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 81.0
              },
              "params": {
                "match_squad_rank": 11,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 1329,
                "fifa_rank": 577.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 81.0
              }
            }
          ]
        },
        "Aleix Febas": {
          "player_id": 286167,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 14,
          "height": 168,
          "market_value": 5200000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0162,
            "assists": 0,
            "expected_goals": 0.0099,
            "rating": 6.6894,
            "minutes": 22,
            "total_pass": 13,
            "accurate_pass": 12,
            "duels_won": 2,
            "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": 8,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 16,
            "possession_lost": 1.5777,
            "dispossessed": 0.0,
            "duels_lost": 1,
            "aerial_won": 0,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 1,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 1,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 4,
            "total_progression": 14,
            "progressive_carries": 0,
            "total_shots": 0,
            "offsides": 1,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 100.0,
            "shotConversion": 0.0,
            "minutesPct": 46.1,
            "pointsPerMatch": 0.5,
            "netGoalDifferencePer90": 0.0,
            "bench_appearance_probability": 0.309,
            "bench_expected_minutes": 22.08,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.541,
            "projected_substitution_game_state_adjustment": 0,
            "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": 16416308.0,
              "match_date": "2026-08-30",
              "home_team": "Celta Vigo",
              "away_team": "Athletic Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 90,
                "rating": 6.1,
                "assists": 0,
                "expected_assists": 0.0119,
                "total_shots": 0,
                "total_pass": 44,
                "accurate_pass": 39,
                "tackles": 4,
                "tackles_won": 1,
                "duels_won": 7,
                "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": 16416298.0,
              "match_date": "2026-08-22",
              "home_team": "Valencia",
              "away_team": "Celta Vigo",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Valencia",
              "stats": {
                "minutes": 77,
                "rating": 6.8,
                "assists": 0,
                "expected_goals": 0.0203,
                "expected_assists": 0.048,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 64,
                "accurate_pass": 61,
                "tackles": 2,
                "tackles_won": 1,
                "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"
            }
          ],
          "ranking": {
            "global_player_rank": 1425,
            "combined_rank_score": 591.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 223.0,
            "sofascore_rating": 7.1583,
            "sofascore_appearances": 36.0,
            "fifa_rank": 959.0,
            "fifa_overall": 79.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 12,
            "squad_role": "substitute",
            "projected_match_rating": 6.6894,
            "source_file": "data/player_rankings.csv",
            "player_name": "Aleix Febas",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Mattéo Guendouzi",
                  "ranking": 1420
                },
                {
                  "player_name": "Maxim De Cuyper",
                  "ranking": 1421
                },
                {
                  "player_name": "Denis Zakaria",
                  "ranking": 1422
                },
                {
                  "player_name": "Oleg Zoteev",
                  "ranking": 1423
                },
                {
                  "player_name": "Samandar Ochilov",
                  "ranking": 1424
                }
              ],
              "lower": [
                {
                  "player_name": "Seong-uh Park",
                  "ranking": 1426
                },
                {
                  "player_name": "Umarbek Eshmuradov",
                  "ranking": 1427
                },
                {
                  "player_name": "Thomas Meunier",
                  "ranking": 1428
                },
                {
                  "player_name": "Jacob Murphy",
                  "ranking": 1429
                },
                {
                  "player_name": "Warren Zaïre-Emery",
                  "ranking": 1430
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.393,
          "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",
              "rating"
            ],
            "history_matches": 2,
            "data_confidence": 0.393,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 22.079959715539996,
            "bench_appearance_prob": 0.309,
            "market_value_adjustment": 0.9894,
            "fbref_prior_metrics": {
              "squad": "Celta Vigo",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 2.0,
              "sub_appearances": 0.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "prior_reliability": 0.12
            },
            "rationale": "Bench projection scaled from XGBoost M_service (2 historical appearances) to 22.1 expected mins (appearance prob 0.31); FBref playing time empirical prior: 0.0 sub appearances, 0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 5 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0668,
                "assists": 0,
                "expected_goals": 0.0409,
                "rating": 6.7611,
                "minutes": 84,
                "total_pass": 54,
                "accurate_pass": 50,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 17,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 37,
                "accurate_opp_half_passes": 34,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 64,
                "possession_lost": 6.5,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 1,
                "tackles": 3,
                "clearances": 0,
                "total_contest": 2,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 4,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 59,
                "progressive_carries": 1
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:48.236605+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Athletic Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.5405,
                    "rating": 6.1
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Valencia",
                    "minutes": 77.0,
                    "is_starting": true,
                    "weight": 0.4595,
                    "rating": 6.8
                  }
                ],
                "feature_row": {
                  "history_matches": 2.0,
                  "is_starting_11": 0.0,
                  "ballRecovery_p90": 4.3068,
                  "ballRecovery": 3.9189,
                  "intensity_index": 6.2668,
                  "expectedAssists": 0.0284,
                  "kilometersCovered": 10.7541
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.7728477716445923,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1592
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0507
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0328
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": -0.0154
                        },
                        {
                          "name": "duelWon",
                          "contribution": 0.0145
                        }
                      ],
                      "others": -0.0183,
                      "total": 0.7728
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.06680255383253098,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0161
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0111
                        },
                        {
                          "name": "duelWon",
                          "contribution": 0.0036
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0031
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0027
                        }
                      ],
                      "others": -0.0021,
                      "total": 0.0668
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.07569515705108643,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.007
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0029
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": -0.0027
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0025
                        },
                        {
                          "name": "duelWon",
                          "contribution": 0.0021
                        }
                      ],
                      "others": -0.0069,
                      "total": 0.0757
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.04087365046143532,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0299
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0186
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0094
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0029
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": -0.0028
                        }
                      ],
                      "others": -0.01,
                      "total": 0.0409
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.761094570159912,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0614
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0445
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0115
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0107
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": 0.0086
                        }
                      ],
                      "others": 0.0258,
                      "total": 6.7611
                    }
                  }
                ],
                "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": {
                "key_pass": 1,
                "expected_assists": 0.0661,
                "assists": 0,
                "expected_goals": 0.0404,
                "rating": 6.6894,
                "minutes": 83,
                "total_pass": 53,
                "accurate_pass": 49,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 17,
                "accurate_own_half_passes": 15,
                "total_opp_half_passes": 37,
                "accurate_opp_half_passes": 34,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 64,
                "possession_lost": 6.431,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 1,
                "tackles": 3,
                "clearances": 0,
                "total_contest": 1,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 3,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 58,
                "progressive_carries": 1
              },
              "params": {
                "market_value_eur": 5200000,
                "quality_factor": 0.4646,
                "boost_factor": 0.9894
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0557)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0661,
                "assists": 0,
                "expected_goals": 0.0404,
                "rating": 6.6894,
                "minutes": 83,
                "total_pass": 53,
                "accurate_pass": 49,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 17,
                "accurate_own_half_passes": 15,
                "total_opp_half_passes": 37,
                "accurate_opp_half_passes": 34,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 64,
                "possession_lost": 6.431,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 1,
                "tackles": 3,
                "clearances": 0,
                "total_contest": 1,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 3,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 58,
                "progressive_carries": 1,
                "total_shots": 1,
                "offsides": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 46.1,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": -1.08
              },
              "params": {
                "blend_weight": 0.0557,
                "history_matches": 2,
                "prior_reliability": 0.12,
                "competition": "La Liga",
                "squad": "Celta Vigo"
              },
              "changes": [
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.1548
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.0,
                  "after": 0.031
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.0,
                  "after": 0.0301
                },
                {
                  "stat": "wasFouled",
                  "before": 3.4629,
                  "after": 3.4866
                },
                {
                  "stat": "wonTackle",
                  "before": 0.9894,
                  "after": 0.9962
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 22.1 expected minutes (appearance prob 0.31)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0162,
                "assists": 0,
                "expected_goals": 0.0099,
                "rating": 6.6894,
                "minutes": 22,
                "total_pass": 13,
                "accurate_pass": 12,
                "duels_won": 2,
                "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": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 1.5777,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 14,
                "progressive_carries": 0,
                "total_shots": 0,
                "offsides": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 46.1,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.309,
                "bench_expected_minutes": 22.08
              },
              "params": {
                "expected_minutes": 22.08,
                "appearance_probability": 0.309
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0162,
                "assists": 0,
                "expected_goals": 0.0099,
                "rating": 6.6894,
                "minutes": 22,
                "total_pass": 13,
                "accurate_pass": 12,
                "duels_won": 2,
                "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": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 1.5777,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 14,
                "progressive_carries": 0,
                "total_shots": 0,
                "offsides": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 46.1,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.309,
                "bench_expected_minutes": 22.08
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 12, fifa_overall 79.0)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0162,
                "assists": 0,
                "expected_goals": 0.0099,
                "rating": 6.6894,
                "minutes": 22,
                "total_pass": 13,
                "accurate_pass": 12,
                "duels_won": 2,
                "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": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 1.5777,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 14,
                "progressive_carries": 0,
                "total_shots": 0,
                "offsides": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 46.1,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.309,
                "bench_expected_minutes": 22.08,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.541,
                "projected_substitution_game_state_adjustment": 0,
                "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": 12,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 1425,
                "fifa_rank": 959.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 79.0
              }
            }
          ]
        },
        "Couhaib Driouech": {
          "player_id": 1047395,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 24,
          "height": 175,
          "market_value": 7100000,
          "stats": {
            "expected_goals": 0.0496,
            "goal_rate": 0.0563,
            "goals": 0,
            "shots_on_target": 0,
            "expected_assists": 0.0119,
            "key_pass": 0,
            "rating": 6.7046,
            "minutes": 24,
            "total_pass": 4,
            "accurate_pass": 3,
            "duels_won": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 3,
            "accurate_opp_half_passes": 2,
            "crosses_total": 1,
            "crosses_accurate": 0,
            "touches": 7,
            "possession_lost": 2.4789,
            "dispossessed": 0.0,
            "duels_lost": 1,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 1,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assists": 0,
            "shots_off_target": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 1,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "offsides": 0,
            "ball_carries": 4,
            "total_progression": 24,
            "progressive_carries": 2,
            "total_shots": 0,
            "yellowCards": 5.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "minutesPct": 6.1,
            "pointsPerMatch": 1.0,
            "netGoalDifferencePer90": 0.0,
            "bench_appearance_probability": 0.723,
            "bench_expected_minutes": 23.57,
            "projected_substitution_order": 1,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.541,
            "projected_substitution_game_state_adjustment": 0,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 72.0
          },
          "latest_10_games": [
            {
              "match_id": 16416348.0,
              "match_date": "2026-09-07",
              "home_team": "Getafe",
              "away_team": "Celta Vigo",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Celta Vigo",
              "opponent": "Getafe",
              "stats": {
                "minutes": 26,
                "rating": 6.6,
                "assists": 0,
                "expected_goals": 0.038,
                "expected_assists": 0.1576,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 11,
                "accurate_pass": 8,
                "key_pass": 2,
                "tackles": 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": 16416340.0,
              "match_date": "2026-09-03",
              "home_team": "Real Sociedad",
              "away_team": "Celta Vigo",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Celta Vigo",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 21,
                "rating": 6.7,
                "assists": 0,
                "expected_assists": 0.0137,
                "total_shots": 0,
                "total_pass": 16,
                "accurate_pass": 12,
                "tackles": 3,
                "tackles_won": 3,
                "interceptions": 2,
                "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"
            }
          ],
          "ranking": {
            "global_player_rank": 4293,
            "combined_rank_score": 2308.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 698.0,
            "sofascore_rating": 6.7,
            "sofascore_appearances": 1.0,
            "fifa_rank": 3918.0,
            "fifa_overall": 72.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 10,
            "squad_role": "substitute",
            "projected_match_rating": 6.7046,
            "source_file": "data/player_rankings.csv",
            "player_name": "Couhaib Driouech",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "El Chadaille Bitshiabu",
                  "ranking": 4288
                },
                {
                  "player_name": "Gastón Ávila",
                  "ranking": 4289
                },
                {
                  "player_name": "Jens Castrop",
                  "ranking": 4290
                },
                {
                  "player_name": "Arijon Ibrahimović",
                  "ranking": 4291
                },
                {
                  "player_name": "Robin Fellhauer",
                  "ranking": 4292
                }
              ],
              "lower": [
                {
                  "player_name": "Nicolai Remberg",
                  "ranking": 4294
                },
                {
                  "player_name": "Dani Calvo",
                  "ranking": 4295
                },
                {
                  "player_name": "Ethan Galbraith",
                  "ranking": 4296
                },
                {
                  "player_name": "Conrad Harder",
                  "ranking": 4297
                },
                {
                  "player_name": "Andrej Ilić",
                  "ranking": 4298
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.377,
          "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",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 2,
            "data_confidence": 0.377,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 23.57,
            "bench_appearance_prob": 0.723,
            "market_value_adjustment": 0.9963,
            "fbref_prior_metrics": {
              "squad": "Celta Vigo",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 1.0,
              "starts": 0.0,
              "sub_appearances": 1.0,
              "minutes_per_sub": 22.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "prior_reliability": 0.0133
            },
            "rationale": "Bench projection scaled from XGBoost F_service (2 historical appearances) to 23.6 expected mins (appearance prob 0.72); FBref playing time empirical prior: 1.0 sub appearances, 22.0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 6 target models",
              "stats": {
                "expected_goals": 0.1225,
                "goal_rate": 0.217,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0456,
                "key_pass": 1,
                "rating": 6.7292,
                "minutes": 24,
                "total_pass": 14,
                "accurate_pass": 10,
                "duels_won": 2,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 8,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 27,
                "possession_lost": 9.5,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 2,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 14,
                "total_progression": 93,
                "progressive_carries": 6
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:52.318462+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 278,
                    "rows": 769
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Getafe",
                    "minutes": 26.0,
                    "is_starting": false,
                    "weight": 0.5405,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-09-03",
                    "opponent": "Real Sociedad",
                    "minutes": 21.0,
                    "is_starting": false,
                    "weight": 0.4595,
                    "rating": 6.7
                  }
                ],
                "feature_row": {
                  "history_matches": 2.0,
                  "is_starting_11": 0.0,
                  "onTargetScoringAttempt": 0.0,
                  "totalShots": 0.5405,
                  "minutesPlayed": 23.7027,
                  "touches": 26.6757,
                  "dribbleValueNormalized": 0.2378
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.12253441661596298,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.093
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0745
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0545
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.043
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0314
                      }
                    ],
                    "decomposition": {
                      "base": 0.2757,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0555
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0367
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0187
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0159
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0145
                        }
                      ],
                      "others": -0.0409,
                      "total": 0.1225
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.21700307726860046,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0371
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0298
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.3455,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.1067
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0796
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0421
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0263
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0174
                        }
                      ],
                      "others": -0.0698,
                      "total": 0.217
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.5298028588294983,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0703
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0486
                      },
                      {
                        "name": "touches",
                        "importance": 0.0401
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0347
                      }
                    ],
                    "decomposition": {
                      "base": 0.6329,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0395
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0366
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0229
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0204
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0187
                        }
                      ],
                      "others": -0.0756,
                      "total": 0.5298
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.04560638591647148,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0802
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0621
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0547
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0537
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0397
                      }
                    ],
                    "decomposition": {
                      "base": 0.0579,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0099
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0052
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": -0.0024
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0021
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0019
                        }
                      ],
                      "others": 0.005,
                      "total": 0.0456
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.6737886667251587,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0738
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0657
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0615
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0458
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0313
                      }
                    ],
                    "decomposition": {
                      "base": 0.6829,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1212
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0864
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0566
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0402
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0349
                        }
                      ],
                      "others": -0.0256,
                      "total": 0.6738
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.729207515716553,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "speed_threat",
                        "importance": 0.0598
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0489
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0439
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0404
                      }
                    ],
                    "decomposition": {
                      "base": 6.7136,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.078
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.077
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0469
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0463
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0389
                        }
                      ],
                      "others": 0.0541,
                      "total": 6.7292
                    }
                  }
                ],
                "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.9963, quality 0.488)",
              "stats": {
                "expected_goals": 0.1221,
                "goal_rate": 0.2162,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0454,
                "key_pass": 1,
                "rating": 6.7046,
                "minutes": 23,
                "total_pass": 13,
                "accurate_pass": 10,
                "duels_won": 2,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 7,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 27,
                "possession_lost": 9.4653,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 1,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 2,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 14,
                "total_progression": 92,
                "progressive_carries": 6
              },
              "params": {
                "market_value_eur": 7100000,
                "quality_factor": 0.4878,
                "boost_factor": 0.9963
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0062)",
              "stats": {
                "expected_goals": 0.1221,
                "goal_rate": 0.2149,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0454,
                "key_pass": 1,
                "rating": 6.7046,
                "minutes": 23,
                "total_pass": 13,
                "accurate_pass": 10,
                "duels_won": 2,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 7,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 27,
                "possession_lost": 9.4653,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 1,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 2,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 14,
                "total_progression": 92,
                "progressive_carries": 6,
                "total_shots": 1,
                "yellowCards": 5.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 6.1,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "blend_weight": 0.0062,
                "history_matches": 2,
                "prior_reliability": 0.0133,
                "competition": "La Liga",
                "squad": "Celta Vigo"
              },
              "changes": [
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0926
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.0,
                  "after": 0.0617
                },
                {
                  "stat": "totalCross",
                  "before": 3.4872,
                  "after": 3.5274
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0309
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 23.6 expected minutes (appearance prob 0.72)",
              "stats": {
                "expected_goals": 0.032,
                "goal_rate": 0.0563,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0119,
                "key_pass": 0,
                "rating": 6.7046,
                "minutes": 24,
                "total_pass": 4,
                "accurate_pass": 3,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 7,
                "possession_lost": 2.4789,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 4,
                "total_progression": 24,
                "progressive_carries": 2,
                "total_shots": 0,
                "yellowCards": 5.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 6.1,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.723,
                "bench_expected_minutes": 23.57
              },
              "params": {
                "expected_minutes": 23.57,
                "appearance_probability": 0.723
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.032,
                "goal_rate": 0.0563,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0119,
                "key_pass": 0,
                "rating": 6.7046,
                "minutes": 24,
                "total_pass": 4,
                "accurate_pass": 3,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 7,
                "possession_lost": 2.4789,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 4,
                "total_progression": 24,
                "progressive_carries": 2,
                "total_shots": 0,
                "yellowCards": 5.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 6.1,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.723,
                "bench_expected_minutes": 23.57
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.6582, xG scale 1.5497)",
              "stats": {
                "expected_goals": 0.0496,
                "goal_rate": 0.0563,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0119,
                "key_pass": 0,
                "rating": 6.7046,
                "minutes": 24,
                "total_pass": 4,
                "accurate_pass": 3,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 7,
                "possession_lost": 2.4789,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 4,
                "total_progression": 24,
                "progressive_carries": 2,
                "total_shots": 0,
                "yellowCards": 5.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 6.1,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.723,
                "bench_expected_minutes": 23.57,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.541,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.02,
                "squad_xg_sum": 0.6582,
                "xg_scale": 1.5497,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.032,
                  "after": 0.0496
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 10, fifa_overall 72.0)",
              "stats": {
                "expected_goals": 0.0496,
                "goal_rate": 0.0563,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0119,
                "key_pass": 0,
                "rating": 6.7046,
                "minutes": 24,
                "total_pass": 4,
                "accurate_pass": 3,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 7,
                "possession_lost": 2.4789,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 4,
                "total_progression": 24,
                "progressive_carries": 2,
                "total_shots": 0,
                "yellowCards": 5.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 6.1,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.723,
                "bench_expected_minutes": 23.57,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.541,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 72.0
              },
              "params": {
                "match_squad_rank": 10,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 4293,
                "fifa_rank": 3918.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 72.0
              }
            }
          ]
        },
        "Pablo Durán": {
          "player_id": 1398524,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 11,
          "height": 176,
          "market_value": 4099999,
          "stats": {
            "expected_goals": 0.0448,
            "goal_rate": 0.0629,
            "goals": 0,
            "shots_on_target": 0,
            "expected_assists": 0.017,
            "key_pass": 0,
            "rating": 6.74,
            "minutes": 27,
            "total_pass": 4,
            "accurate_pass": 3,
            "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": 6,
            "possession_lost": 1.6877,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assists": 0,
            "shots_off_target": 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": 2,
            "progressive_carries": 0,
            "total_shots": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 100.0,
            "shotConversion": 0.0,
            "minutesPct": 36.9,
            "pointsPerMatch": 0.67,
            "netGoalDifferencePer90": 0.0,
            "bench_appearance_probability": 0.592,
            "bench_expected_minutes": 26.81,
            "projected_substitution_order": 2,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.541,
            "projected_substitution_game_state_adjustment": 0,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 74.0
          },
          "latest_10_games": [
            {
              "match_id": 16416348.0,
              "match_date": "2026-09-07",
              "home_team": "Getafe",
              "away_team": "Celta Vigo",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Getafe",
              "stats": {
                "minutes": 69,
                "rating": 5.8,
                "assists": 0,
                "expected_goals": 0.0673,
                "expected_assists": 0.0379,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 18,
                "accurate_pass": 14,
                "key_pass": 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": 16416340.0,
              "match_date": "2026-09-03",
              "home_team": "Real Sociedad",
              "away_team": "Celta Vigo",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Celta Vigo",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 27,
                "rating": 6.3,
                "assists": 0,
                "expected_assists": 0.0109,
                "total_shots": 0,
                "total_pass": 16,
                "accurate_pass": 10,
                "key_pass": 1,
                "tackles": 1,
                "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": 16815992.0,
              "match_date": "2026-08-27",
              "home_team": "Celta Vigo",
              "away_team": "Osasuna",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 79,
                "rating": 6.6,
                "assists": 0,
                "expected_assists": 0.0268,
                "total_shots": 0,
                "total_pass": 14,
                "accurate_pass": 9,
                "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": 16416298.0,
              "match_date": "2026-08-22",
              "home_team": "Valencia",
              "away_team": "Celta Vigo",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Celta Vigo",
              "opponent": "Valencia",
              "stats": {
                "minutes": 26,
                "rating": 6.6,
                "assists": 0,
                "expected_goals": 0.051,
                "expected_assists": 0.0021,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 5,
                "accurate_pass": 4,
                "tackles": 1,
                "tackles_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": 3892,
            "combined_rank_score": 1879.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 844.0,
            "sofascore_rating": 6.58,
            "sofascore_appearances": 30.0,
            "fifa_rank": 2914.0,
            "fifa_overall": 74.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 16,
            "squad_role": "substitute",
            "projected_match_rating": 6.74,
            "source_file": "data/player_rankings.csv",
            "player_name": "Pablo Durán",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Johan Bakayoko",
                  "ranking": 3887
                },
                {
                  "player_name": "Silvan Widmer",
                  "ranking": 3888
                },
                {
                  "player_name": "Nnamdi Collins",
                  "ranking": 3889
                },
                {
                  "player_name": "Anton Kade",
                  "ranking": 3890
                },
                {
                  "player_name": "Daniel Maldini",
                  "ranking": 3891
                }
              ],
              "lower": [
                {
                  "player_name": "Arthur Vermeeren",
                  "ranking": 3893
                },
                {
                  "player_name": "Farès Chaïbi",
                  "ranking": 3894
                },
                {
                  "player_name": "Gabriel Arias",
                  "ranking": 3895
                },
                {
                  "player_name": "Patrick Mainka",
                  "ranking": 3896
                },
                {
                  "player_name": "Matěj Vydra",
                  "ranking": 3897
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.515,
          "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",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 4,
            "data_confidence": 0.515,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 26.81,
            "bench_appearance_prob": 0.592,
            "market_value_adjustment": 0.9853,
            "fbref_prior_metrics": {
              "squad": "Celta Vigo",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 1.0,
              "sub_appearances": 2.0,
              "minutes_per_sub": 28.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "prior_reliability": 0.1
            },
            "rationale": "Bench projection scaled from XGBoost F_service (4 historical appearances) to 26.8 expected mins (appearance prob 0.59); FBref playing time empirical prior: 2.0 sub appearances, 28.0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 6 target models",
              "stats": {
                "expected_goals": 0.0985,
                "goal_rate": 0.2222,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0581,
                "key_pass": 1,
                "rating": 6.8405,
                "minutes": 50,
                "total_pass": 13,
                "accurate_pass": 9,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 20,
                "possession_lost": 5.75,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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": 5,
                "progressive_carries": 0
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:52.318462+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 278,
                    "rows": 769
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Getafe",
                    "minutes": 69.0,
                    "is_starting": true,
                    "weight": 0.3138,
                    "rating": 5.8
                  },
                  {
                    "match_date": "2026-09-03",
                    "opponent": "Real Sociedad",
                    "minutes": 27.0,
                    "is_starting": false,
                    "weight": 0.2667,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "Osasuna",
                    "minutes": 79.0,
                    "is_starting": true,
                    "weight": 0.2267,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Valencia",
                    "minutes": 26.0,
                    "is_starting": false,
                    "weight": 0.1927,
                    "rating": 6.6
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 0.0,
                  "onTargetScoringAttempt": 0.1927,
                  "totalShots": 0.5065,
                  "minutesPlayed": 51.7773,
                  "touches": 20.6383,
                  "dribbleValueNormalized": -0.0963
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.09851768612861633,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.093
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0745
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0545
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.043
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0314
                      }
                    ],
                    "decomposition": {
                      "base": 0.2757,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0683
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0317
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0165
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0154
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0112
                        }
                      ],
                      "others": -0.0671,
                      "total": 0.0985
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.22219665348529816,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0371
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0298
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.3455,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.1353
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0775
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0529
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0385
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0222
                        }
                      ],
                      "others": -0.1119,
                      "total": 0.2222
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.5739262700080872,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0703
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0486
                      },
                      {
                        "name": "touches",
                        "importance": 0.0401
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0347
                      }
                    ],
                    "decomposition": {
                      "base": 0.6329,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.069
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0391
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0255
                        },
                        {
                          "name": "topSpeed",
                          "contribution": 0.0184
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0156
                        }
                      ],
                      "others": -0.0662,
                      "total": 0.5739
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.05807286873459816,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0802
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0621
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0547
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0537
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0397
                      }
                    ],
                    "decomposition": {
                      "base": 0.0579,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0204
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0068
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0064
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0063
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0037
                        }
                      ],
                      "others": -0.0098,
                      "total": 0.0581
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.5937657952308655,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0738
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0657
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0615
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0458
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0313
                      }
                    ],
                    "decomposition": {
                      "base": 0.6829,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1255
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.0391
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0316
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0259
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0235
                        }
                      ],
                      "others": 0.0151,
                      "total": 0.5938
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.840456008911133,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "speed_threat",
                        "importance": 0.0598
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0489
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0439
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0404
                      }
                    ],
                    "decomposition": {
                      "base": 6.7136,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.098
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0471
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0344
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0284
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0266
                        }
                      ],
                      "others": 0.0712,
                      "total": 6.8405
                    }
                  }
                ],
                "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": {
                "expected_goals": 0.0971,
                "goal_rate": 0.2189,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0572,
                "key_pass": 1,
                "rating": 6.74,
                "minutes": 50,
                "total_pass": 13,
                "accurate_pass": 9,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 19,
                "possession_lost": 5.6656,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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": 5,
                "progressive_carries": 0
              },
              "params": {
                "market_value_eur": 4099999,
                "quality_factor": 0.4511,
                "boost_factor": 0.9853
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0361)",
              "stats": {
                "expected_goals": 0.0971,
                "goal_rate": 0.211,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0572,
                "key_pass": 1,
                "rating": 6.74,
                "minutes": 50,
                "total_pass": 13,
                "accurate_pass": 9,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 19,
                "possession_lost": 5.6656,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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": 5,
                "progressive_carries": 0,
                "total_shots": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 36.9,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": -0.68
              },
              "params": {
                "blend_weight": 0.0361,
                "history_matches": 4,
                "prior_reliability": 0.1,
                "competition": "La Liga",
                "squad": "Celta Vigo"
              },
              "changes": [
                {
                  "stat": "totalOffside",
                  "before": 0.0,
                  "after": 0.0722
                },
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.0241
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0241
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0241
                },
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0241
                },
                {
                  "stat": "goals",
                  "before": 0.2189,
                  "after": 0.211
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 26.8 expected minutes (appearance prob 0.59)",
              "stats": {
                "expected_goals": 0.0289,
                "goal_rate": 0.0629,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.017,
                "key_pass": 0,
                "rating": 6.74,
                "minutes": 27,
                "total_pass": 4,
                "accurate_pass": 3,
                "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": 6,
                "possession_lost": 1.6877,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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": 2,
                "progressive_carries": 0,
                "total_shots": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 36.9,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.592,
                "bench_expected_minutes": 26.81
              },
              "params": {
                "expected_minutes": 26.81,
                "appearance_probability": 0.592
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0289,
                "goal_rate": 0.0629,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.017,
                "key_pass": 0,
                "rating": 6.74,
                "minutes": 27,
                "total_pass": 4,
                "accurate_pass": 3,
                "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": 6,
                "possession_lost": 1.6877,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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": 2,
                "progressive_carries": 0,
                "total_shots": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 36.9,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.592,
                "bench_expected_minutes": 26.81
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.6582, xG scale 1.5497)",
              "stats": {
                "expected_goals": 0.0448,
                "goal_rate": 0.0629,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.017,
                "key_pass": 0,
                "rating": 6.74,
                "minutes": 27,
                "total_pass": 4,
                "accurate_pass": 3,
                "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": 6,
                "possession_lost": 1.6877,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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": 2,
                "progressive_carries": 0,
                "total_shots": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 36.9,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.592,
                "bench_expected_minutes": 26.81,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.541,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.02,
                "squad_xg_sum": 0.6582,
                "xg_scale": 1.5497,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0289,
                  "after": 0.0448
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 16, fifa_overall 74.0)",
              "stats": {
                "expected_goals": 0.0448,
                "goal_rate": 0.0629,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.017,
                "key_pass": 0,
                "rating": 6.74,
                "minutes": 27,
                "total_pass": 4,
                "accurate_pass": 3,
                "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": 6,
                "possession_lost": 1.6877,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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": 2,
                "progressive_carries": 0,
                "total_shots": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 36.9,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.592,
                "bench_expected_minutes": 26.81,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.541,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 74.0
              },
              "params": {
                "match_squad_rank": 16,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3892,
                "fifa_rank": 2914.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 74.0
              }
            }
          ]
        }
      },
      "substitutes": {
        "Couhaib Driouech": {
          "player_id": 1047395,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 24,
          "height": 175,
          "market_value": 7100000,
          "stats": {
            "expected_goals": 0.0496,
            "goal_rate": 0.0563,
            "goals": 0,
            "shots_on_target": 0,
            "expected_assists": 0.0119,
            "key_pass": 0,
            "rating": 6.7046,
            "minutes": 24,
            "total_pass": 4,
            "accurate_pass": 3,
            "duels_won": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 3,
            "accurate_opp_half_passes": 2,
            "crosses_total": 1,
            "crosses_accurate": 0,
            "touches": 7,
            "possession_lost": 2.4789,
            "dispossessed": 0.0,
            "duels_lost": 1,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 1,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assists": 0,
            "shots_off_target": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 1,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "offsides": 0,
            "ball_carries": 4,
            "total_progression": 24,
            "progressive_carries": 2,
            "total_shots": 0,
            "yellowCards": 5.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "minutesPct": 6.1,
            "pointsPerMatch": 1.0,
            "netGoalDifferencePer90": 0.0,
            "bench_appearance_probability": 0.723,
            "bench_expected_minutes": 23.57,
            "projected_substitution_order": 1,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.541,
            "projected_substitution_game_state_adjustment": 0,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 72.0
          },
          "latest_10_games": [
            {
              "match_id": 16416348.0,
              "match_date": "2026-09-07",
              "home_team": "Getafe",
              "away_team": "Celta Vigo",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Celta Vigo",
              "opponent": "Getafe",
              "stats": {
                "minutes": 26,
                "rating": 6.6,
                "assists": 0,
                "expected_goals": 0.038,
                "expected_assists": 0.1576,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 11,
                "accurate_pass": 8,
                "key_pass": 2,
                "tackles": 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": 16416340.0,
              "match_date": "2026-09-03",
              "home_team": "Real Sociedad",
              "away_team": "Celta Vigo",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Celta Vigo",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 21,
                "rating": 6.7,
                "assists": 0,
                "expected_assists": 0.0137,
                "total_shots": 0,
                "total_pass": 16,
                "accurate_pass": 12,
                "tackles": 3,
                "tackles_won": 3,
                "interceptions": 2,
                "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"
            }
          ],
          "ranking": {
            "global_player_rank": 4293,
            "combined_rank_score": 2308.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 698.0,
            "sofascore_rating": 6.7,
            "sofascore_appearances": 1.0,
            "fifa_rank": 3918.0,
            "fifa_overall": 72.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 10,
            "squad_role": "substitute",
            "projected_match_rating": 6.7046,
            "source_file": "data/player_rankings.csv",
            "player_name": "Couhaib Driouech",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "El Chadaille Bitshiabu",
                  "ranking": 4288
                },
                {
                  "player_name": "Gastón Ávila",
                  "ranking": 4289
                },
                {
                  "player_name": "Jens Castrop",
                  "ranking": 4290
                },
                {
                  "player_name": "Arijon Ibrahimović",
                  "ranking": 4291
                },
                {
                  "player_name": "Robin Fellhauer",
                  "ranking": 4292
                }
              ],
              "lower": [
                {
                  "player_name": "Nicolai Remberg",
                  "ranking": 4294
                },
                {
                  "player_name": "Dani Calvo",
                  "ranking": 4295
                },
                {
                  "player_name": "Ethan Galbraith",
                  "ranking": 4296
                },
                {
                  "player_name": "Conrad Harder",
                  "ranking": 4297
                },
                {
                  "player_name": "Andrej Ilić",
                  "ranking": 4298
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.377,
          "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",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 2,
            "data_confidence": 0.377,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 23.57,
            "bench_appearance_prob": 0.723,
            "market_value_adjustment": 0.9963,
            "fbref_prior_metrics": {
              "squad": "Celta Vigo",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 1.0,
              "starts": 0.0,
              "sub_appearances": 1.0,
              "minutes_per_sub": 22.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "prior_reliability": 0.0133
            },
            "rationale": "Bench projection scaled from XGBoost F_service (2 historical appearances) to 23.6 expected mins (appearance prob 0.72); FBref playing time empirical prior: 1.0 sub appearances, 22.0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 6 target models",
              "stats": {
                "expected_goals": 0.1225,
                "goal_rate": 0.217,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0456,
                "key_pass": 1,
                "rating": 6.7292,
                "minutes": 24,
                "total_pass": 14,
                "accurate_pass": 10,
                "duels_won": 2,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 8,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 27,
                "possession_lost": 9.5,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 2,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 14,
                "total_progression": 93,
                "progressive_carries": 6
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:52.318462+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 278,
                    "rows": 769
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Getafe",
                    "minutes": 26.0,
                    "is_starting": false,
                    "weight": 0.5405,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-09-03",
                    "opponent": "Real Sociedad",
                    "minutes": 21.0,
                    "is_starting": false,
                    "weight": 0.4595,
                    "rating": 6.7
                  }
                ],
                "feature_row": {
                  "history_matches": 2.0,
                  "is_starting_11": 0.0,
                  "onTargetScoringAttempt": 0.0,
                  "totalShots": 0.5405,
                  "minutesPlayed": 23.7027,
                  "touches": 26.6757,
                  "dribbleValueNormalized": 0.2378
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.12253441661596298,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.093
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0745
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0545
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.043
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0314
                      }
                    ],
                    "decomposition": {
                      "base": 0.2757,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0555
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0367
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0187
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0159
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0145
                        }
                      ],
                      "others": -0.0409,
                      "total": 0.1225
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.21700307726860046,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0371
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0298
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.3455,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.1067
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0796
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0421
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0263
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0174
                        }
                      ],
                      "others": -0.0698,
                      "total": 0.217
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.5298028588294983,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0703
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0486
                      },
                      {
                        "name": "touches",
                        "importance": 0.0401
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0347
                      }
                    ],
                    "decomposition": {
                      "base": 0.6329,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0395
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0366
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0229
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0204
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0187
                        }
                      ],
                      "others": -0.0756,
                      "total": 0.5298
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.04560638591647148,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0802
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0621
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0547
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0537
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0397
                      }
                    ],
                    "decomposition": {
                      "base": 0.0579,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0099
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0052
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": -0.0024
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0021
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0019
                        }
                      ],
                      "others": 0.005,
                      "total": 0.0456
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.6737886667251587,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0738
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0657
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0615
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0458
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0313
                      }
                    ],
                    "decomposition": {
                      "base": 0.6829,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1212
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0864
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0566
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0402
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0349
                        }
                      ],
                      "others": -0.0256,
                      "total": 0.6738
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.729207515716553,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "speed_threat",
                        "importance": 0.0598
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0489
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0439
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0404
                      }
                    ],
                    "decomposition": {
                      "base": 6.7136,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.078
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.077
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0469
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0463
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0389
                        }
                      ],
                      "others": 0.0541,
                      "total": 6.7292
                    }
                  }
                ],
                "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.9963, quality 0.488)",
              "stats": {
                "expected_goals": 0.1221,
                "goal_rate": 0.2162,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0454,
                "key_pass": 1,
                "rating": 6.7046,
                "minutes": 23,
                "total_pass": 13,
                "accurate_pass": 10,
                "duels_won": 2,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 7,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 27,
                "possession_lost": 9.4653,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 1,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 2,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 14,
                "total_progression": 92,
                "progressive_carries": 6
              },
              "params": {
                "market_value_eur": 7100000,
                "quality_factor": 0.4878,
                "boost_factor": 0.9963
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0062)",
              "stats": {
                "expected_goals": 0.1221,
                "goal_rate": 0.2149,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0454,
                "key_pass": 1,
                "rating": 6.7046,
                "minutes": 23,
                "total_pass": 13,
                "accurate_pass": 10,
                "duels_won": 2,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 7,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 27,
                "possession_lost": 9.4653,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 1,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 2,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 14,
                "total_progression": 92,
                "progressive_carries": 6,
                "total_shots": 1,
                "yellowCards": 5.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 6.1,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "blend_weight": 0.0062,
                "history_matches": 2,
                "prior_reliability": 0.0133,
                "competition": "La Liga",
                "squad": "Celta Vigo"
              },
              "changes": [
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0926
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.0,
                  "after": 0.0617
                },
                {
                  "stat": "totalCross",
                  "before": 3.4872,
                  "after": 3.5274
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0309
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 23.6 expected minutes (appearance prob 0.72)",
              "stats": {
                "expected_goals": 0.032,
                "goal_rate": 0.0563,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0119,
                "key_pass": 0,
                "rating": 6.7046,
                "minutes": 24,
                "total_pass": 4,
                "accurate_pass": 3,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 7,
                "possession_lost": 2.4789,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 4,
                "total_progression": 24,
                "progressive_carries": 2,
                "total_shots": 0,
                "yellowCards": 5.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 6.1,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.723,
                "bench_expected_minutes": 23.57
              },
              "params": {
                "expected_minutes": 23.57,
                "appearance_probability": 0.723
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.032,
                "goal_rate": 0.0563,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0119,
                "key_pass": 0,
                "rating": 6.7046,
                "minutes": 24,
                "total_pass": 4,
                "accurate_pass": 3,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 7,
                "possession_lost": 2.4789,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 4,
                "total_progression": 24,
                "progressive_carries": 2,
                "total_shots": 0,
                "yellowCards": 5.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 6.1,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.723,
                "bench_expected_minutes": 23.57
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.6582, xG scale 1.5497)",
              "stats": {
                "expected_goals": 0.0496,
                "goal_rate": 0.0563,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0119,
                "key_pass": 0,
                "rating": 6.7046,
                "minutes": 24,
                "total_pass": 4,
                "accurate_pass": 3,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 7,
                "possession_lost": 2.4789,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 4,
                "total_progression": 24,
                "progressive_carries": 2,
                "total_shots": 0,
                "yellowCards": 5.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 6.1,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.723,
                "bench_expected_minutes": 23.57,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.541,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.02,
                "squad_xg_sum": 0.6582,
                "xg_scale": 1.5497,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.032,
                  "after": 0.0496
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 10, fifa_overall 72.0)",
              "stats": {
                "expected_goals": 0.0496,
                "goal_rate": 0.0563,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0119,
                "key_pass": 0,
                "rating": 6.7046,
                "minutes": 24,
                "total_pass": 4,
                "accurate_pass": 3,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 7,
                "possession_lost": 2.4789,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 4,
                "total_progression": 24,
                "progressive_carries": 2,
                "total_shots": 0,
                "yellowCards": 5.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 6.1,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.723,
                "bench_expected_minutes": 23.57,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.541,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 72.0
              },
              "params": {
                "match_squad_rank": 10,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 4293,
                "fifa_rank": 3918.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 72.0
              }
            }
          ]
        },
        "Pablo Durán": {
          "player_id": 1398524,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 11,
          "height": 176,
          "market_value": 4099999,
          "stats": {
            "expected_goals": 0.0448,
            "goal_rate": 0.0629,
            "goals": 0,
            "shots_on_target": 0,
            "expected_assists": 0.017,
            "key_pass": 0,
            "rating": 6.74,
            "minutes": 27,
            "total_pass": 4,
            "accurate_pass": 3,
            "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": 6,
            "possession_lost": 1.6877,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assists": 0,
            "shots_off_target": 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": 2,
            "progressive_carries": 0,
            "total_shots": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 100.0,
            "shotConversion": 0.0,
            "minutesPct": 36.9,
            "pointsPerMatch": 0.67,
            "netGoalDifferencePer90": 0.0,
            "bench_appearance_probability": 0.592,
            "bench_expected_minutes": 26.81,
            "projected_substitution_order": 2,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.541,
            "projected_substitution_game_state_adjustment": 0,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 74.0
          },
          "latest_10_games": [
            {
              "match_id": 16416348.0,
              "match_date": "2026-09-07",
              "home_team": "Getafe",
              "away_team": "Celta Vigo",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Getafe",
              "stats": {
                "minutes": 69,
                "rating": 5.8,
                "assists": 0,
                "expected_goals": 0.0673,
                "expected_assists": 0.0379,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 18,
                "accurate_pass": 14,
                "key_pass": 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": 16416340.0,
              "match_date": "2026-09-03",
              "home_team": "Real Sociedad",
              "away_team": "Celta Vigo",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Celta Vigo",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 27,
                "rating": 6.3,
                "assists": 0,
                "expected_assists": 0.0109,
                "total_shots": 0,
                "total_pass": 16,
                "accurate_pass": 10,
                "key_pass": 1,
                "tackles": 1,
                "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": 16815992.0,
              "match_date": "2026-08-27",
              "home_team": "Celta Vigo",
              "away_team": "Osasuna",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 79,
                "rating": 6.6,
                "assists": 0,
                "expected_assists": 0.0268,
                "total_shots": 0,
                "total_pass": 14,
                "accurate_pass": 9,
                "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": 16416298.0,
              "match_date": "2026-08-22",
              "home_team": "Valencia",
              "away_team": "Celta Vigo",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Celta Vigo",
              "opponent": "Valencia",
              "stats": {
                "minutes": 26,
                "rating": 6.6,
                "assists": 0,
                "expected_goals": 0.051,
                "expected_assists": 0.0021,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 5,
                "accurate_pass": 4,
                "tackles": 1,
                "tackles_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": 3892,
            "combined_rank_score": 1879.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 844.0,
            "sofascore_rating": 6.58,
            "sofascore_appearances": 30.0,
            "fifa_rank": 2914.0,
            "fifa_overall": 74.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 16,
            "squad_role": "substitute",
            "projected_match_rating": 6.74,
            "source_file": "data/player_rankings.csv",
            "player_name": "Pablo Durán",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Johan Bakayoko",
                  "ranking": 3887
                },
                {
                  "player_name": "Silvan Widmer",
                  "ranking": 3888
                },
                {
                  "player_name": "Nnamdi Collins",
                  "ranking": 3889
                },
                {
                  "player_name": "Anton Kade",
                  "ranking": 3890
                },
                {
                  "player_name": "Daniel Maldini",
                  "ranking": 3891
                }
              ],
              "lower": [
                {
                  "player_name": "Arthur Vermeeren",
                  "ranking": 3893
                },
                {
                  "player_name": "Farès Chaïbi",
                  "ranking": 3894
                },
                {
                  "player_name": "Gabriel Arias",
                  "ranking": 3895
                },
                {
                  "player_name": "Patrick Mainka",
                  "ranking": 3896
                },
                {
                  "player_name": "Matěj Vydra",
                  "ranking": 3897
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.515,
          "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",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 4,
            "data_confidence": 0.515,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 26.81,
            "bench_appearance_prob": 0.592,
            "market_value_adjustment": 0.9853,
            "fbref_prior_metrics": {
              "squad": "Celta Vigo",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 1.0,
              "sub_appearances": 2.0,
              "minutes_per_sub": 28.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "prior_reliability": 0.1
            },
            "rationale": "Bench projection scaled from XGBoost F_service (4 historical appearances) to 26.8 expected mins (appearance prob 0.59); FBref playing time empirical prior: 2.0 sub appearances, 28.0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 6 target models",
              "stats": {
                "expected_goals": 0.0985,
                "goal_rate": 0.2222,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0581,
                "key_pass": 1,
                "rating": 6.8405,
                "minutes": 50,
                "total_pass": 13,
                "accurate_pass": 9,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 20,
                "possession_lost": 5.75,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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": 5,
                "progressive_carries": 0
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:52.318462+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 278,
                    "rows": 769
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Getafe",
                    "minutes": 69.0,
                    "is_starting": true,
                    "weight": 0.3138,
                    "rating": 5.8
                  },
                  {
                    "match_date": "2026-09-03",
                    "opponent": "Real Sociedad",
                    "minutes": 27.0,
                    "is_starting": false,
                    "weight": 0.2667,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "Osasuna",
                    "minutes": 79.0,
                    "is_starting": true,
                    "weight": 0.2267,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Valencia",
                    "minutes": 26.0,
                    "is_starting": false,
                    "weight": 0.1927,
                    "rating": 6.6
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 0.0,
                  "onTargetScoringAttempt": 0.1927,
                  "totalShots": 0.5065,
                  "minutesPlayed": 51.7773,
                  "touches": 20.6383,
                  "dribbleValueNormalized": -0.0963
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.09851768612861633,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.093
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0745
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0545
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.043
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0314
                      }
                    ],
                    "decomposition": {
                      "base": 0.2757,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0683
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0317
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0165
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0154
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0112
                        }
                      ],
                      "others": -0.0671,
                      "total": 0.0985
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.22219665348529816,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0371
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0298
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.3455,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.1353
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0775
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0529
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0385
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0222
                        }
                      ],
                      "others": -0.1119,
                      "total": 0.2222
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.5739262700080872,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0703
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0486
                      },
                      {
                        "name": "touches",
                        "importance": 0.0401
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0347
                      }
                    ],
                    "decomposition": {
                      "base": 0.6329,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.069
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0391
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0255
                        },
                        {
                          "name": "topSpeed",
                          "contribution": 0.0184
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0156
                        }
                      ],
                      "others": -0.0662,
                      "total": 0.5739
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.05807286873459816,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0802
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0621
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0547
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0537
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0397
                      }
                    ],
                    "decomposition": {
                      "base": 0.0579,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0204
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0068
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0064
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0063
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0037
                        }
                      ],
                      "others": -0.0098,
                      "total": 0.0581
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.5937657952308655,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0738
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0657
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0615
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0458
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0313
                      }
                    ],
                    "decomposition": {
                      "base": 0.6829,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1255
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.0391
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0316
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0259
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0235
                        }
                      ],
                      "others": 0.0151,
                      "total": 0.5938
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.840456008911133,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "speed_threat",
                        "importance": 0.0598
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0489
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0439
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0404
                      }
                    ],
                    "decomposition": {
                      "base": 6.7136,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.098
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0471
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0344
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0284
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0266
                        }
                      ],
                      "others": 0.0712,
                      "total": 6.8405
                    }
                  }
                ],
                "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": {
                "expected_goals": 0.0971,
                "goal_rate": 0.2189,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0572,
                "key_pass": 1,
                "rating": 6.74,
                "minutes": 50,
                "total_pass": 13,
                "accurate_pass": 9,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 19,
                "possession_lost": 5.6656,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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": 5,
                "progressive_carries": 0
              },
              "params": {
                "market_value_eur": 4099999,
                "quality_factor": 0.4511,
                "boost_factor": 0.9853
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0361)",
              "stats": {
                "expected_goals": 0.0971,
                "goal_rate": 0.211,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0572,
                "key_pass": 1,
                "rating": 6.74,
                "minutes": 50,
                "total_pass": 13,
                "accurate_pass": 9,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 19,
                "possession_lost": 5.6656,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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": 5,
                "progressive_carries": 0,
                "total_shots": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 36.9,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": -0.68
              },
              "params": {
                "blend_weight": 0.0361,
                "history_matches": 4,
                "prior_reliability": 0.1,
                "competition": "La Liga",
                "squad": "Celta Vigo"
              },
              "changes": [
                {
                  "stat": "totalOffside",
                  "before": 0.0,
                  "after": 0.0722
                },
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.0241
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0241
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0241
                },
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0241
                },
                {
                  "stat": "goals",
                  "before": 0.2189,
                  "after": 0.211
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 26.8 expected minutes (appearance prob 0.59)",
              "stats": {
                "expected_goals": 0.0289,
                "goal_rate": 0.0629,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.017,
                "key_pass": 0,
                "rating": 6.74,
                "minutes": 27,
                "total_pass": 4,
                "accurate_pass": 3,
                "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": 6,
                "possession_lost": 1.6877,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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": 2,
                "progressive_carries": 0,
                "total_shots": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 36.9,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.592,
                "bench_expected_minutes": 26.81
              },
              "params": {
                "expected_minutes": 26.81,
                "appearance_probability": 0.592
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0289,
                "goal_rate": 0.0629,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.017,
                "key_pass": 0,
                "rating": 6.74,
                "minutes": 27,
                "total_pass": 4,
                "accurate_pass": 3,
                "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": 6,
                "possession_lost": 1.6877,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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": 2,
                "progressive_carries": 0,
                "total_shots": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 36.9,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.592,
                "bench_expected_minutes": 26.81
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.6582, xG scale 1.5497)",
              "stats": {
                "expected_goals": 0.0448,
                "goal_rate": 0.0629,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.017,
                "key_pass": 0,
                "rating": 6.74,
                "minutes": 27,
                "total_pass": 4,
                "accurate_pass": 3,
                "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": 6,
                "possession_lost": 1.6877,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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": 2,
                "progressive_carries": 0,
                "total_shots": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 36.9,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.592,
                "bench_expected_minutes": 26.81,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.541,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.02,
                "squad_xg_sum": 0.6582,
                "xg_scale": 1.5497,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0289,
                  "after": 0.0448
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 16, fifa_overall 74.0)",
              "stats": {
                "expected_goals": 0.0448,
                "goal_rate": 0.0629,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.017,
                "key_pass": 0,
                "rating": 6.74,
                "minutes": 27,
                "total_pass": 4,
                "accurate_pass": 3,
                "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": 6,
                "possession_lost": 1.6877,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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": 2,
                "progressive_carries": 0,
                "total_shots": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 36.9,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.592,
                "bench_expected_minutes": 26.81,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.541,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 74.0
              },
              "params": {
                "match_squad_rank": 16,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3892,
                "fifa_rank": 2914.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 74.0
              }
            }
          ]
        },
        "Javier Rueda": {
          "player_id": 1008259,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 17,
          "height": 176,
          "market_value": 6200000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0136,
            "assists": 0,
            "expected_goals": 0.0119,
            "rating": 6.7349,
            "minutes": 22,
            "total_pass": 5,
            "accurate_pass": 4,
            "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": 3,
            "accurate_opp_half_passes": 2,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 8,
            "possession_lost": 2.0022,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_won": 0,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 0,
            "total_progression": 0,
            "progressive_carries": 0,
            "bench_appearance_probability": 0.506,
            "bench_expected_minutes": 22.13,
            "projected_substitution_order": 3,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.541,
            "projected_substitution_game_state_adjustment": 0,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 81.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16416347.0,
              "match_date": "2026-09-13 12: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": "Celta",
              "away_team": "Málaga",
              "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": "Celta",
              "opponent": "Málaga",
              "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": "away",
              "is_starting_11": 0,
              "team": "Celta Vigo",
              "opponent": "Getafe",
              "stats": {
                "minutes": 26,
                "rating": 7.0,
                "assists": 0,
                "expected_assists": 0.2814,
                "total_shots": 0,
                "total_pass": 9,
                "accurate_pass": 8,
                "key_pass": 2,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 1,
                "aerial_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": 16416340.0,
              "match_date": "2026-09-03",
              "home_team": "Real Sociedad",
              "away_team": "Celta Vigo",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 84,
                "rating": 6.2,
                "assists": 0,
                "expected_goals": 0.0436,
                "expected_assists": 0.0261,
                "total_shots": 1,
                "total_pass": 34,
                "accurate_pass": 28,
                "tackles": 2,
                "tackles_won": 2,
                "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": 16416308.0,
              "match_date": "2026-08-30",
              "home_team": "Celta Vigo",
              "away_team": "Athletic Club",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Celta Vigo",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 45,
                "rating": 7.1,
                "assists": 0,
                "expected_goals": 0.0055,
                "expected_assists": 0.0272,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 33,
                "accurate_pass": 27,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 1,
                "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": 16815992.0,
              "match_date": "2026-08-27",
              "home_team": "Celta Vigo",
              "away_team": "Osasuna",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Celta Vigo",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 65,
                "rating": 6.7,
                "assists": 0,
                "expected_assists": 0.011,
                "total_shots": 0,
                "total_pass": 18,
                "accurate_pass": 17,
                "interceptions": 2,
                "clearances": 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": 16416298.0,
              "match_date": "2026-08-22",
              "home_team": "Valencia",
              "away_team": "Celta Vigo",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Celta Vigo",
              "opponent": "Valencia",
              "stats": {
                "minutes": 27,
                "rating": 6.3,
                "assists": 0,
                "expected_assists": 0.0019,
                "total_shots": 0,
                "total_pass": 8,
                "accurate_pass": 4,
                "interceptions": 1,
                "clearances": 2,
                "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": 1329,
            "combined_rank_score": 577.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 578.0,
            "sofascore_rating": 6.8,
            "sofascore_appearances": 26.0,
            "fifa_rank": 577.0,
            "fifa_overall": 81.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 11,
            "squad_role": "substitute",
            "projected_match_rating": 6.7349,
            "source_file": "data/player_rankings.csv",
            "player_name": "Javier Rueda",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Jean-Philippe Mateta",
                  "ranking": 1324
                },
                {
                  "player_name": "Brahim",
                  "ranking": 1325
                },
                {
                  "player_name": "Diego Llorente",
                  "ranking": 1326
                },
                {
                  "player_name": "Brandon Mechele",
                  "ranking": 1327
                },
                {
                  "player_name": "De Frutos",
                  "ranking": 1328
                }
              ],
              "lower": [
                {
                  "player_name": "Ji-yong Jeong",
                  "ranking": 1330
                },
                {
                  "player_name": "Jae-jun You",
                  "ranking": 1331
                },
                {
                  "player_name": "Mukhammadali Reimov",
                  "ranking": 1332
                },
                {
                  "player_name": "Jakhongir Abdusalomov",
                  "ranking": 1333
                },
                {
                  "player_name": "Asad Sobirzhonov",
                  "ranking": 1334
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.562,
          "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",
              "rating"
            ],
            "history_matches": 5,
            "data_confidence": 0.562,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 22.128465634082904,
            "bench_appearance_prob": 0.5058393470037683,
            "market_value_adjustment": 0.9931,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost M_service (5 historical appearances) to 22.1 expected mins (appearance prob 0.51)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 5 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0557,
                "assists": 0,
                "expected_goals": 0.0316,
                "rating": 6.7819,
                "minutes": 49,
                "total_pass": 20,
                "accurate_pass": 17,
                "duels_won": 3,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 8,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 10,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 35,
                "possession_lost": 8.2,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:48.236605+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Getafe",
                    "minutes": 26.0,
                    "is_starting": false,
                    "weight": 0.2696,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-09-03",
                    "opponent": "Real Sociedad",
                    "minutes": 84.0,
                    "is_starting": true,
                    "weight": 0.2292,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Athletic Club",
                    "minutes": 45.0,
                    "is_starting": false,
                    "weight": 0.1948,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "Osasuna",
                    "minutes": 65.0,
                    "is_starting": true,
                    "weight": 0.1656,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Valencia",
                    "minutes": 27.0,
                    "is_starting": false,
                    "weight": 0.1408,
                    "rating": 6.3
                  }
                ],
                "feature_row": {
                  "history_matches": 5.0,
                  "is_starting_11": 0.0,
                  "ballRecovery_p90": 3.954,
                  "ballRecovery": 2.3723,
                  "intensity_index": 4.8985,
                  "expectedAssists": 0.0893,
                  "kilometersCovered": 3.4801
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.7025556564331055,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1586
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0481
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0428
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0362
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.022
                        }
                      ],
                      "others": -0.0312,
                      "total": 0.7026
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.05567537993192673,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0145
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.0108
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0091
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0075
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": -0.0045
                        }
                      ],
                      "others": -0.0124,
                      "total": 0.0557
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.09804052859544754,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0058
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0051
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.0048
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0035
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.0035
                        }
                      ],
                      "others": 0.0015,
                      "total": 0.098
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.031592532992362976,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0267
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0195
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0078
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0063
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0048
                        }
                      ],
                      "others": -0.012,
                      "total": 0.0316
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.781923770904541,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0662
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0246
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0231
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0169
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": 0.0157
                        }
                      ],
                      "others": -0.0178,
                      "total": 6.7819
                    }
                  }
                ],
                "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.9931, quality 0.477)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0553,
                "assists": 0,
                "expected_goals": 0.0314,
                "rating": 6.7349,
                "minutes": 49,
                "total_pass": 20,
                "accurate_pass": 17,
                "duels_won": 3,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 8,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 10,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 35,
                "possession_lost": 8.1431,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0
              },
              "params": {
                "market_value_eur": 6200000,
                "quality_factor": 0.4769,
                "boost_factor": 0.9931
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 22.1 expected minutes (appearance prob 0.51)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0136,
                "assists": 0,
                "expected_goals": 0.0077,
                "rating": 6.7349,
                "minutes": 22,
                "total_pass": 5,
                "accurate_pass": 4,
                "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": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 8,
                "possession_lost": 2.0022,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "bench_appearance_probability": 0.506,
                "bench_expected_minutes": 22.13
              },
              "params": {
                "expected_minutes": 22.13,
                "appearance_probability": 0.506
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0136,
                "assists": 0,
                "expected_goals": 0.0077,
                "rating": 6.7349,
                "minutes": 22,
                "total_pass": 5,
                "accurate_pass": 4,
                "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": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 8,
                "possession_lost": 2.0022,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "bench_appearance_probability": 0.506,
                "bench_expected_minutes": 22.13
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.6582, xG scale 1.5497)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0136,
                "assists": 0,
                "expected_goals": 0.0119,
                "rating": 6.7349,
                "minutes": 22,
                "total_pass": 5,
                "accurate_pass": 4,
                "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": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 8,
                "possession_lost": 2.0022,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "bench_appearance_probability": 0.506,
                "bench_expected_minutes": 22.13,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.541,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.02,
                "squad_xg_sum": 0.6582,
                "xg_scale": 1.5497,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 11, fifa_overall 81.0)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0136,
                "assists": 0,
                "expected_goals": 0.0119,
                "rating": 6.7349,
                "minutes": 22,
                "total_pass": 5,
                "accurate_pass": 4,
                "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": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 8,
                "possession_lost": 2.0022,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "bench_appearance_probability": 0.506,
                "bench_expected_minutes": 22.13,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.541,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 81.0
              },
              "params": {
                "match_squad_rank": 11,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 1329,
                "fifa_rank": 577.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 81.0
              }
            }
          ]
        }
      },
      "team_totals": {
        "projected_goals": 1,
        "expected_goals": 1.02,
        "expected_assists": 0.61,
        "total_shots": 11,
        "shots_on_target": 2,
        "total_passes": 373,
        "interceptions": 4,
        "tackles": 5,
        "avg_rating": 6.87,
        "possession_estimated_pct": 51.0,
        "pressing_actions_per_90": 6.8
      }
    },
    "R. Racing Club": {
      "formation": "3-5-2",
      "players": {
        "Julen Agirrezabala": {
          "player_id": 1014412,
          "position": "G",
          "position_depth": "G",
          "is_starter": true,
          "shirt_number": 13,
          "height": 187,
          "market_value": 9800000,
          "stats": {
            "saves": 3,
            "goals_prevented": 0.0,
            "rating": 7.1067,
            "minutes": 91,
            "total_pass": 21,
            "accurate_pass": 15,
            "duels_won": 0,
            "total_long_balls": 8,
            "accurate_long_balls": 3,
            "touches": 38,
            "clearances": 2,
            "ball_recovery": 12,
            "high_claims": 0,
            "punches": 0.0,
            "aerial_won": 0,
            "sweeper_actions": 0,
            "sweeper_accurate": 0,
            "saves_inside_box": 0,
            "possession_lost": 5.7847,
            "duels_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "total_own_half_passes": 15,
            "accurate_own_half_passes": 14,
            "expected_saves": 1.16,
            "high_pressure_saves": 0.44,
            "shots_faced": 2.5,
            "opponent_faced": "Jones El-Abdellaoui, Ferrán Jutglà",
            "matchup_zone": "Goalkeeper shot-stopping context",
            "antagonist_source": "formation_fallback",
            "goals": 0,
            "projected_goals": 0,
            "goal_probability": 0.0,
            "assists": 0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "expected_goals": 0.0,
            "expected_assists": 0.0,
            "fifa_overall": 82.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16416328.0,
              "match_date": "2026-09-12 12: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": "R. Racing Club",
              "away_team": "Alavés",
              "home_score_current": 2.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": "R. Racing Club",
              "opponent": "Alavés",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16416321.0,
              "match_date": "2026-09-05",
              "home_team": "Rayo Vallecano",
              "away_team": "Real Racing Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Racing Club",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assists": 0,
                "expected_assists": 0.0011,
                "total_shots": 0,
                "total_pass": 23,
                "accurate_pass": 16,
                "clearances": 1,
                "ball_recovery": 20,
                "saves": 6,
                "goals_prevented": -0.8677
              },
              "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": 16416304.0,
              "match_date": "2026-08-28",
              "home_team": "Real Racing Club",
              "away_team": "Elche",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Racing Club",
              "opponent": "Elche",
              "stats": {
                "minutes": 90,
                "rating": 7.1,
                "assists": 0,
                "expected_assists": 0.0006,
                "total_shots": 0,
                "total_pass": 20,
                "accurate_pass": 14,
                "clearances": 1,
                "ball_recovery": 8,
                "saves": 5,
                "goals_prevented": -0.1012
              },
              "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": "away",
              "is_starting_11": 1,
              "team": "Real Racing Club",
              "opponent": "Getafe",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assists": 0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "total_pass": 20,
                "accurate_pass": 14,
                "clearances": 4,
                "duels_won": 2,
                "ball_recovery": 10,
                "goals_prevented": -0.0081
              },
              "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": 16421061.0,
              "match_date": "2026-08-16",
              "home_team": "Real Racing Club",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Racing Club",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 90,
                "rating": 6.5,
                "assists": 0,
                "expected_assists": 0.0005,
                "total_shots": 0,
                "total_pass": 20,
                "accurate_pass": 16,
                "clearances": 1,
                "ball_recovery": 8,
                "saves": 5,
                "goals_prevented": -0.5844
              },
              "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": 932,
            "combined_rank_score": 433.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 434.0,
            "sofascore_rating": 6.9111,
            "sofascore_appearances": 18.0,
            "fifa_rank": 433.0,
            "fifa_overall": 82.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 3,
            "squad_role": "starter",
            "projected_match_rating": 7.1067,
            "source_file": "data/player_rankings.csv",
            "player_name": "Julen Agirrezabala",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Karim Adeyemi",
                  "ranking": 927
                },
                {
                  "player_name": "Marlon Maranhão",
                  "ranking": 928
                },
                {
                  "player_name": "Islom Kenzhaboev",
                  "ranking": 929
                },
                {
                  "player_name": "Isco",
                  "ranking": 930
                },
                {
                  "player_name": "Karim Benzema",
                  "ranking": 931
                }
              ],
              "lower": [
                {
                  "player_name": "Koen Casteels",
                  "ranking": 933
                },
                {
                  "player_name": "Danilo Pereira",
                  "ranking": 934
                },
                {
                  "player_name": "David Soria",
                  "ranking": 935
                },
                {
                  "player_name": "Jasurbek Jaloliddinov",
                  "ranking": 936
                },
                {
                  "player_name": "Kalidou Koulibaly",
                  "ranking": 937
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.5,
          "history_matches": 4,
          "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": 4,
            "data_confidence": 0.5,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 1.006,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (G_service) evaluated 4 historical appearances across 3 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost G_service raw output over 3 target models",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0,
                "rating": 7.0641,
                "minutes": 90,
                "total_pass": 21,
                "accurate_pass": 15,
                "duels_won": 0,
                "total_long_balls": 8,
                "accurate_long_balls": 2,
                "touches": 38,
                "clearances": 2,
                "ball_recovery": 12,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 5.75,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 14,
                "accurate_own_half_passes": 14
              },
              "trace": {
                "model": {
                  "position_service": "G",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:40.064367+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 113,
                    "rows": 393
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Rayo Vallecano",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3138,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Elche",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2667,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Getafe",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2267,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-08-16",
                    "opponent": "Villarreal",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1927,
                    "rating": 6.5
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 1.0,
                  "sweeper_actions_p90": 1.6402,
                  "touches": 38.5555,
                  "totalOwnHalfPasses": 14.5267,
                  "punches": 0.0,
                  "distribution_accuracy": 0.951,
                  "accurateKeeperSweeper": 1.6402
                },
                "per_target": [
                  {
                    "target": "saves",
                    "predicted": 3.043330430984497,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "sweeper_actions_p90",
                        "importance": 0.0587
                      },
                      {
                        "name": "accurateKeeperSweeper",
                        "importance": 0.0534
                      },
                      {
                        "name": "touches",
                        "importance": 0.0497
                      },
                      {
                        "name": "totalOwnHalfPasses",
                        "importance": 0.049
                      },
                      {
                        "name": "distribution_accuracy",
                        "importance": 0.043
                      }
                    ],
                    "decomposition": {
                      "base": 2.9806,
                      "items": [
                        {
                          "name": "goalkeeperValueNormalized",
                          "contribution": -0.0434
                        },
                        {
                          "name": "totalOwnHalfPasses",
                          "contribution": -0.0424
                        },
                        {
                          "name": "touches",
                          "contribution": 0.0395
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0338
                        },
                        {
                          "name": "inside_box_save_rate",
                          "contribution": -0.0302
                        }
                      ],
                      "others": 0.1054,
                      "total": 3.0433
                    }
                  },
                  {
                    "target": "goalsPrevented",
                    "predicted": 0.0,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "sweeper_actions_p90",
                        "importance": 0.053
                      },
                      {
                        "name": "punches",
                        "importance": 0.051
                      },
                      {
                        "name": "touches",
                        "importance": 0.0482
                      },
                      {
                        "name": "accurateLongBalls",
                        "importance": 0.0468
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0432
                      }
                    ],
                    "decomposition": {
                      "base": -0.0536,
                      "items": [
                        {
                          "name": "commanding_index",
                          "contribution": 0.0791
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.053
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0468
                        },
                        {
                          "name": "inside_box_save_rate",
                          "contribution": -0.0345
                        },
                        {
                          "name": "accurateOwnHalfPasses",
                          "contribution": -0.0267
                        }
                      ],
                      "others": -0.031,
                      "total": -0.0729
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 7.064101219177246,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "sweeper_actions_p90",
                        "importance": 0.0593
                      },
                      {
                        "name": "touches",
                        "importance": 0.0495
                      },
                      {
                        "name": "distribution_accuracy",
                        "importance": 0.0484
                      },
                      {
                        "name": "savedShotsFromInsideTheBox",
                        "importance": 0.0468
                      },
                      {
                        "name": "punches",
                        "importance": 0.0464
                      }
                    ],
                    "decomposition": {
                      "base": 7.0716,
                      "items": [
                        {
                          "name": "sweeper_actions_p90",
                          "contribution": 0.089
                        },
                        {
                          "name": "accurateLongBalls",
                          "contribution": -0.0721
                        },
                        {
                          "name": "commanding_index",
                          "contribution": 0.0696
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0637
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.0587
                        }
                      ],
                      "others": 0.0284,
                      "total": 7.0641
                    }
                  }
                ],
                "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.0060, quality 0.520)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0,
                "rating": 7.1067,
                "minutes": 91,
                "total_pass": 21,
                "accurate_pass": 15,
                "duels_won": 0,
                "total_long_balls": 8,
                "accurate_long_balls": 3,
                "touches": 38,
                "clearances": 2,
                "ball_recovery": 12,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 5.7847,
                "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": 9800000,
                "quality_factor": 0.5201,
                "boost_factor": 1.006
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0,
                "rating": 7.1067,
                "minutes": 91,
                "total_pass": 21,
                "accurate_pass": 15,
                "duels_won": 0,
                "total_long_balls": 8,
                "accurate_long_balls": 3,
                "touches": 38,
                "clearances": 2,
                "ball_recovery": 12,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 5.7847,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 14
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0,
                "rating": 7.1067,
                "minutes": 91,
                "total_pass": 21,
                "accurate_pass": 15,
                "duels_won": 0,
                "total_long_balls": 8,
                "accurate_long_balls": 3,
                "touches": 38,
                "clearances": 2,
                "ball_recovery": 12,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 5.7847,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 14,
                "expected_saves": 1.16,
                "high_pressure_saves": 0.44,
                "shots_faced": 2.5,
                "opponent_faced": "Jones El-Abdellaoui, Ferrán Jutglà",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Jones El-Abdellaoui, Ferrán Jutglà",
                  "matchup_zone": "Goalkeeper shot-stopping context"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.8388, xG scale 1.2136)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0,
                "rating": 7.1067,
                "minutes": 91,
                "total_pass": 21,
                "accurate_pass": 15,
                "duels_won": 0,
                "total_long_balls": 8,
                "accurate_long_balls": 3,
                "touches": 38,
                "clearances": 2,
                "ball_recovery": 12,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 5.7847,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 14,
                "expected_saves": 1.16,
                "high_pressure_saves": 0.44,
                "shots_faced": 2.5,
                "opponent_faced": "Jones El-Abdellaoui, Ferrán Jutglà",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "goals": 0,
                "projected_goals": 0,
                "goal_probability": 0.0,
                "assists": 0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0
              },
              "params": {
                "team_lambda": 1.018,
                "squad_xg_sum": 0.8388,
                "xg_scale": 1.2136,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 3, fifa_overall 82.0)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0,
                "rating": 7.1067,
                "minutes": 91,
                "total_pass": 21,
                "accurate_pass": 15,
                "duels_won": 0,
                "total_long_balls": 8,
                "accurate_long_balls": 3,
                "touches": 38,
                "clearances": 2,
                "ball_recovery": 12,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 5.7847,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 14,
                "expected_saves": 1.16,
                "high_pressure_saves": 0.44,
                "shots_faced": 2.5,
                "opponent_faced": "Jones El-Abdellaoui, Ferrán Jutglà",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "goals": 0,
                "projected_goals": 0,
                "goal_probability": 0.0,
                "assists": 0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "fifa_overall": 82.0
              },
              "params": {
                "match_squad_rank": 3,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 932,
                "fifa_rank": 433.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 82.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0,
                "rating": 7.1067,
                "minutes": 91,
                "total_pass": 21,
                "accurate_pass": 15,
                "duels_won": 0,
                "total_long_balls": 8,
                "accurate_long_balls": 3,
                "touches": 38,
                "clearances": 2,
                "ball_recovery": 12,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 5.7847,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 14,
                "expected_saves": 1.16,
                "high_pressure_saves": 0.44,
                "shots_faced": 2.5,
                "opponent_faced": "Jones El-Abdellaoui, Ferrán Jutglà",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "goals": 0,
                "projected_goals": 0,
                "goal_probability": 0.0,
                "assists": 0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "fifa_overall": 82.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 0.0,
                "squad_weight_total": 9.9138,
                "weight_share": 0.0,
                "position_multiplier": 0.0
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0,
                "rating": 7.1067,
                "minutes": 91,
                "total_pass": 21,
                "accurate_pass": 15,
                "duels_won": 0,
                "total_long_balls": 8,
                "accurate_long_balls": 3,
                "touches": 38,
                "clearances": 2,
                "ball_recovery": 12,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 5.7847,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 14,
                "expected_saves": 1.16,
                "high_pressure_saves": 0.44,
                "shots_faced": 2.5,
                "opponent_faced": "Jones El-Abdellaoui, Ferrán Jutglà",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "goals": 0,
                "projected_goals": 0,
                "goal_probability": 0.0,
                "assists": 0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "fifa_overall": 82.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0,
                "provider_weight": 0.0,
                "squad_weight_total": 8.8875,
                "weight_share": 0.0,
                "position_multiplier": 0.0
              }
            }
          ]
        },
        "Jeanuël Belocian": {
          "player_id": 1173172,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 24,
          "height": 186,
          "market_value": 12900000,
          "stats": {
            "interceptions": 1,
            "tackles": 1,
            "tackles_won": 1,
            "clearances": 4,
            "aerial_won": 1,
            "rating": 6.7646,
            "minutes": 36,
            "total_pass": 17,
            "accurate_pass": 16,
            "duels_won": 5,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 7,
            "accurate_own_half_passes": 7,
            "total_opp_half_passes": 10,
            "accurate_opp_half_passes": 9,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 27,
            "possession_lost": 2.0335,
            "dispossessed": 0.0,
            "duels_lost": 2,
            "aerial_lost": 1,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 3,
            "challenges_lost": 0,
            "fouls": 1,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_goals": 0.111,
            "expected_assists": 0.0203,
            "total_shots": 1,
            "shots_on_target": 0,
            "shots_off_target": 1,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 5,
            "total_progression": 28,
            "progressive_carries": 1,
            "key_pass": 0,
            "tackles_in_zone": 1.0,
            "tackles_won_in_zone": 1.1,
            "interceptions_in_zone": 0.9,
            "clearances_in_zone": 0.8,
            "aerial_duels_won": 0.8,
            "defensive_success_rate": 0.82,
            "opponent_faced": "Ferrán Jutglà",
            "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.0451,
            "projected_assists": 0,
            "assist_probability": 0.0098,
            "fifa_overall": 71.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16416328.0,
              "match_date": "2026-09-12 12: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": "R. Racing Club",
              "away_team": "Alavés",
              "home_score_current": 2.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": "R. Racing Club",
              "opponent": "Alavés",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16416321.0,
              "match_date": "2026-09-05",
              "home_team": "Rayo Vallecano",
              "away_team": "Real Racing Club",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Racing Club",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 35,
                "rating": 7.2,
                "assists": 0,
                "expected_goals": 0.0877,
                "expected_assists": 0.0245,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 17,
                "accurate_pass": 16,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 4,
                "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"
            }
          ],
          "ranking": {
            "global_player_rank": 4828,
            "combined_rank_score": 2910.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 941.0,
            "sofascore_rating": 6.45,
            "sofascore_appearances": 2.0,
            "fifa_rank": 4880.0,
            "fifa_overall": 71.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 2,
            "squad_role": "starter",
            "projected_match_rating": 6.7646,
            "source_file": "data/player_rankings.csv",
            "player_name": "Jeanuël Belocian",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Copete",
                  "ranking": 4823
                },
                {
                  "player_name": "Dubasin",
                  "ranking": 4824
                },
                {
                  "player_name": "Ruairi McConville",
                  "ranking": 4825
                },
                {
                  "player_name": "Lorenzo Bernasconi",
                  "ranking": 4826
                },
                {
                  "player_name": "Peque",
                  "ranking": 4827
                }
              ],
              "lower": [
                {
                  "player_name": "Max Alleyne",
                  "ranking": 4829
                },
                {
                  "player_name": "Herrando",
                  "ranking": 4830
                },
                {
                  "player_name": "Nectarios Triantis",
                  "ranking": 4831
                },
                {
                  "player_name": "Andy Polo",
                  "ranking": 4832
                },
                {
                  "player_name": "Daniel Bentley",
                  "ranking": 4833
                }
              ]
            }
          },
          "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",
              "rating"
            ],
            "history_matches": 1,
            "data_confidence": 0.312,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 1.0168,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (D_service) evaluated 1 historical appearances across 6 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 6 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "rating": 6.653,
                "minutes": 35,
                "total_pass": 17,
                "accurate_pass": 16,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 9,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 27,
                "possession_lost": 2.0,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 1,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.09,
                "expected_assists": 0.02,
                "total_shots": 1,
                "shots_on_target": 0,
                "shots_off_target": 1,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 28,
                "progressive_carries": 1,
                "key_pass": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:44.724055+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 374,
                    "rows": 1289
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Rayo Vallecano",
                    "minutes": 35.0,
                    "is_starting": false,
                    "weight": 1.0,
                    "rating": 7.2
                  }
                ],
                "feature_row": {
                  "history_matches": 1.0,
                  "is_starting_11": 1.0,
                  "accuratePass": 16.0,
                  "touches_p90": 69.4286,
                  "possessionLostCtrl": 2.0,
                  "totalClearance": 5.0,
                  "aerialWon": 4.0
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 1.0426079034805298,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0944
                      },
                      {
                        "name": "duel_win_rate",
                        "importance": 0.0353
                      },
                      {
                        "name": "duelWon_p90",
                        "importance": 0.0341
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0326
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0322
                      }
                    ],
                    "decomposition": {
                      "base": 0.9108,
                      "items": [
                        {
                          "name": "duelWon_p90",
                          "contribution": 0.1275
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0632
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0394
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": 0.0215
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0191
                        }
                      ],
                      "others": -0.0219,
                      "total": 1.0426
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.2591352462768555,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0588
                      },
                      {
                        "name": "duelLost",
                        "importance": 0.0461
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0446
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0406
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0401
                      }
                    ],
                    "decomposition": {
                      "base": 1.3553,
                      "items": [
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0517
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.048
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0442
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0401
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0312
                        }
                      ],
                      "others": 0.0156,
                      "total": 1.2591
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.5563955903053284,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0565
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0432
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0353
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0347
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0329
                      }
                    ],
                    "decomposition": {
                      "base": 0.8675,
                      "items": [
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.0736
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": -0.0595
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0389
                        },
                        {
                          "name": "tackle_success_rate",
                          "contribution": -0.0318
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0275
                        }
                      ],
                      "others": -0.0798,
                      "total": 0.5564
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 3.9703240394592285,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0506
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0425
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0417
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 3.4032,
                      "items": [
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.5165
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.3799
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.3445
                        },
                        {
                          "name": "aerialWon",
                          "contribution": 0.3654
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.3292
                        }
                      ],
                      "others": -0.3354,
                      "total": 3.9703
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 1.206022024154663,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0798
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0597
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0439
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0426
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0411
                      }
                    ],
                    "decomposition": {
                      "base": 1.2421,
                      "items": [
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.0689
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0615
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0528
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.0429
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.042
                        }
                      ],
                      "others": 0.0424,
                      "total": 1.206
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.653021812438965,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches_p90",
                        "importance": 0.0708
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0705
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0537
                      },
                      {
                        "name": "pass_accuracy",
                        "importance": 0.0518
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 6.6627,
                      "items": [
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0601
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0486
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0365
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0287
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": -0.0285
                        }
                      ],
                      "others": 0.0151,
                      "total": 6.653
                    }
                  }
                ],
                "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.0168, quality 0.556)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "rating": 6.7646,
                "minutes": 36,
                "total_pass": 17,
                "accurate_pass": 16,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 9,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 27,
                "possession_lost": 2.0335,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 1,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0915,
                "expected_assists": 0.0203,
                "total_shots": 1,
                "shots_on_target": 0,
                "shots_off_target": 1,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 28,
                "progressive_carries": 1,
                "key_pass": 0
              },
              "params": {
                "market_value_eur": 12900000,
                "quality_factor": 0.5559,
                "boost_factor": 1.0168
              }
            },
            {
              "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,
                "rating": 6.7646,
                "minutes": 36,
                "total_pass": 17,
                "accurate_pass": 16,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 9,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 27,
                "possession_lost": 2.0335,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 1,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0915,
                "expected_assists": 0.0203,
                "total_shots": 1,
                "shots_on_target": 0,
                "shots_off_target": 1,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 28,
                "progressive_carries": 1,
                "key_pass": 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,
                "rating": 6.7646,
                "minutes": 36,
                "total_pass": 17,
                "accurate_pass": 16,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 9,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 27,
                "possession_lost": 2.0335,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 1,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0915,
                "expected_assists": 0.0203,
                "total_shots": 1,
                "shots_on_target": 0,
                "shots_off_target": 1,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 28,
                "progressive_carries": 1,
                "key_pass": 0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.1,
                "interceptions_in_zone": 0.9,
                "clearances_in_zone": 0.8,
                "aerial_duels_won": 0.8,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Ferrán Jutglà",
                "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": "Ferrán Jutglà",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.8388, xG scale 1.2136)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "rating": 6.7646,
                "minutes": 36,
                "total_pass": 17,
                "accurate_pass": 16,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 9,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 27,
                "possession_lost": 2.0335,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 1,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.111,
                "expected_assists": 0.0203,
                "total_shots": 1,
                "shots_on_target": 0,
                "shots_off_target": 1,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 28,
                "progressive_carries": 1,
                "key_pass": 0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.1,
                "interceptions_in_zone": 0.9,
                "clearances_in_zone": 0.8,
                "aerial_duels_won": 0.8,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Ferrán Jutglà",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.018,
                "squad_xg_sum": 0.8388,
                "xg_scale": 1.2136,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0915,
                  "after": 0.111
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 2, fifa_overall 71.0)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "rating": 6.7646,
                "minutes": 36,
                "total_pass": 17,
                "accurate_pass": 16,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 9,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 27,
                "possession_lost": 2.0335,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 1,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.111,
                "expected_assists": 0.0203,
                "total_shots": 1,
                "shots_on_target": 0,
                "shots_off_target": 1,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 28,
                "progressive_carries": 1,
                "key_pass": 0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.1,
                "interceptions_in_zone": 0.9,
                "clearances_in_zone": 0.8,
                "aerial_duels_won": 0.8,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Ferrán Jutglà",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 71.0
              },
              "params": {
                "match_squad_rank": 2,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 4828,
                "fifa_rank": 4880.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 71.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "rating": 6.7646,
                "minutes": 36,
                "total_pass": 17,
                "accurate_pass": 16,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 9,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 27,
                "possession_lost": 2.0335,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 1,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.111,
                "expected_assists": 0.0203,
                "total_shots": 1,
                "shots_on_target": 0,
                "shots_off_target": 1,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 28,
                "progressive_carries": 1,
                "key_pass": 0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.1,
                "interceptions_in_zone": 0.9,
                "clearances_in_zone": 0.8,
                "aerial_duels_won": 0.8,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Ferrán Jutglà",
                "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.0451,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 71.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0451,
                "scorer_weight": 0.4472,
                "squad_weight_total": 9.9138,
                "weight_share": 0.0451,
                "position_multiplier": 0.38
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "rating": 6.7646,
                "minutes": 36,
                "total_pass": 17,
                "accurate_pass": 16,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 9,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 27,
                "possession_lost": 2.0335,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 1,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.111,
                "expected_assists": 0.0203,
                "total_shots": 1,
                "shots_on_target": 0,
                "shots_off_target": 1,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 28,
                "progressive_carries": 1,
                "key_pass": 0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.1,
                "interceptions_in_zone": 0.9,
                "clearances_in_zone": 0.8,
                "aerial_duels_won": 0.8,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Ferrán Jutglà",
                "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.0451,
                "projected_assists": 0,
                "assist_probability": 0.0098,
                "fifa_overall": 71.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0098,
                "provider_weight": 0.0869,
                "squad_weight_total": 8.8875,
                "weight_share": 0.0098,
                "position_multiplier": 0.45
              }
            }
          ]
        },
        "Jorge Salinas": {
          "player_id": 1861680,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 17,
          "height": 181,
          "market_value": 8500000,
          "stats": {
            "interceptions": 1,
            "tackles": 2,
            "tackles_won": 1,
            "clearances": 4,
            "aerial_won": 1,
            "rating": 6.6388,
            "minutes": 90,
            "total_pass": 30,
            "accurate_pass": 23,
            "duels_won": 8,
            "total_long_balls": 3,
            "accurate_long_balls": 0,
            "total_own_half_passes": 16,
            "accurate_own_half_passes": 12,
            "total_opp_half_passes": 13,
            "accurate_opp_half_passes": 11,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 58,
            "possession_lost": 12.0168,
            "dispossessed": 0.0,
            "duels_lost": 6,
            "aerial_lost": 0,
            "total_contest": 2,
            "won_contest": 0,
            "ball_recovery": 4,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 2,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0801,
            "total_shots": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 10,
            "total_progression": 36,
            "progressive_carries": 1,
            "key_pass": 0,
            "tackles_in_zone": 1.0,
            "tackles_won_in_zone": 1.1,
            "interceptions_in_zone": 0.8,
            "clearances_in_zone": 0.7,
            "aerial_duels_won": 0.8,
            "defensive_success_rate": 0.82,
            "opponent_faced": "Ferrán Jutglà",
            "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.0156,
            "projected_assists": 0,
            "assist_probability": 0.0212,
            "fifa_overall": 72.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16416328.0,
              "match_date": "2026-09-12 12: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": "R. Racing Club",
              "away_team": "Alavés",
              "home_score_current": 2.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": "R. Racing Club",
              "opponent": "Alavés",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16416321.0,
              "match_date": "2026-09-05",
              "home_team": "Rayo Vallecano",
              "away_team": "Real Racing Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Racing Club",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assists": 0,
                "expected_assists": 0.0077,
                "total_shots": 0,
                "total_pass": 27,
                "accurate_pass": 20,
                "tackles": 4,
                "tackles_won": 3,
                "interceptions": 2,
                "clearances": 7,
                "aerial_won": 2,
                "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": 16416304.0,
              "match_date": "2026-08-28",
              "home_team": "Real Racing Club",
              "away_team": "Elche",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Racing Club",
              "opponent": "Elche",
              "stats": {
                "minutes": 90,
                "rating": 6.2,
                "assists": 0,
                "expected_goals": 0.2144,
                "expected_assists": 0.0116,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 22,
                "accurate_pass": 16,
                "tackles": 5,
                "tackles_won": 1,
                "clearances": 6,
                "aerial_won": 2,
                "duels_won": 8,
                "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": 16416300.0,
              "match_date": "2026-08-23",
              "home_team": "Getafe",
              "away_team": "Real Racing Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Racing Club",
              "opponent": "Getafe",
              "stats": {
                "minutes": 90,
                "rating": 7.1,
                "assists": 0,
                "expected_assists": 0.173,
                "total_shots": 0,
                "total_pass": 30,
                "accurate_pass": 25,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 5,
                "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": 16421061.0,
              "match_date": "2026-08-16",
              "home_team": "Real Racing Club",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Racing Club",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assists": 0,
                "expected_assists": 0.1301,
                "total_shots": 0,
                "total_pass": 39,
                "accurate_pass": 31,
                "key_pass": 1,
                "tackles": 5,
                "tackles_won": 2,
                "interceptions": 2,
                "clearances": 4,
                "aerial_won": 2,
                "duels_won": 9,
                "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": 4331,
            "combined_rank_score": 2343.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 445.0,
            "sofascore_rating": 6.9,
            "sofascore_appearances": 1.0,
            "fifa_rank": 4242.0,
            "fifa_overall": 72.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 5,
            "squad_role": "starter",
            "projected_match_rating": 6.6388,
            "source_file": "data/player_rankings.csv",
            "player_name": "Jorge Salinas",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Roberto Piccoli",
                  "ranking": 4326
                },
                {
                  "player_name": "Thijs Dallinga",
                  "ranking": 4327
                },
                {
                  "player_name": "Abel Hernández",
                  "ranking": 4328
                },
                {
                  "player_name": "Enrico Delprato",
                  "ranking": 4329
                },
                {
                  "player_name": "Hans Nicolussi Caviglia",
                  "ranking": 4330
                }
              ],
              "lower": [
                {
                  "player_name": "Ivan Ilić",
                  "ranking": 4332
                },
                {
                  "player_name": "Emanuele Valeri",
                  "ranking": 4333
                },
                {
                  "player_name": "Devyne Rensch",
                  "ranking": 4334
                },
                {
                  "player_name": "Fabiano Parisi",
                  "ranking": 4335
                },
                {
                  "player_name": "Mandela Keita",
                  "ranking": 4336
                }
              ]
            }
          },
          "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",
              "rating"
            ],
            "history_matches": 4,
            "data_confidence": 0.5,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 1.0014,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (D_service) evaluated 4 historical appearances across 6 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 6 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "rating": 6.6295,
                "minutes": 90,
                "total_pass": 30,
                "accurate_pass": 23,
                "duels_won": 8,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 16,
                "accurate_own_half_passes": 12,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 58,
                "possession_lost": 12.0,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.08,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 36,
                "progressive_carries": 0,
                "key_pass": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:44.724055+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 374,
                    "rows": 1289
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Rayo Vallecano",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3138,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Elche",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2667,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Getafe",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2267,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-08-16",
                    "opponent": "Villarreal",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1927,
                    "rating": 6.9
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 1.0,
                  "accuratePass": 22.1866,
                  "touches_p90": 56.9509,
                  "possessionLostCtrl": 11.6689,
                  "totalClearance": 5.7016,
                  "aerialWon": 2.0
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 1.0464361906051636,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0944
                      },
                      {
                        "name": "duel_win_rate",
                        "importance": 0.0353
                      },
                      {
                        "name": "duelWon_p90",
                        "importance": 0.0341
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0326
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0322
                      }
                    ],
                    "decomposition": {
                      "base": 0.9108,
                      "items": [
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0439
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0362
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": 0.0121
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": 0.0114
                        },
                        {
                          "name": "challengeLost",
                          "contribution": 0.0113
                        }
                      ],
                      "others": 0.0207,
                      "total": 1.0464
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 2.255011796951294,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0588
                      },
                      {
                        "name": "duelLost",
                        "importance": 0.0461
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0446
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0406
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0401
                      }
                    ],
                    "decomposition": {
                      "base": 1.3553,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.1576
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": 0.1571
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.153
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.1325
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.1243
                        }
                      ],
                      "others": 0.1752,
                      "total": 2.255
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 1.1389284133911133,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0565
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0432
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0353
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0347
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0329
                      }
                    ],
                    "decomposition": {
                      "base": 0.8675,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.1308
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.1206
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0685
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": 0.0663
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.039
                        }
                      ],
                      "others": 0.1654,
                      "total": 1.1389
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 4.472602844238281,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0506
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0425
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0417
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 3.4032,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.3554
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.3108
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.2333
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.1749
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": 0.1643
                        }
                      ],
                      "others": 0.2973,
                      "total": 4.4726
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 1.2760533094406128,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0798
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0597
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0439
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0426
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0411
                      }
                    ],
                    "decomposition": {
                      "base": 1.2421,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0614
                        },
                        {
                          "name": "totalClearance",
                          "contribution": 0.0559
                        },
                        {
                          "name": "aerialWon",
                          "contribution": 0.0578
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0503
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0433
                        }
                      ],
                      "others": -0.1481,
                      "total": 1.2761
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.629465579986572,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches_p90",
                        "importance": 0.0708
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0705
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0537
                      },
                      {
                        "name": "pass_accuracy",
                        "importance": 0.0518
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 6.6627,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0446
                        },
                        {
                          "name": "wonTackle",
                          "contribution": -0.0307
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0221
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0173
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": 0.0147
                        }
                      ],
                      "others": 0.0226,
                      "total": 6.6295
                    }
                  }
                ],
                "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.0014, quality 0.505)",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "rating": 6.6388,
                "minutes": 90,
                "total_pass": 30,
                "accurate_pass": 23,
                "duels_won": 8,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 16,
                "accurate_own_half_passes": 12,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 58,
                "possession_lost": 12.0168,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0801,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 36,
                "progressive_carries": 1,
                "key_pass": 0
              },
              "params": {
                "market_value_eur": 8500000,
                "quality_factor": 0.5047,
                "boost_factor": 1.0014
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "rating": 6.6388,
                "minutes": 90,
                "total_pass": 30,
                "accurate_pass": 23,
                "duels_won": 8,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 16,
                "accurate_own_half_passes": 12,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 58,
                "possession_lost": 12.0168,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0801,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 36,
                "progressive_carries": 1,
                "key_pass": 0
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "rating": 6.6388,
                "minutes": 90,
                "total_pass": 30,
                "accurate_pass": 23,
                "duels_won": 8,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 16,
                "accurate_own_half_passes": 12,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 58,
                "possession_lost": 12.0168,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0801,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 36,
                "progressive_carries": 1,
                "key_pass": 0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.1,
                "interceptions_in_zone": 0.8,
                "clearances_in_zone": 0.7,
                "aerial_duels_won": 0.8,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Ferrán Jutglà",
                "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": "Ferrán Jutglà",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.8388, xG scale 1.2136)",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "rating": 6.6388,
                "minutes": 90,
                "total_pass": 30,
                "accurate_pass": 23,
                "duels_won": 8,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 16,
                "accurate_own_half_passes": 12,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 58,
                "possession_lost": 12.0168,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0801,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 36,
                "progressive_carries": 1,
                "key_pass": 0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.1,
                "interceptions_in_zone": 0.8,
                "clearances_in_zone": 0.7,
                "aerial_duels_won": 0.8,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Ferrán Jutglà",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.018,
                "squad_xg_sum": 0.8388,
                "xg_scale": 1.2136,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 5, fifa_overall 72.0)",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "rating": 6.6388,
                "minutes": 90,
                "total_pass": 30,
                "accurate_pass": 23,
                "duels_won": 8,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 16,
                "accurate_own_half_passes": 12,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 58,
                "possession_lost": 12.0168,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0801,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 36,
                "progressive_carries": 1,
                "key_pass": 0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.1,
                "interceptions_in_zone": 0.8,
                "clearances_in_zone": 0.7,
                "aerial_duels_won": 0.8,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Ferrán Jutglà",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 72.0
              },
              "params": {
                "match_squad_rank": 5,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 4331,
                "fifa_rank": 4242.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 72.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "rating": 6.6388,
                "minutes": 90,
                "total_pass": 30,
                "accurate_pass": 23,
                "duels_won": 8,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 16,
                "accurate_own_half_passes": 12,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 58,
                "possession_lost": 12.0168,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0801,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 36,
                "progressive_carries": 1,
                "key_pass": 0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.1,
                "interceptions_in_zone": 0.8,
                "clearances_in_zone": 0.7,
                "aerial_duels_won": 0.8,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Ferrán Jutglà",
                "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.0156,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 72.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0156,
                "scorer_weight": 0.1545,
                "squad_weight_total": 9.9138,
                "weight_share": 0.0156,
                "position_multiplier": 0.38
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "rating": 6.6388,
                "minutes": 90,
                "total_pass": 30,
                "accurate_pass": 23,
                "duels_won": 8,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 16,
                "accurate_own_half_passes": 12,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 58,
                "possession_lost": 12.0168,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0801,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 36,
                "progressive_carries": 1,
                "key_pass": 0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 1.1,
                "interceptions_in_zone": 0.8,
                "clearances_in_zone": 0.7,
                "aerial_duels_won": 0.8,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Ferrán Jutglà",
                "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.0156,
                "projected_assists": 0,
                "assist_probability": 0.0212,
                "fifa_overall": 72.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0212,
                "provider_weight": 0.1882,
                "squad_weight_total": 8.8875,
                "weight_share": 0.0212,
                "position_multiplier": 0.45
              }
            }
          ]
        },
        "Facundo González": {
          "player_id": 1085103,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 16,
          "height": 193,
          "market_value": 3100000,
          "stats": {
            "interceptions": 1,
            "tackles": 1,
            "tackles_won": 1,
            "clearances": 4,
            "aerial_won": 1,
            "rating": 6.5986,
            "minutes": 41,
            "total_pass": 16,
            "accurate_pass": 31,
            "duels_won": 4,
            "total_long_balls": 2,
            "accurate_long_balls": 0,
            "total_own_half_passes": 0,
            "accurate_own_half_passes": 0,
            "total_opp_half_passes": 5,
            "accurate_opp_half_passes": 0,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 22,
            "possession_lost": 3.1902,
            "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,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0,
            "total_shots": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 0,
            "total_progression": 0,
            "progressive_carries": 0,
            "key_pass": 0,
            "opponent_faced": "Ferrán Jutglà",
            "matchup_zone": "Shape fallback",
            "antagonist_source": "formation_fallback",
            "projected_goals": 0,
            "goal_probability": 0.0564,
            "projected_assists": 0,
            "assist_probability": 0.0056,
            "fifa_overall": 69.0
          },
          "latest_10_games": [
            {
              "match_id": 16416321.0,
              "match_date": "2026-09-05",
              "home_team": "Rayo Vallecano",
              "away_team": "Real Racing Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Racing Club",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 55,
                "rating": 5.9,
                "assists": 0,
                "expected_assists": 0.0002,
                "total_shots": 0,
                "total_pass": 18,
                "accurate_pass": 15,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 4,
                "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": 16416304.0,
              "match_date": "2026-08-28",
              "home_team": "Real Racing Club",
              "away_team": "Elche",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Racing Club",
              "opponent": "Elche",
              "stats": {
                "minutes": 90,
                "rating": 6.2,
                "assists": 0,
                "expected_assists": 0.0022,
                "total_shots": 0,
                "total_pass": 36,
                "accurate_pass": 31,
                "interceptions": 1,
                "clearances": 6,
                "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": 16416300.0,
              "match_date": "2026-08-23",
              "home_team": "Getafe",
              "away_team": "Real Racing Club",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Racing Club",
              "opponent": "Getafe",
              "stats": {
                "minutes": 9,
                "rating": 6.6,
                "assists": 0,
                "expected_assists": 0.0017,
                "total_shots": 0,
                "total_pass": 8,
                "accurate_pass": 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": 16421061.0,
              "match_date": "2026-08-16",
              "home_team": "Real Racing Club",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Racing Club",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 13,
                "rating": 6.7,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 2,
                "tackles": 1,
                "clearances": 1,
                "aerial_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"
            }
          ],
          "ranking": {
            "global_player_rank": 5579,
            "combined_rank_score": 3836.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 698.0,
            "sofascore_rating": 6.7,
            "sofascore_appearances": 1.0,
            "fifa_rank": 6974.0,
            "fifa_overall": 69.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 13,
            "squad_role": "starter",
            "projected_match_rating": 6.5986,
            "source_file": "data/player_rankings.csv",
            "player_name": "Facundo González",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Ivan Schranz",
                  "ranking": 5574
                },
                {
                  "player_name": "Marcel Tisserand",
                  "ranking": 5575
                },
                {
                  "player_name": "Alex Grant",
                  "ranking": 5576
                },
                {
                  "player_name": "Carlos Rivero",
                  "ranking": 5577
                },
                {
                  "player_name": "Gonzalo Perez",
                  "ranking": 5578
                }
              ],
              "lower": [
                {
                  "player_name": "Cristián Cuevas",
                  "ranking": 5580
                },
                {
                  "player_name": "Paweł Wszołek",
                  "ranking": 5581
                },
                {
                  "player_name": "Giorgi Kvernadze",
                  "ranking": 5582
                },
                {
                  "player_name": "Mateusz Wieteska",
                  "ranking": 5583
                },
                {
                  "player_name": "Ondrej Lingr",
                  "ranking": 5584
                }
              ]
            }
          },
          "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",
              "rating"
            ],
            "history_matches": 4,
            "data_confidence": 0.5,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 0.9816,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (D_service) evaluated 4 historical appearances across 6 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 6 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "rating": 6.7223,
                "minutes": 42,
                "total_pass": 16,
                "accurate_pass": 32,
                "duels_won": 4,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 5,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 23,
                "possession_lost": 3.25,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "key_pass": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:44.724055+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 374,
                    "rows": 1289
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Rayo Vallecano",
                    "minutes": 55.0,
                    "is_starting": true,
                    "weight": 0.3138,
                    "rating": 5.9
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Elche",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2667,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Getafe",
                    "minutes": 9.0,
                    "is_starting": false,
                    "weight": 0.2267,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-08-16",
                    "opponent": "Villarreal",
                    "minutes": 13.0,
                    "is_starting": false,
                    "weight": 0.1927,
                    "rating": 6.7
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 1.0,
                  "accuratePass": 14.3365,
                  "touches_p90": 53.7045,
                  "possessionLostCtrl": 3.3408,
                  "totalClearance": 3.0484,
                  "aerialWon": 1.04
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.9385853409767151,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0944
                      },
                      {
                        "name": "duel_win_rate",
                        "importance": 0.0353
                      },
                      {
                        "name": "duelWon_p90",
                        "importance": 0.0341
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0326
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0322
                      }
                    ],
                    "decomposition": {
                      "base": 0.9108,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0442
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0278
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0189
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": 0.0126
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0125
                        }
                      ],
                      "others": -0.0254,
                      "total": 0.9386
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.1470876932144165,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0588
                      },
                      {
                        "name": "duelLost",
                        "importance": 0.0461
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0446
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0406
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0401
                      }
                    ],
                    "decomposition": {
                      "base": 1.3553,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0717
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0669
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0434
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0374
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0373
                        }
                      ],
                      "others": -0.0261,
                      "total": 1.1471
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.5849485993385315,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0565
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0432
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0353
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0347
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0329
                      }
                    ],
                    "decomposition": {
                      "base": 0.8675,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.1093
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0541
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.0422
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0362
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0256
                        }
                      ],
                      "others": -0.0152,
                      "total": 0.5849
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 4.0862226486206055,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0506
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0425
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0417
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 3.4032,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.3597
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.2208
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.2153
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.1343
                        },
                        {
                          "name": "tackle_success_rate",
                          "contribution": 0.1315
                        }
                      ],
                      "others": -0.11,
                      "total": 4.0862
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 1.1203662157058716,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0798
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0597
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0439
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0426
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0411
                      }
                    ],
                    "decomposition": {
                      "base": 1.2421,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0631
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0526
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0495
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0417
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.0388
                        }
                      ],
                      "others": -0.0022,
                      "total": 1.1204
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.722265720367432,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches_p90",
                        "importance": 0.0708
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0705
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0537
                      },
                      {
                        "name": "pass_accuracy",
                        "importance": 0.0518
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 6.6627,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0693
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0683
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0373
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0288
                        },
                        {
                          "name": "press_vulnerability",
                          "contribution": 0.0212
                        }
                      ],
                      "others": 0.0479,
                      "total": 6.7223
                    }
                  }
                ],
                "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": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "rating": 6.5986,
                "minutes": 41,
                "total_pass": 16,
                "accurate_pass": 31,
                "duels_won": 4,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 5,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 22,
                "possession_lost": 3.1902,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "key_pass": 0
              },
              "params": {
                "market_value_eur": 3100000,
                "quality_factor": 0.4387,
                "boost_factor": 0.9816
              }
            },
            {
              "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,
                "rating": 6.5986,
                "minutes": 41,
                "total_pass": 16,
                "accurate_pass": 31,
                "duels_won": 4,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 5,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 22,
                "possession_lost": 3.1902,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "key_pass": 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,
                "rating": 6.5986,
                "minutes": 41,
                "total_pass": 16,
                "accurate_pass": 31,
                "duels_won": 4,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 5,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 22,
                "possession_lost": 3.1902,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "key_pass": 0,
                "opponent_faced": "Ferrán Jutglà",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Ferrán Jutglà",
                  "matchup_zone": "Shape fallback"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.8388, xG scale 1.2136)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "rating": 6.5986,
                "minutes": 41,
                "total_pass": 16,
                "accurate_pass": 31,
                "duels_won": 4,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 5,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 22,
                "possession_lost": 3.1902,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "key_pass": 0,
                "opponent_faced": "Ferrán Jutglà",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.018,
                "squad_xg_sum": 0.8388,
                "xg_scale": 1.2136,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 13, fifa_overall 69.0)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "rating": 6.5986,
                "minutes": 41,
                "total_pass": 16,
                "accurate_pass": 31,
                "duels_won": 4,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 5,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 22,
                "possession_lost": 3.1902,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "key_pass": 0,
                "opponent_faced": "Ferrán Jutglà",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 69.0
              },
              "params": {
                "match_squad_rank": 13,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 5579,
                "fifa_rank": 6974.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 69.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "rating": 6.5986,
                "minutes": 41,
                "total_pass": 16,
                "accurate_pass": 31,
                "duels_won": 4,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 5,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 22,
                "possession_lost": 3.1902,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "key_pass": 0,
                "opponent_faced": "Ferrán Jutglà",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0564,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 69.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0564,
                "scorer_weight": 0.5591,
                "squad_weight_total": 9.9138,
                "weight_share": 0.0564,
                "position_multiplier": 0.38
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "rating": 6.5986,
                "minutes": 41,
                "total_pass": 16,
                "accurate_pass": 31,
                "duels_won": 4,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 5,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 22,
                "possession_lost": 3.1902,
                "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,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "key_pass": 0,
                "opponent_faced": "Ferrán Jutglà",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0564,
                "projected_assists": 0,
                "assist_probability": 0.0056,
                "fifa_overall": 69.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0056,
                "provider_weight": 0.0495,
                "squad_weight_total": 8.8875,
                "weight_share": 0.0056,
                "position_multiplier": 0.45
              }
            }
          ]
        },
        "Andrés Martín": {
          "player_id": 922939,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 11,
          "height": 178,
          "market_value": 8199999,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.0956,
            "assists": 0,
            "expected_goals": 0.2317,
            "rating": 6.9434,
            "minutes": 80,
            "total_pass": 27,
            "accurate_pass": 20,
            "duels_won": 5,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 7,
            "accurate_own_half_passes": 6,
            "total_opp_half_passes": 19,
            "accurate_opp_half_passes": 14,
            "crosses_total": 4,
            "crosses_accurate": 0,
            "touches": 50,
            "possession_lost": 15.0049,
            "dispossessed": 0.0,
            "duels_lost": 5,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 2,
            "clearances": 0,
            "total_contest": 4,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 15,
            "total_progression": 48,
            "progressive_carries": 2,
            "total_shots": 2,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.7,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.401,
            "pressing_faced": "LOW",
            "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
            "numerical_situation": "1v1",
            "opponent_defenders": "Ilaix Moriba",
            "opponent_faced": "Ilaix Moriba",
            "antagonist_source": "attacking_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.096,
            "projected_assists": 0,
            "assist_probability": 0.1588,
            "fifa_overall": 77.0
          },
          "latest_10_games": [
            {
              "match_id": 16416304.0,
              "match_date": "2026-08-28",
              "home_team": "Real Racing Club",
              "away_team": "Elche",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Racing Club",
              "opponent": "Elche",
              "stats": {
                "minutes": 59,
                "rating": 7.4,
                "assists": 0,
                "expected_assists": 0.1443,
                "total_shots": 0,
                "total_pass": 17,
                "accurate_pass": 14,
                "key_pass": 3,
                "tackles": 1,
                "interceptions": 1,
                "clearances": 1,
                "duels_won": 7,
                "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": "away",
              "is_starting_11": 1,
              "team": "Real Racing Club",
              "opponent": "Getafe",
              "stats": {
                "minutes": 90,
                "rating": 5.6,
                "assists": 0,
                "expected_goals": 1.2234,
                "expected_assists": 0.0423,
                "total_shots": 3,
                "shots_on_target": 2,
                "shots_off_target": 1,
                "total_pass": 34,
                "accurate_pass": 27,
                "tackles": 1,
                "tackles_won": 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": 16421061.0,
              "match_date": "2026-08-16",
              "home_team": "Real Racing Club",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Racing Club",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 90,
                "rating": 7.5,
                "goal_rate": 1.0,
                "goals": 1,
                "assists": 0,
                "expected_goals": 1.1338,
                "expected_assists": 0.3458,
                "total_shots": 6,
                "shots_on_target": 1,
                "shots_off_target": 3,
                "total_pass": 29,
                "accurate_pass": 20,
                "key_pass": 3,
                "tackles": 3,
                "interceptions": 2,
                "duels_won": 7,
                "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"
            }
          ],
          "ranking": {
            "global_player_rank": 2264,
            "combined_rank_score": 827.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 91.0,
            "sofascore_rating": 7.5,
            "sofascore_appearances": 1.0,
            "fifa_rank": 1564.0,
            "fifa_overall": 77.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 6,
            "squad_role": "starter",
            "projected_match_rating": 6.9434,
            "source_file": "data/player_rankings.csv",
            "player_name": "Andrés Martín",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Mikel Vesga",
                  "ranking": 2259
                },
                {
                  "player_name": "Malo Gusto",
                  "ranking": 2260
                },
                {
                  "player_name": "Aldrix Jara",
                  "ranking": 2261
                },
                {
                  "player_name": "Yehor Yarmoliuk",
                  "ranking": 2262
                },
                {
                  "player_name": "Chimy Ávila",
                  "ranking": 2263
                }
              ],
              "lower": [
                {
                  "player_name": "Brais Méndez",
                  "ranking": 2265
                },
                {
                  "player_name": "Bafodé Diakité",
                  "ranking": 2266
                },
                {
                  "player_name": "Kwasi Sibo",
                  "ranking": 2267
                },
                {
                  "player_name": "Jordan Henderson",
                  "ranking": 2268
                },
                {
                  "player_name": "Andoni Gorosabel",
                  "ranking": 2269
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.438,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.438,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 1.0003,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (M_service) evaluated 3 historical appearances across 5 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 5 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0955,
                "assists": 0,
                "expected_goals": 0.1908,
                "rating": 6.9412,
                "minutes": 80,
                "total_pass": 27,
                "accurate_pass": 20,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 6,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 14,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 50,
                "possession_lost": 15.0,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 4,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 48,
                "progressive_carries": 2
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:48.236605+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Elche",
                    "minutes": 59.0,
                    "is_starting": true,
                    "weight": 0.3887,
                    "rating": 7.4
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Getafe",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3304,
                    "rating": 5.6
                  },
                  {
                    "match_date": "2026-08-16",
                    "opponent": "Villarreal",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2809,
                    "rating": 7.5
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 1.0,
                  "ballRecovery_p90": 5.1657,
                  "ballRecovery": 4.553,
                  "intensity_index": 10.8524,
                  "expectedAssists": 0.1672,
                  "kilometersCovered": 9.3281
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 1.1316678524017334,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.091
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0422
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0367
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0326
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": -0.0303
                        }
                      ],
                      "others": 0.0638,
                      "total": 1.1317
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.09552284330129623,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.0137
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0073
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0048
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0026
                        },
                        {
                          "name": "cross_accuracy",
                          "contribution": -0.0025
                        }
                      ],
                      "others": -0.0087,
                      "total": 0.0955
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.14251212775707245,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0228
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0116
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.0085
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": -0.003
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": 0.0029
                        }
                      ],
                      "others": 0.0041,
                      "total": 0.1425
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.1908119171857834,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0245
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0096
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": -0.0091
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0084
                        },
                        {
                          "name": "intensity_index",
                          "contribution": 0.0083
                        }
                      ],
                      "others": 0.0404,
                      "total": 0.1908
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.941177845001221,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0249
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0221
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0213
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0159
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": 0.015
                        }
                      ],
                      "others": 0.0102,
                      "total": 6.9412
                    }
                  }
                ],
                "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.0003, quality 0.501)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0956,
                "assists": 0,
                "expected_goals": 0.1909,
                "rating": 6.9434,
                "minutes": 80,
                "total_pass": 27,
                "accurate_pass": 20,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 6,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 14,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 50,
                "possession_lost": 15.0049,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 4,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 48,
                "progressive_carries": 2
              },
              "params": {
                "market_value_eur": 8199999,
                "quality_factor": 0.5011,
                "boost_factor": 1.0003
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0956,
                "assists": 0,
                "expected_goals": 0.1909,
                "rating": 6.9434,
                "minutes": 80,
                "total_pass": 27,
                "accurate_pass": 20,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 6,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 14,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 50,
                "possession_lost": 15.0049,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 4,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 48,
                "progressive_carries": 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": 1,
                "expected_assists": 0.0956,
                "assists": 0,
                "expected_goals": 0.1909,
                "rating": 6.9434,
                "minutes": 80,
                "total_pass": 27,
                "accurate_pass": 20,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 6,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 14,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 50,
                "possession_lost": 15.0049,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 4,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 48,
                "progressive_carries": 2,
                "total_shots": 2,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.401,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Ilaix Moriba",
                "opponent_faced": "Ilaix Moriba",
                "antagonist_source": "attacking_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Ilaix Moriba",
                  "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                  "duel_win_rate": 0.401,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v1"
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.0,
                  "after": 1.0
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.8388, xG scale 1.2136)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0956,
                "assists": 0,
                "expected_goals": 0.2317,
                "rating": 6.9434,
                "minutes": 80,
                "total_pass": 27,
                "accurate_pass": 20,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 6,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 14,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 50,
                "possession_lost": 15.0049,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 4,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 48,
                "progressive_carries": 2,
                "total_shots": 2,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.401,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Ilaix Moriba",
                "opponent_faced": "Ilaix Moriba",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.018,
                "squad_xg_sum": 0.8388,
                "xg_scale": 1.2136,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.1909,
                  "after": 0.2317
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 6, fifa_overall 77.0)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0956,
                "assists": 0,
                "expected_goals": 0.2317,
                "rating": 6.9434,
                "minutes": 80,
                "total_pass": 27,
                "accurate_pass": 20,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 6,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 14,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 50,
                "possession_lost": 15.0049,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 4,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 48,
                "progressive_carries": 2,
                "total_shots": 2,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.401,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Ilaix Moriba",
                "opponent_faced": "Ilaix Moriba",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 77.0
              },
              "params": {
                "match_squad_rank": 6,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 2264,
                "fifa_rank": 1564.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 77.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0956,
                "assists": 0,
                "expected_goals": 0.2317,
                "rating": 6.9434,
                "minutes": 80,
                "total_pass": 27,
                "accurate_pass": 20,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 6,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 14,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 50,
                "possession_lost": 15.0049,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 4,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 48,
                "progressive_carries": 2,
                "total_shots": 2,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.401,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Ilaix Moriba",
                "opponent_faced": "Ilaix Moriba",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.096,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 77.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.096,
                "scorer_weight": 0.9521,
                "squad_weight_total": 9.9138,
                "weight_share": 0.096,
                "position_multiplier": 0.78
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0956,
                "assists": 0,
                "expected_goals": 0.2317,
                "rating": 6.9434,
                "minutes": 80,
                "total_pass": 27,
                "accurate_pass": 20,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 6,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 14,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 50,
                "possession_lost": 15.0049,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 4,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 48,
                "progressive_carries": 2,
                "total_shots": 2,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.401,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Ilaix Moriba",
                "opponent_faced": "Ilaix Moriba",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.096,
                "projected_assists": 0,
                "assist_probability": 0.1588,
                "fifa_overall": 77.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.1588,
                "provider_weight": 1.4115,
                "squad_weight_total": 8.8875,
                "weight_share": 0.1588,
                "position_multiplier": 1.45
              }
            }
          ]
        },
        "Pablo García": {
          "player_id": 1893910,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 15,
          "height": 175,
          "market_value": 8199999,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.0392,
            "assists": 0,
            "expected_goals": 0.0638,
            "rating": 6.8148,
            "minutes": 35,
            "total_pass": 7,
            "accurate_pass": 6,
            "duels_won": 3,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 3,
            "accurate_own_half_passes": 3,
            "total_opp_half_passes": 4,
            "accurate_opp_half_passes": 4,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 16,
            "possession_lost": 0.0,
            "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": 2,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 5,
            "total_progression": 27,
            "progressive_carries": 2,
            "total_shots": 2,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.7,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.389,
            "pressing_faced": "LOW",
            "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
            "numerical_situation": "1v1",
            "opponent_defenders": "Ilaix Moriba",
            "opponent_faced": "Ilaix Moriba",
            "antagonist_source": "attacking_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.0458,
            "projected_assists": 0,
            "assist_probability": 0.1216,
            "fifa_overall": 70.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16416328.0,
              "match_date": "2026-09-12 12: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": "R. Racing Club",
              "away_team": "Alavés",
              "home_score_current": 2.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": "R. Racing Club",
              "opponent": "Alavés",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16416321.0,
              "match_date": "2026-09-05",
              "home_team": "Rayo Vallecano",
              "away_team": "Real Racing Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Racing Club",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 89,
                "rating": 7.7,
                "goal_rate": 1.0,
                "goals": 1,
                "assists": 0,
                "expected_goals": 0.1417,
                "expected_assists": 0.0041,
                "total_shots": 3,
                "shots_on_target": 2,
                "shots_off_target": 1,
                "total_pass": 9,
                "accurate_pass": 8,
                "tackles": 2,
                "tackles_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": 16416309.0,
              "match_date": "2026-08-29",
              "home_team": "Levante UD",
              "away_team": "Real Betis",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Betis",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 23,
                "rating": 6.2,
                "assists": 0,
                "expected_goals": 0.0894,
                "expected_assists": 0.007,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 6,
                "accurate_pass": 5,
                "key_pass": 1,
                "aerial_won": 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": 16421049.0,
              "match_date": "2026-08-25",
              "home_team": "Valencia",
              "away_team": "Real Betis",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Betis",
              "opponent": "Valencia",
              "stats": {
                "minutes": 11,
                "rating": 7.5,
                "goal_rate": 1.0,
                "goals": 1,
                "assists": 0,
                "expected_goals": 0.2814,
                "expected_assists": 0.0023,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 6,
                "accurate_pass": 6,
                "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_id": 16416293.0,
              "match_date": "2026-08-21",
              "home_team": "Real Betis",
              "away_team": "Real Sociedad",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Betis",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 17,
                "rating": 6.7,
                "assists": 0,
                "expected_goals": 0.0317,
                "expected_assists": 0.0322,
                "total_shots": 1,
                "total_pass": 6,
                "accurate_pass": 6,
                "key_pass": 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"
            }
          ],
          "ranking": {
            "global_player_rank": 5059,
            "combined_rank_score": 3247.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 578.0,
            "sofascore_rating": 6.8,
            "sofascore_appearances": 3.0,
            "fifa_rank": 5917.0,
            "fifa_overall": 70.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 7,
            "squad_role": "starter",
            "projected_match_rating": 6.8148,
            "source_file": "data/player_rankings.csv",
            "player_name": "Pablo García",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Philippe Sandler",
                  "ranking": 5054
                },
                {
                  "player_name": "Jordan Lotomba",
                  "ranking": 5055
                },
                {
                  "player_name": "Jhon Córdoba",
                  "ranking": 5056
                },
                {
                  "player_name": "Jari De Busser",
                  "ranking": 5057
                },
                {
                  "player_name": "Gijs Smal",
                  "ranking": 5058
                }
              ],
              "lower": [
                {
                  "player_name": "Jacob Trenskow",
                  "ranking": 5060
                },
                {
                  "player_name": "Virgil Ghiță",
                  "ranking": 5061
                },
                {
                  "player_name": "Daan Rots",
                  "ranking": 5062
                },
                {
                  "player_name": "Thomas Beelen",
                  "ranking": 5063
                },
                {
                  "player_name": "Alexandre Penetra",
                  "ranking": 5064
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.5,
          "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",
              "rating"
            ],
            "history_matches": 4,
            "data_confidence": 0.5,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 1.0003,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (M_service) evaluated 4 historical appearances across 5 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 5 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0392,
                "assists": 0,
                "expected_goals": 0.0526,
                "rating": 6.8126,
                "minutes": 35,
                "total_pass": 7,
                "accurate_pass": 6,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 2,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "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": 2,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 27,
                "progressive_carries": 2
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:48.236605+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Rayo Vallecano",
                    "minutes": 89.0,
                    "is_starting": true,
                    "weight": 0.3138,
                    "rating": 7.7
                  },
                  {
                    "match_date": "2026-08-29",
                    "opponent": "Levante UD",
                    "minutes": 23.0,
                    "is_starting": false,
                    "weight": 0.2667,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-08-25",
                    "opponent": "Valencia",
                    "minutes": 11.0,
                    "is_starting": false,
                    "weight": 0.2267,
                    "rating": 7.5
                  },
                  {
                    "match_date": "2026-08-21",
                    "opponent": "Real Sociedad",
                    "minutes": 17.0,
                    "is_starting": false,
                    "weight": 0.1927,
                    "rating": 6.7
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 1.0,
                  "ballRecovery_p90": 7.7699,
                  "ballRecovery": 2.1211,
                  "intensity_index": 2.6628,
                  "expectedAssists": 0.0099,
                  "kilometersCovered": 1.8162
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.8129590153694153,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0746
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0647
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0645
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0411
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0291
                        }
                      ],
                      "others": -0.0693,
                      "total": 0.813
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.039194513112306595,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0211
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0076
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0063
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0044
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0039
                        }
                      ],
                      "others": -0.0104,
                      "total": 0.0392
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.06792247295379639,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.007
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0059
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0048
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0036
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0033
                        }
                      ],
                      "others": -0.0097,
                      "total": 0.0679
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.05255535617470741,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0169
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0129
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": -0.0097
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0066
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0063
                        }
                      ],
                      "others": -0.0163,
                      "total": 0.0526
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.812602996826172,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0309
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0259
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.021
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0207
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.02
                        }
                      ],
                      "others": 0.0475,
                      "total": 6.8126
                    }
                  }
                ],
                "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.0003, quality 0.501)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0392,
                "assists": 0,
                "expected_goals": 0.0526,
                "rating": 6.8148,
                "minutes": 35,
                "total_pass": 7,
                "accurate_pass": 6,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "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": 2,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 27,
                "progressive_carries": 2
              },
              "params": {
                "market_value_eur": 8199999,
                "quality_factor": 0.5011,
                "boost_factor": 1.0003
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0392,
                "assists": 0,
                "expected_goals": 0.0526,
                "rating": 6.8148,
                "minutes": 35,
                "total_pass": 7,
                "accurate_pass": 6,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "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": 2,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 27,
                "progressive_carries": 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": 1,
                "expected_assists": 0.0392,
                "assists": 0,
                "expected_goals": 0.0526,
                "rating": 6.8148,
                "minutes": 35,
                "total_pass": 7,
                "accurate_pass": 6,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 0.0,
                "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": 2,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 27,
                "progressive_carries": 2,
                "total_shots": 2,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.389,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Ilaix Moriba",
                "opponent_faced": "Ilaix Moriba",
                "antagonist_source": "attacking_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Ilaix Moriba",
                  "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                  "duel_win_rate": 0.389,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v1"
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.0,
                  "after": 0.9
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.8388, xG scale 1.2136)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0392,
                "assists": 0,
                "expected_goals": 0.0638,
                "rating": 6.8148,
                "minutes": 35,
                "total_pass": 7,
                "accurate_pass": 6,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 0.0,
                "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": 2,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 27,
                "progressive_carries": 2,
                "total_shots": 2,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.389,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Ilaix Moriba",
                "opponent_faced": "Ilaix Moriba",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.018,
                "squad_xg_sum": 0.8388,
                "xg_scale": 1.2136,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0526,
                  "after": 0.0638
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 7, fifa_overall 70.0)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0392,
                "assists": 0,
                "expected_goals": 0.0638,
                "rating": 6.8148,
                "minutes": 35,
                "total_pass": 7,
                "accurate_pass": 6,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 0.0,
                "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": 2,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 27,
                "progressive_carries": 2,
                "total_shots": 2,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.389,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Ilaix Moriba",
                "opponent_faced": "Ilaix Moriba",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 70.0
              },
              "params": {
                "match_squad_rank": 7,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 5059,
                "fifa_rank": 5917.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 70.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0392,
                "assists": 0,
                "expected_goals": 0.0638,
                "rating": 6.8148,
                "minutes": 35,
                "total_pass": 7,
                "accurate_pass": 6,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 0.0,
                "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": 2,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 27,
                "progressive_carries": 2,
                "total_shots": 2,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.389,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Ilaix Moriba",
                "opponent_faced": "Ilaix Moriba",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0458,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 70.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0458,
                "scorer_weight": 0.4545,
                "squad_weight_total": 9.9138,
                "weight_share": 0.0458,
                "position_multiplier": 0.78
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0392,
                "assists": 0,
                "expected_goals": 0.0638,
                "rating": 6.8148,
                "minutes": 35,
                "total_pass": 7,
                "accurate_pass": 6,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 0.0,
                "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": 2,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 27,
                "progressive_carries": 2,
                "total_shots": 2,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.389,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Ilaix Moriba",
                "opponent_faced": "Ilaix Moriba",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0458,
                "projected_assists": 0,
                "assist_probability": 0.1216,
                "fifa_overall": 70.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.1216,
                "provider_weight": 1.0805,
                "squad_weight_total": 8.8875,
                "weight_share": 0.1216,
                "position_multiplier": 1.45
              }
            }
          ]
        },
        "Iñigo Vicente": {
          "player_id": 605674,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 10,
          "height": 178,
          "market_value": 6600000,
          "stats": {
            "key_pass": 2,
            "expected_assists": 0.1392,
            "assists": 1,
            "expected_goals": 0.0608,
            "rating": 6.7672,
            "minutes": 84,
            "total_pass": 63,
            "accurate_pass": 47,
            "duels_won": 6,
            "total_long_balls": 8,
            "accurate_long_balls": 4,
            "total_own_half_passes": 18,
            "accurate_own_half_passes": 16,
            "total_opp_half_passes": 45,
            "accurate_opp_half_passes": 31,
            "crosses_total": 2,
            "crosses_accurate": 0,
            "touches": 79,
            "possession_lost": 21.631,
            "dispossessed": 0.0,
            "duels_lost": 6,
            "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": 1,
            "fouls_drawn": 2,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 22,
            "total_progression": 72,
            "progressive_carries": 2,
            "total_shots": 1,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.7,
            "crosses_attempted": 2.3,
            "duel_win_rate": 0.421,
            "pressing_faced": "LOW",
            "matchup_zone": "LWB vs RWB",
            "numerical_situation": "1v1",
            "opponent_defenders": "Hugo Álvarez",
            "opponent_faced": "Hugo Álvarez",
            "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.0407,
            "projected_assists": 1,
            "assist_probability": 0.2713,
            "fifa_overall": 77.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16416328.0,
              "match_date": "2026-09-12 12: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": "R. Racing Club",
              "away_team": "Alavés",
              "home_score_current": 2.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": "R. Racing Club",
              "opponent": "Alavés",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16416321.0,
              "match_date": "2026-09-05",
              "home_team": "Rayo Vallecano",
              "away_team": "Real Racing Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Racing Club",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assists": 0,
                "expected_assists": 0.3602,
                "total_shots": 0,
                "total_pass": 51,
                "accurate_pass": 35,
                "key_pass": 2,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 3,
                "clearances": 2,
                "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": 16416304.0,
              "match_date": "2026-08-28",
              "home_team": "Real Racing Club",
              "away_team": "Elche",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Racing Club",
              "opponent": "Elche",
              "stats": {
                "minutes": 69,
                "rating": 7.7,
                "assists": 1,
                "expected_assists": 0.678,
                "total_shots": 0,
                "total_pass": 52,
                "accurate_pass": 40,
                "key_pass": 6,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "duels_won": 2,
                "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": "away",
              "is_starting_11": 1,
              "team": "Real Racing Club",
              "opponent": "Getafe",
              "stats": {
                "minutes": 90,
                "rating": 6.5,
                "assists": 0,
                "expected_goals": 0.0415,
                "expected_assists": 0.1479,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 83,
                "accurate_pass": 60,
                "key_pass": 3,
                "clearances": 1,
                "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": 16421061.0,
              "match_date": "2026-08-16",
              "home_team": "Real Racing Club",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Racing Club",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 90,
                "rating": 8.0,
                "assists": 0,
                "expected_assists": 0.0953,
                "total_shots": 0,
                "total_pass": 66,
                "accurate_pass": 53,
                "key_pass": 1,
                "tackles": 3,
                "tackles_won": 1,
                "clearances": 1,
                "duels_won": 10,
                "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"
            }
          ],
          "ranking": {
            "global_player_rank": 2098,
            "combined_rank_score": 795.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 30.0,
            "sofascore_rating": 8.0,
            "sofascore_appearances": 1.0,
            "fifa_rank": 1561.0,
            "fifa_overall": 77.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 8,
            "squad_role": "starter",
            "projected_match_rating": 6.7672,
            "source_file": "data/player_rankings.csv",
            "player_name": "Iñigo Vicente",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Lee Sang-yong",
                  "ranking": 2093
                },
                {
                  "player_name": "Patrick McClafferty",
                  "ranking": 2094
                },
                {
                  "player_name": "Marko Vešović",
                  "ranking": 2095
                },
                {
                  "player_name": "Radoslav Kirilov",
                  "ranking": 2096
                },
                {
                  "player_name": "Zdravko Dimitrov",
                  "ranking": 2097
                }
              ],
              "lower": [
                {
                  "player_name": "Nahitan Nández",
                  "ranking": 2099
                },
                {
                  "player_name": "Lewis Cook",
                  "ranking": 2100
                },
                {
                  "player_name": "Keane Lewis-Potter",
                  "ranking": 2101
                },
                {
                  "player_name": "José Copete",
                  "ranking": 2102
                },
                {
                  "player_name": "Diego Moreira",
                  "ranking": 2103
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.5,
          "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",
              "rating"
            ],
            "history_matches": 4,
            "data_confidence": 0.5,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 0.9945,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (M_service) evaluated 4 historical appearances across 5 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 5 target models",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.14,
                "assists": 0,
                "expected_goals": 0.0504,
                "rating": 6.8044,
                "minutes": 85,
                "total_pass": 63,
                "accurate_pass": 47,
                "duels_won": 6,
                "total_long_balls": 8,
                "accurate_long_balls": 4,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 45,
                "accurate_opp_half_passes": 31,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 80,
                "possession_lost": 21.75,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "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": 1,
                "fouls_drawn": 2,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 22,
                "total_progression": 73,
                "progressive_carries": 2
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:48.236605+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Rayo Vallecano",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3138,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Elche",
                    "minutes": 69.0,
                    "is_starting": true,
                    "weight": 0.2667,
                    "rating": 7.7
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Getafe",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2267,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-16",
                    "opponent": "Villarreal",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1927,
                    "rating": 8.0
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 1.0,
                  "ballRecovery_p90": 6.2414,
                  "ballRecovery": 5.6731,
                  "intensity_index": 4.1761,
                  "expectedAssists": 0.3458,
                  "kilometersCovered": 6.3517
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 1.5254608392715454,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.1222
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0709
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": 0.0543
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0552
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0486
                        }
                      ],
                      "others": 0.2052,
                      "total": 1.5255
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.14000160992145538,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.0088
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0062
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": 0.0056
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0055
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0047
                        }
                      ],
                      "others": 0.0163,
                      "total": 0.14
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.08443547040224075,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0054
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": 0.004
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.0041
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": 0.003
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0028
                        }
                      ],
                      "others": -0.0141,
                      "total": 0.0844
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.0504208505153656,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0235
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": -0.0127
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0095
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0081
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0065
                        }
                      ],
                      "others": -0.011,
                      "total": 0.0504
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.804398536682129,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.1163
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0167
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0163
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": 0.0161
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0152
                        }
                      ],
                      "others": 0.0246,
                      "total": 6.8044
                    }
                  }
                ],
                "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.9945, quality 0.482)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.1392,
                "assists": 0,
                "expected_goals": 0.0501,
                "rating": 6.7672,
                "minutes": 84,
                "total_pass": 63,
                "accurate_pass": 47,
                "duels_won": 6,
                "total_long_balls": 8,
                "accurate_long_balls": 4,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 45,
                "accurate_opp_half_passes": 31,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 79,
                "possession_lost": 21.631,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "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": 1,
                "fouls_drawn": 2,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 22,
                "total_progression": 72,
                "progressive_carries": 2
              },
              "params": {
                "market_value_eur": 6600000,
                "quality_factor": 0.4818,
                "boost_factor": 0.9945
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.1392,
                "assists": 0,
                "expected_goals": 0.0501,
                "rating": 6.7672,
                "minutes": 84,
                "total_pass": 63,
                "accurate_pass": 47,
                "duels_won": 6,
                "total_long_balls": 8,
                "accurate_long_balls": 4,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 45,
                "accurate_opp_half_passes": 31,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 79,
                "possession_lost": 21.631,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "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": 1,
                "fouls_drawn": 2,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 22,
                "total_progression": 72,
                "progressive_carries": 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.1392,
                "assists": 0,
                "expected_goals": 0.0501,
                "rating": 6.7672,
                "minutes": 84,
                "total_pass": 63,
                "accurate_pass": 47,
                "duels_won": 6,
                "total_long_balls": 8,
                "accurate_long_balls": 4,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 45,
                "accurate_opp_half_passes": 31,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 79,
                "possession_lost": 21.631,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "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": 1,
                "fouls_drawn": 2,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 22,
                "total_progression": 72,
                "progressive_carries": 2,
                "total_shots": 1,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "crosses_attempted": 2.3,
                "duel_win_rate": 0.421,
                "pressing_faced": "LOW",
                "matchup_zone": "LWB vs RWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Hugo Álvarez",
                "opponent_faced": "Hugo Álvarez",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Hugo Álvarez",
                  "matchup_zone": "LWB vs RWB",
                  "duel_win_rate": 0.421,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v1"
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.0,
                  "after": 1.0
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.8388, xG scale 1.2136)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.1392,
                "assists": 0,
                "expected_goals": 0.0608,
                "rating": 6.7672,
                "minutes": 84,
                "total_pass": 63,
                "accurate_pass": 47,
                "duels_won": 6,
                "total_long_balls": 8,
                "accurate_long_balls": 4,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 45,
                "accurate_opp_half_passes": 31,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 79,
                "possession_lost": 21.631,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "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": 1,
                "fouls_drawn": 2,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 22,
                "total_progression": 72,
                "progressive_carries": 2,
                "total_shots": 1,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "crosses_attempted": 2.3,
                "duel_win_rate": 0.421,
                "pressing_faced": "LOW",
                "matchup_zone": "LWB vs RWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Hugo Álvarez",
                "opponent_faced": "Hugo Álvarez",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.018,
                "squad_xg_sum": 0.8388,
                "xg_scale": 1.2136,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0501,
                  "after": 0.0608
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 8, fifa_overall 77.0)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.1392,
                "assists": 0,
                "expected_goals": 0.0608,
                "rating": 6.7672,
                "minutes": 84,
                "total_pass": 63,
                "accurate_pass": 47,
                "duels_won": 6,
                "total_long_balls": 8,
                "accurate_long_balls": 4,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 45,
                "accurate_opp_half_passes": 31,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 79,
                "possession_lost": 21.631,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "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": 1,
                "fouls_drawn": 2,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 22,
                "total_progression": 72,
                "progressive_carries": 2,
                "total_shots": 1,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "crosses_attempted": 2.3,
                "duel_win_rate": 0.421,
                "pressing_faced": "LOW",
                "matchup_zone": "LWB vs RWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Hugo Álvarez",
                "opponent_faced": "Hugo Álvarez",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 77.0
              },
              "params": {
                "match_squad_rank": 8,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 2098,
                "fifa_rank": 1561.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 77.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.1392,
                "assists": 0,
                "expected_goals": 0.0608,
                "rating": 6.7672,
                "minutes": 84,
                "total_pass": 63,
                "accurate_pass": 47,
                "duels_won": 6,
                "total_long_balls": 8,
                "accurate_long_balls": 4,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 45,
                "accurate_opp_half_passes": 31,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 79,
                "possession_lost": 21.631,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "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": 1,
                "fouls_drawn": 2,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 22,
                "total_progression": 72,
                "progressive_carries": 2,
                "total_shots": 1,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "crosses_attempted": 2.3,
                "duel_win_rate": 0.421,
                "pressing_faced": "LOW",
                "matchup_zone": "LWB vs RWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Hugo Álvarez",
                "opponent_faced": "Hugo Álvarez",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0407,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 77.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0407,
                "scorer_weight": 0.4039,
                "squad_weight_total": 9.9138,
                "weight_share": 0.0407,
                "position_multiplier": 0.78
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.1392,
                "assists": 1,
                "expected_goals": 0.0608,
                "rating": 6.7672,
                "minutes": 84,
                "total_pass": 63,
                "accurate_pass": 47,
                "duels_won": 6,
                "total_long_balls": 8,
                "accurate_long_balls": 4,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 45,
                "accurate_opp_half_passes": 31,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 79,
                "possession_lost": 21.631,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "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": 1,
                "fouls_drawn": 2,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 22,
                "total_progression": 72,
                "progressive_carries": 2,
                "total_shots": 1,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "crosses_attempted": 2.3,
                "duel_win_rate": 0.421,
                "pressing_faced": "LOW",
                "matchup_zone": "LWB vs RWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Hugo Álvarez",
                "opponent_faced": "Hugo Álvarez",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0407,
                "projected_assists": 1,
                "assist_probability": 0.2713,
                "fifa_overall": 77.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 1,
                "assist_probability": 0.2713,
                "provider_weight": 2.4109,
                "squad_weight_total": 8.8875,
                "weight_share": 0.2713,
                "position_multiplier": 1.45
              }
            }
          ]
        },
        "André Almeida": {
          "player_id": 845693,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 8,
          "height": 176,
          "market_value": 6200000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.0763,
            "assists": 0,
            "expected_goals": 0.0752,
            "rating": 6.5772,
            "minutes": 35,
            "total_pass": 32,
            "accurate_pass": 30,
            "duels_won": 2,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 11,
            "accurate_own_half_passes": 10,
            "total_opp_half_passes": 21,
            "accurate_opp_half_passes": 20,
            "crosses_total": 1,
            "crosses_accurate": 0,
            "touches": 39,
            "possession_lost": 3.9723,
            "dispossessed": 0.9931,
            "duels_lost": 1,
            "aerial_won": 0,
            "aerial_lost": 0,
            "interceptions": 1,
            "tackles_won": 1,
            "tackles": 2,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 15,
            "total_progression": 88,
            "progressive_carries": 2,
            "opponent_faced": "Williot Swedberg, Miguel Román, Ilaix Moriba",
            "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
            "antagonist_source": "defensive_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.0332,
            "projected_assists": 0,
            "assist_probability": 0.1478,
            "fifa_overall": 74.0
          },
          "latest_10_games": [
            {
              "match_id": 16416321.0,
              "match_date": "2026-09-05",
              "home_team": "Rayo Vallecano",
              "away_team": "Real Racing Club",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Racing Club",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 35,
                "rating": 7.3,
                "assists": 0,
                "expected_assists": 0.449,
                "total_shots": 0,
                "total_pass": 32,
                "accurate_pass": 30,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 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": 3700,
            "combined_rank_score": 1656.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 418.0,
            "sofascore_rating": 6.925,
            "sofascore_appearances": 22.0,
            "fifa_rank": 2894.0,
            "fifa_overall": 74.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 9,
            "squad_role": "starter",
            "projected_match_rating": 6.5772,
            "source_file": "data/player_rankings.csv",
            "player_name": "André Almeida",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Samuel Dahl",
                  "ranking": 3695
                },
                {
                  "player_name": "Alan Lescano",
                  "ranking": 3696
                },
                {
                  "player_name": "Dénes Dibusz",
                  "ranking": 3697
                },
                {
                  "player_name": "Luciano Juba",
                  "ranking": 3698
                },
                {
                  "player_name": "Jean Lucas",
                  "ranking": 3699
                }
              ],
              "lower": [
                {
                  "player_name": "Jean-Ricner Bellegarde",
                  "ranking": 3701
                },
                {
                  "player_name": "Kervin Arriaga",
                  "ranking": 3702
                },
                {
                  "player_name": "Bryan Gil",
                  "ranking": 3703
                },
                {
                  "player_name": "Taiwo Awoniyi",
                  "ranking": 3704
                },
                {
                  "player_name": "Ismail Jakobs",
                  "ranking": 3705
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.312,
          "history_matches": 1,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "rating"
            ],
            "history_matches": 1,
            "data_confidence": 0.312,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 0.9931,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (M_service) evaluated 1 historical appearances across 5 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 5 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0768,
                "assists": 0,
                "expected_goals": 0.0624,
                "rating": 6.6232,
                "minutes": 35,
                "total_pass": 32,
                "accurate_pass": 30,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 11,
                "accurate_own_half_passes": 10,
                "total_opp_half_passes": 21,
                "accurate_opp_half_passes": 20,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 39,
                "possession_lost": 4.0,
                "dispossessed": 1.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 1,
                "tackles_won": 1,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 89,
                "progressive_carries": 2
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:48.236605+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Rayo Vallecano",
                    "minutes": 35.0,
                    "is_starting": false,
                    "weight": 1.0,
                    "rating": 7.3
                  }
                ],
                "feature_row": {
                  "history_matches": 1.0,
                  "is_starting_11": 1.0,
                  "ballRecovery_p90": 5.1429,
                  "ballRecovery": 2.0,
                  "intensity_index": 0.0,
                  "expectedAssists": 0.449,
                  "kilometersCovered": 0.0
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 1.256819486618042,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0769
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0821
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0602
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0473
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0458
                        }
                      ],
                      "others": 0.1904,
                      "total": 1.2568
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.07683810591697693,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0114
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0071
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0061
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": 0.0044
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0044
                        }
                      ],
                      "others": -0.0057,
                      "total": 0.0768
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.09800294786691666,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0145
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0051
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": -0.0035
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0034
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": -0.0029
                        }
                      ],
                      "others": -0.004,
                      "total": 0.098
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.06238395348191261,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0174
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0113
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0087
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": 0.0048
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0048
                        }
                      ],
                      "others": -0.0185,
                      "total": 0.0624
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.6231584548950195,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "kilometersCovered",
                          "contribution": -0.3508
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": -0.0594
                        },
                        {
                          "name": "intensity_index",
                          "contribution": 0.0486
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": 0.0334
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": 0.0227
                        }
                      ],
                      "others": 0.0969,
                      "total": 6.6232
                    }
                  }
                ],
                "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.9931, quality 0.477)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0763,
                "assists": 0,
                "expected_goals": 0.062,
                "rating": 6.5772,
                "minutes": 35,
                "total_pass": 32,
                "accurate_pass": 30,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 11,
                "accurate_own_half_passes": 10,
                "total_opp_half_passes": 21,
                "accurate_opp_half_passes": 20,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 39,
                "possession_lost": 3.9723,
                "dispossessed": 0.9931,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 1,
                "tackles_won": 1,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 88,
                "progressive_carries": 2
              },
              "params": {
                "market_value_eur": 6200000,
                "quality_factor": 0.4769,
                "boost_factor": 0.9931
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0763,
                "assists": 0,
                "expected_goals": 0.062,
                "rating": 6.5772,
                "minutes": 35,
                "total_pass": 32,
                "accurate_pass": 30,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 11,
                "accurate_own_half_passes": 10,
                "total_opp_half_passes": 21,
                "accurate_opp_half_passes": 20,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 39,
                "possession_lost": 3.9723,
                "dispossessed": 0.9931,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 1,
                "tackles_won": 1,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 88,
                "progressive_carries": 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": 1,
                "expected_assists": 0.0763,
                "assists": 0,
                "expected_goals": 0.062,
                "rating": 6.5772,
                "minutes": 35,
                "total_pass": 32,
                "accurate_pass": 30,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 11,
                "accurate_own_half_passes": 10,
                "total_opp_half_passes": 21,
                "accurate_opp_half_passes": 20,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 39,
                "possession_lost": 3.9723,
                "dispossessed": 0.9931,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 1,
                "tackles_won": 1,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 88,
                "progressive_carries": 2,
                "opponent_faced": "Williot Swedberg, Miguel Román, Ilaix Moriba",
                "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": "Williot Swedberg, Miguel Román, Ilaix Moriba",
                  "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.8388, xG scale 1.2136)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0763,
                "assists": 0,
                "expected_goals": 0.0752,
                "rating": 6.5772,
                "minutes": 35,
                "total_pass": 32,
                "accurate_pass": 30,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 11,
                "accurate_own_half_passes": 10,
                "total_opp_half_passes": 21,
                "accurate_opp_half_passes": 20,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 39,
                "possession_lost": 3.9723,
                "dispossessed": 0.9931,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 1,
                "tackles_won": 1,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 88,
                "progressive_carries": 2,
                "opponent_faced": "Williot Swedberg, Miguel Román, Ilaix Moriba",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "antagonist_source": "defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.018,
                "squad_xg_sum": 0.8388,
                "xg_scale": 1.2136,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.062,
                  "after": 0.0752
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 9, fifa_overall 74.0)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0763,
                "assists": 0,
                "expected_goals": 0.0752,
                "rating": 6.5772,
                "minutes": 35,
                "total_pass": 32,
                "accurate_pass": 30,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 11,
                "accurate_own_half_passes": 10,
                "total_opp_half_passes": 21,
                "accurate_opp_half_passes": 20,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 39,
                "possession_lost": 3.9723,
                "dispossessed": 0.9931,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 1,
                "tackles_won": 1,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 88,
                "progressive_carries": 2,
                "opponent_faced": "Williot Swedberg, Miguel Román, Ilaix Moriba",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "antagonist_source": "defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 74.0
              },
              "params": {
                "match_squad_rank": 9,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3700,
                "fifa_rank": 2894.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 74.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0763,
                "assists": 0,
                "expected_goals": 0.0752,
                "rating": 6.5772,
                "minutes": 35,
                "total_pass": 32,
                "accurate_pass": 30,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 11,
                "accurate_own_half_passes": 10,
                "total_opp_half_passes": 21,
                "accurate_opp_half_passes": 20,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 39,
                "possession_lost": 3.9723,
                "dispossessed": 0.9931,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 1,
                "tackles_won": 1,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 88,
                "progressive_carries": 2,
                "opponent_faced": "Williot Swedberg, Miguel Román, Ilaix Moriba",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "antagonist_source": "defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0332,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0332,
                "scorer_weight": 0.3288,
                "squad_weight_total": 9.9138,
                "weight_share": 0.0332,
                "position_multiplier": 0.78
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0763,
                "assists": 0,
                "expected_goals": 0.0752,
                "rating": 6.5772,
                "minutes": 35,
                "total_pass": 32,
                "accurate_pass": 30,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 11,
                "accurate_own_half_passes": 10,
                "total_opp_half_passes": 21,
                "accurate_opp_half_passes": 20,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 39,
                "possession_lost": 3.9723,
                "dispossessed": 0.9931,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 1,
                "tackles_won": 1,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 88,
                "progressive_carries": 2,
                "opponent_faced": "Williot Swedberg, Miguel Román, Ilaix Moriba",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "antagonist_source": "defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0332,
                "projected_assists": 0,
                "assist_probability": 0.1478,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.1478,
                "provider_weight": 1.3134,
                "squad_weight_total": 8.8875,
                "weight_share": 0.1478,
                "position_multiplier": 1.45
              }
            }
          ]
        },
        "Matteo Prati": {
          "player_id": 1111640,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 18,
          "height": 182,
          "market_value": 5000000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.0492,
            "assists": 0,
            "expected_goals": 0.0451,
            "rating": 6.8372,
            "minutes": 43,
            "total_pass": 26,
            "accurate_pass": 20,
            "duels_won": 4,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 15,
            "accurate_own_half_passes": 12,
            "total_opp_half_passes": 11,
            "accurate_opp_half_passes": 8,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 31,
            "possession_lost": 6.4262,
            "dispossessed": 0.0,
            "duels_lost": 1,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 1,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 1,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 6,
            "total_progression": 14,
            "progressive_carries": 1,
            "total_shots": 1,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.8,
            "crosses_attempted": 2.2,
            "duel_win_rate": 0.433,
            "pressing_faced": "LOW",
            "matchup_zone": "RWB vs LWB",
            "numerical_situation": "1v1",
            "opponent_defenders": "Sergio Carreira",
            "opponent_faced": "Sergio Carreira",
            "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.0318,
            "projected_assists": 0,
            "assist_probability": 0.1289,
            "fifa_overall": 72.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16416328.0,
              "match_date": "2026-09-12 12: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": "R. Racing Club",
              "away_team": "Alavés",
              "home_score_current": 2.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": "R. Racing Club",
              "opponent": "Alavés",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16416321.0,
              "match_date": "2026-09-05",
              "home_team": "Rayo Vallecano",
              "away_team": "Real Racing Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Racing Club",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 55,
                "rating": 6.8,
                "assists": 0,
                "expected_assists": 0.0717,
                "total_shots": 0,
                "total_pass": 37,
                "accurate_pass": 31,
                "key_pass": 2,
                "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": 16416304.0,
              "match_date": "2026-08-28",
              "home_team": "Real Racing Club",
              "away_team": "Elche",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Racing Club",
              "opponent": "Elche",
              "stats": {
                "minutes": 31,
                "rating": 6.4,
                "assists": 0,
                "expected_assists": 0.0141,
                "total_shots": 0,
                "total_pass": 15,
                "accurate_pass": 10,
                "interceptions": 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": 4525,
            "combined_rank_score": 2558.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 959.0,
            "sofascore_rating": 6.4,
            "sofascore_appearances": 1.0,
            "fifa_rank": 4158.0,
            "fifa_overall": 72.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 10,
            "squad_role": "starter",
            "projected_match_rating": 6.8372,
            "source_file": "data/player_rankings.csv",
            "player_name": "Matteo Prati",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "César Huerta",
                  "ranking": 4520
                },
                {
                  "player_name": "Daniel Torres",
                  "ranking": 4521
                },
                {
                  "player_name": "Toni Lato",
                  "ranking": 4522
                },
                {
                  "player_name": "Ben Gannon-Doak",
                  "ranking": 4523
                },
                {
                  "player_name": "Álex Sola",
                  "ranking": 4524
                }
              ],
              "lower": [
                {
                  "player_name": "Kevin Rodriguez",
                  "ranking": 4526
                },
                {
                  "player_name": "Alan Franco",
                  "ranking": 4527
                },
                {
                  "player_name": "Deniz Gül",
                  "ranking": 4528
                },
                {
                  "player_name": "Alejo Véliz",
                  "ranking": 4529
                },
                {
                  "player_name": "Eric Meza",
                  "ranking": 4530
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "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",
              "rating"
            ],
            "history_matches": 2,
            "data_confidence": 0.375,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 0.9887,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (M_service) evaluated 2 historical appearances across 5 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 5 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0498,
                "assists": 0,
                "expected_goals": 0.0377,
                "rating": 6.9157,
                "minutes": 43,
                "total_pass": 26,
                "accurate_pass": 20,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 12,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 32,
                "possession_lost": 6.5,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 1,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 14,
                "progressive_carries": 1
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:48.236605+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Rayo Vallecano",
                    "minutes": 55.0,
                    "is_starting": true,
                    "weight": 0.5405,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Elche",
                    "minutes": 31.0,
                    "is_starting": false,
                    "weight": 0.4595,
                    "rating": 6.4
                  }
                ],
                "feature_row": {
                  "history_matches": 2.0,
                  "is_starting_11": 1.0,
                  "ballRecovery_p90": 3.103,
                  "ballRecovery": 1.5405,
                  "intensity_index": 1.2268,
                  "expectedAssists": 0.0452,
                  "kilometersCovered": 1.7919
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.8675738573074341,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.062
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0495
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0354
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0227
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0226
                        }
                      ],
                      "others": -0.0989,
                      "total": 0.8676
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.04975311830639839,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0187
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0061
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.004
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0038
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0028
                        }
                      ],
                      "others": -0.0077,
                      "total": 0.0498
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.08103751391172409,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0062
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0053
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0048
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.0043
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": 0.0036
                        }
                      ],
                      "others": -0.0062,
                      "total": 0.081
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.03766016289591789,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0246
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.01
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0088
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0077
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0059
                        }
                      ],
                      "others": -0.014,
                      "total": 0.0377
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.915706634521484,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0231
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": -0.023
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0209
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0202
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0199
                        }
                      ],
                      "others": 0.0228,
                      "total": 6.9157
                    }
                  }
                ],
                "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.9887, quality 0.462)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0492,
                "assists": 0,
                "expected_goals": 0.0372,
                "rating": 6.8372,
                "minutes": 43,
                "total_pass": 26,
                "accurate_pass": 20,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 12,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 31,
                "possession_lost": 6.4262,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 1,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 14,
                "progressive_carries": 1
              },
              "params": {
                "market_value_eur": 5000000,
                "quality_factor": 0.4622,
                "boost_factor": 0.9887
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0492,
                "assists": 0,
                "expected_goals": 0.0372,
                "rating": 6.8372,
                "minutes": 43,
                "total_pass": 26,
                "accurate_pass": 20,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 12,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 31,
                "possession_lost": 6.4262,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 1,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 14,
                "progressive_carries": 1
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0492,
                "assists": 0,
                "expected_goals": 0.0372,
                "rating": 6.8372,
                "minutes": 43,
                "total_pass": 26,
                "accurate_pass": 20,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 12,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 31,
                "possession_lost": 6.4262,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 1,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 14,
                "progressive_carries": 1,
                "total_shots": 1,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.8,
                "crosses_attempted": 2.2,
                "duel_win_rate": 0.433,
                "pressing_faced": "LOW",
                "matchup_zone": "RWB vs LWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Sergio Carreira",
                "opponent_faced": "Sergio Carreira",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Sergio Carreira",
                  "matchup_zone": "RWB vs LWB",
                  "duel_win_rate": 0.433,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v1"
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.0,
                  "after": 1.1
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.8388, xG scale 1.2136)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0492,
                "assists": 0,
                "expected_goals": 0.0451,
                "rating": 6.8372,
                "minutes": 43,
                "total_pass": 26,
                "accurate_pass": 20,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 12,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 31,
                "possession_lost": 6.4262,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 1,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 14,
                "progressive_carries": 1,
                "total_shots": 1,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.8,
                "crosses_attempted": 2.2,
                "duel_win_rate": 0.433,
                "pressing_faced": "LOW",
                "matchup_zone": "RWB vs LWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Sergio Carreira",
                "opponent_faced": "Sergio Carreira",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.018,
                "squad_xg_sum": 0.8388,
                "xg_scale": 1.2136,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0372,
                  "after": 0.0451
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 10, fifa_overall 72.0)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0492,
                "assists": 0,
                "expected_goals": 0.0451,
                "rating": 6.8372,
                "minutes": 43,
                "total_pass": 26,
                "accurate_pass": 20,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 12,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 31,
                "possession_lost": 6.4262,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 1,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 14,
                "progressive_carries": 1,
                "total_shots": 1,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.8,
                "crosses_attempted": 2.2,
                "duel_win_rate": 0.433,
                "pressing_faced": "LOW",
                "matchup_zone": "RWB vs LWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Sergio Carreira",
                "opponent_faced": "Sergio Carreira",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 72.0
              },
              "params": {
                "match_squad_rank": 10,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 4525,
                "fifa_rank": 4158.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 72.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0492,
                "assists": 0,
                "expected_goals": 0.0451,
                "rating": 6.8372,
                "minutes": 43,
                "total_pass": 26,
                "accurate_pass": 20,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 12,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 31,
                "possession_lost": 6.4262,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 1,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 14,
                "progressive_carries": 1,
                "total_shots": 1,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.8,
                "crosses_attempted": 2.2,
                "duel_win_rate": 0.433,
                "pressing_faced": "LOW",
                "matchup_zone": "RWB vs LWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Sergio Carreira",
                "opponent_faced": "Sergio Carreira",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0318,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 72.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0318,
                "scorer_weight": 0.3156,
                "squad_weight_total": 9.9138,
                "weight_share": 0.0318,
                "position_multiplier": 0.78
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0492,
                "assists": 0,
                "expected_goals": 0.0451,
                "rating": 6.8372,
                "minutes": 43,
                "total_pass": 26,
                "accurate_pass": 20,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 12,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 31,
                "possession_lost": 6.4262,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 1,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 14,
                "progressive_carries": 1,
                "total_shots": 1,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.8,
                "crosses_attempted": 2.2,
                "duel_win_rate": 0.433,
                "pressing_faced": "LOW",
                "matchup_zone": "RWB vs LWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Sergio Carreira",
                "opponent_faced": "Sergio Carreira",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0318,
                "projected_assists": 0,
                "assist_probability": 0.1289,
                "fifa_overall": 72.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.1289,
                "provider_weight": 1.1457,
                "squad_weight_total": 8.8875,
                "weight_share": 0.1289,
                "position_multiplier": 1.45
              }
            }
          ]
        },
        "Yassir Zabiri": {
          "player_id": 1606013,
          "position": "F",
          "position_depth": "F",
          "is_starter": true,
          "shirt_number": 21,
          "height": 182,
          "market_value": 9800000,
          "stats": {
            "expected_goals": 0.2212,
            "goal_rate": 0.4255,
            "goals": 1,
            "shots_on_target": 1,
            "expected_assists": 0.0345,
            "key_pass": 1,
            "rating": 7.0481,
            "minutes": 52,
            "total_pass": 8,
            "accurate_pass": 6,
            "duels_won": 3,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 6,
            "accurate_opp_half_passes": 4,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 16,
            "possession_lost": 5.5332,
            "dispossessed": 0.0,
            "duels_lost": 5,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 2,
            "fouls_drawn": 0,
            "assists": 0,
            "shots_off_target": 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": 3,
            "progressive_carries": 0,
            "total_shots": 2,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.3,
            "aerial_won": 2,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.18,
            "pressing_faced": "LOW",
            "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "numerical_situation": "1v2",
            "opponent_defenders": "Javi Rodríguez, Abdoulaye Faye",
            "opponent_faced": "Javi Rodríguez, Abdoulaye Faye",
            "antagonist_source": "attacking_duel",
            "projected_goals": 1,
            "goal_probability": 0.376,
            "projected_assists": 0,
            "assist_probability": 0.0699,
            "fifa_overall": 66.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16416328.0,
              "match_date": "2026-09-12 12: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": "R. Racing Club",
              "away_team": "Alavés",
              "home_score_current": 2.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": "R. Racing Club",
              "opponent": "Alavés",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16416321.0,
              "match_date": "2026-09-05",
              "home_team": "Rayo Vallecano",
              "away_team": "Real Racing Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Racing Club",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 90,
                "rating": 5.7,
                "assists": 0,
                "expected_goals": 0.0316,
                "expected_assists": 0.0372,
                "total_shots": 1,
                "total_pass": 13,
                "accurate_pass": 9,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 2,
                "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": 16416304.0,
              "match_date": "2026-08-28",
              "home_team": "Real Racing Club",
              "away_team": "Elche",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Racing Club",
              "opponent": "Elche",
              "stats": {
                "minutes": 69,
                "rating": 10.0,
                "goal_rate": 3.0,
                "goals": 3,
                "assists": 0,
                "expected_goals": 0.7095,
                "expected_assists": 0.0239,
                "total_shots": 5,
                "shots_on_target": 3,
                "total_pass": 8,
                "accurate_pass": 5,
                "tackles": 1,
                "clearances": 3,
                "aerial_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": 16416300.0,
              "match_date": "2026-08-23",
              "home_team": "Getafe",
              "away_team": "Real Racing Club",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Racing Club",
              "opponent": "Getafe",
              "stats": {
                "minutes": 26,
                "rating": 6.0,
                "assists": 0,
                "expected_assists": 0.0086,
                "total_shots": 0,
                "total_pass": 7,
                "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": 16421061.0,
              "match_date": "2026-08-16",
              "home_team": "Real Racing Club",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Racing Club",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 21,
                "rating": 6.3,
                "assists": 0,
                "expected_assists": 0.0107,
                "total_shots": 0,
                "total_pass": 3,
                "accurate_pass": 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": 6997,
            "combined_rank_score": 5331.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 112.0,
            "sofascore_rating": 7.4333,
            "sofascore_appearances": 3.0,
            "fifa_rank": 10550.0,
            "fifa_overall": 66.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 4,
            "squad_role": "starter",
            "projected_match_rating": 7.0481,
            "source_file": "data/player_rankings.csv",
            "player_name": "Yassir Zabiri",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Carlos Garcés",
                  "ranking": 6992
                },
                {
                  "player_name": "Joel Canchimbo",
                  "ranking": 6993
                },
                {
                  "player_name": "Mateo García",
                  "ranking": 6994
                },
                {
                  "player_name": "Alan Rodríguez",
                  "ranking": 6995
                },
                {
                  "player_name": "Mateo Gamarra",
                  "ranking": 6996
                }
              ],
              "lower": [
                {
                  "player_name": "Jorge Daniel Valencia",
                  "ranking": 6998
                },
                {
                  "player_name": "Adrian Bajrami",
                  "ranking": 6999
                },
                {
                  "player_name": "Iván Leguizamón",
                  "ranking": 7000
                },
                {
                  "player_name": "Rubén Lezcano",
                  "ranking": 7001
                },
                {
                  "player_name": "Marcos Mina",
                  "ranking": 7002
                }
              ]
            }
          },
          "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",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 4,
            "data_confidence": 0.5,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 1.006,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (F_service) evaluated 4 historical appearances across 6 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 6 target models",
              "stats": {
                "expected_goals": 0.2811,
                "goal_rate": 0.423,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0343,
                "key_pass": 1,
                "rating": 7.0058,
                "minutes": 52,
                "total_pass": 8,
                "accurate_pass": 6,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 5.5,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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": 3,
                "progressive_carries": 0
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:52.318462+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 278,
                    "rows": 769
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Rayo Vallecano",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3138,
                    "rating": 5.7
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Elche",
                    "minutes": 69.0,
                    "is_starting": true,
                    "weight": 0.2667,
                    "rating": 10.0
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Getafe",
                    "minutes": 26.0,
                    "is_starting": false,
                    "weight": 0.2267,
                    "rating": 6.0
                  },
                  {
                    "match_date": "2026-08-16",
                    "opponent": "Villarreal",
                    "minutes": 21.0,
                    "is_starting": false,
                    "weight": 0.1927,
                    "rating": 6.3
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 1.0,
                  "onTargetScoringAttempt": 0.8002,
                  "totalShots": 1.6475,
                  "minutesPlayed": 56.5902,
                  "touches": 17.2583,
                  "dribbleValueNormalized": 0.1109
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.2811022698879242,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.093
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0745
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0545
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.043
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0314
                      }
                    ],
                    "decomposition": {
                      "base": 0.2757,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0416
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.036
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0339
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0264
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0145
                        }
                      ],
                      "others": -0.046,
                      "total": 0.2811
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.4229782521724701,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0371
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0298
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.3455,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.197
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0595
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0551
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0526
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": -0.0334
                        }
                      ],
                      "others": -0.0291,
                      "total": 0.423
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.8513081669807434,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0703
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0486
                      },
                      {
                        "name": "touches",
                        "importance": 0.0401
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0347
                      }
                    ],
                    "decomposition": {
                      "base": 0.6329,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0624
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0616
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0641
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0294
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0205
                        }
                      ],
                      "others": 0.0392,
                      "total": 0.8513
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.034253086894750595,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0802
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0621
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0547
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0537
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0397
                      }
                    ],
                    "decomposition": {
                      "base": 0.0579,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0094
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.008
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.007
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0055
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": -0.0023
                        }
                      ],
                      "others": -0.0102,
                      "total": 0.0343
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.8084558844566345,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0738
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0657
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0615
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0458
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0313
                      }
                    ],
                    "decomposition": {
                      "base": 0.6829,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.188
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.073
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0605
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0401
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0324
                        }
                      ],
                      "others": 0.0226,
                      "total": 0.8085
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 7.0058441162109375,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "speed_threat",
                        "importance": 0.0598
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0489
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0439
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0404
                      }
                    ],
                    "decomposition": {
                      "base": 6.7136,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.1041
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0489
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0463
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0408
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0178
                        }
                      ],
                      "others": 0.0699,
                      "total": 7.0058
                    }
                  }
                ],
                "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.0060, quality 0.520)",
              "stats": {
                "expected_goals": 0.2828,
                "goal_rate": 0.4255,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0345,
                "key_pass": 1,
                "rating": 7.0481,
                "minutes": 52,
                "total_pass": 8,
                "accurate_pass": 6,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 5.5332,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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": 3,
                "progressive_carries": 0
              },
              "params": {
                "market_value_eur": 9800000,
                "quality_factor": 0.5201,
                "boost_factor": 1.006
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.2828,
                "goal_rate": 0.4255,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0345,
                "key_pass": 1,
                "rating": 7.0481,
                "minutes": 52,
                "total_pass": 8,
                "accurate_pass": 6,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 5.5332,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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": 3,
                "progressive_carries": 0
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "expected_goals": 0.1823,
                "goal_rate": 0.4255,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0345,
                "key_pass": 1,
                "rating": 7.0481,
                "minutes": 52,
                "total_pass": 8,
                "accurate_pass": 6,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 5.5332,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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": 3,
                "progressive_carries": 0,
                "total_shots": 2,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Javi Rodríguez, Abdoulaye Faye",
                "opponent_faced": "Javi Rodríguez, Abdoulaye Faye",
                "antagonist_source": "attacking_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Javi Rodríguez, Abdoulaye Faye",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                  "duel_win_rate": 0.18,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v2",
                  "xg_override": 0.1823
                }
              },
              "changes": [
                {
                  "stat": "expectedGoals",
                  "before": 0.2828,
                  "after": 0.1823
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.8388, xG scale 1.2136)",
              "stats": {
                "expected_goals": 0.2212,
                "goal_rate": 0.4255,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0345,
                "key_pass": 1,
                "rating": 7.0481,
                "minutes": 52,
                "total_pass": 8,
                "accurate_pass": 6,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 5.5332,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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": 3,
                "progressive_carries": 0,
                "total_shots": 2,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Javi Rodríguez, Abdoulaye Faye",
                "opponent_faced": "Javi Rodríguez, Abdoulaye Faye",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.018,
                "squad_xg_sum": 0.8388,
                "xg_scale": 1.2136,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.1823,
                  "after": 0.2212
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 4, fifa_overall 66.0)",
              "stats": {
                "expected_goals": 0.2212,
                "goal_rate": 0.4255,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0345,
                "key_pass": 1,
                "rating": 7.0481,
                "minutes": 52,
                "total_pass": 8,
                "accurate_pass": 6,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 5.5332,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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": 3,
                "progressive_carries": 0,
                "total_shots": 2,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Javi Rodríguez, Abdoulaye Faye",
                "opponent_faced": "Javi Rodríguez, Abdoulaye Faye",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 66.0
              },
              "params": {
                "match_squad_rank": 4,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 6997,
                "fifa_rank": 10550.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 66.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "expected_goals": 0.2212,
                "goal_rate": 0.4255,
                "goals": 1,
                "shots_on_target": 1,
                "expected_assists": 0.0345,
                "key_pass": 1,
                "rating": 7.0481,
                "minutes": 52,
                "total_pass": 8,
                "accurate_pass": 6,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 5.5332,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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": 3,
                "progressive_carries": 0,
                "total_shots": 2,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Javi Rodríguez, Abdoulaye Faye",
                "opponent_faced": "Javi Rodríguez, Abdoulaye Faye",
                "antagonist_source": "attacking_duel",
                "projected_goals": 1,
                "goal_probability": 0.376,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 66.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 1,
                "goal_probability": 0.376,
                "scorer_weight": 3.7272,
                "squad_weight_total": 9.9138,
                "weight_share": 0.376,
                "position_multiplier": 1.45
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "expected_goals": 0.2212,
                "goal_rate": 0.4255,
                "goals": 1,
                "shots_on_target": 1,
                "expected_assists": 0.0345,
                "key_pass": 1,
                "rating": 7.0481,
                "minutes": 52,
                "total_pass": 8,
                "accurate_pass": 6,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 5.5332,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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": 3,
                "progressive_carries": 0,
                "total_shots": 2,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Javi Rodríguez, Abdoulaye Faye",
                "opponent_faced": "Javi Rodríguez, Abdoulaye Faye",
                "antagonist_source": "attacking_duel",
                "projected_goals": 1,
                "goal_probability": 0.376,
                "projected_assists": 0,
                "assist_probability": 0.0699,
                "fifa_overall": 66.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0699,
                "provider_weight": 0.6211,
                "squad_weight_total": 8.8875,
                "weight_share": 0.0699,
                "position_multiplier": 0.85
              }
            }
          ]
        },
        "Giorgi Guliashvili": {
          "player_id": 965257,
          "position": "F",
          "position_depth": "F",
          "is_starter": true,
          "shirt_number": 7,
          "height": 179,
          "market_value": 3400000,
          "stats": {
            "expected_goals": 0.1388,
            "goal_rate": 0.2446,
            "goals": 0,
            "shots_on_target": 1,
            "expected_assists": 0.0267,
            "key_pass": 1,
            "rating": 6.6464,
            "minutes": 21,
            "total_pass": 2,
            "accurate_pass": 1,
            "duels_won": 1,
            "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": 7,
            "possession_lost": 1.9654,
            "dispossessed": 0.9827,
            "duels_lost": 4,
            "aerial_lost": 2,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 1,
            "fouls_drawn": 1,
            "assists": 0,
            "shots_off_target": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 1,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "offsides": 0,
            "ball_carries": 1,
            "total_progression": 0,
            "progressive_carries": 0,
            "total_shots": 2,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.3,
            "aerial_won": 2,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.18,
            "pressing_faced": "LOW",
            "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "numerical_situation": "1v2",
            "opponent_defenders": "Javi Rodríguez, Abdoulaye Faye",
            "opponent_faced": "Javi Rodríguez, Abdoulaye Faye",
            "antagonist_source": "attacking_duel",
            "projected_goals": 0,
            "goal_probability": 0.2593,
            "projected_assists": 0,
            "assist_probability": 0.0652,
            "fifa_overall": 69.0
          },
          "latest_10_games": [
            {
              "match_id": 16416304.0,
              "match_date": "2026-08-28",
              "home_team": "Real Racing Club",
              "away_team": "Elche",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Racing Club",
              "opponent": "Elche",
              "stats": {
                "minutes": 21,
                "rating": 6.3,
                "assists": 0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "total_pass": 2,
                "accurate_pass": 1,
                "clearances": 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": 5690,
            "combined_rank_score": 3969.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 976.0,
            "sofascore_rating": 6.3,
            "sofascore_appearances": 1.0,
            "fifa_rank": 6962.0,
            "fifa_overall": 69.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 12,
            "squad_role": "starter",
            "projected_match_rating": 6.6464,
            "source_file": "data/player_rankings.csv",
            "player_name": "Giorgi Guliashvili",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "James McConnell",
                  "ranking": 5685
                },
                {
                  "player_name": "Bryan Rabello",
                  "ranking": 5686
                },
                {
                  "player_name": "Jherson Mosquera",
                  "ranking": 5687
                },
                {
                  "player_name": "Luka Ilić",
                  "ranking": 5688
                },
                {
                  "player_name": "Dominic Hyam",
                  "ranking": 5689
                }
              ],
              "lower": [
                {
                  "player_name": "Joao Grimaldo",
                  "ranking": 5691
                },
                {
                  "player_name": "Ben Whiteman",
                  "ranking": 5692
                },
                {
                  "player_name": "Emiliano Ancheta",
                  "ranking": 5693
                },
                {
                  "player_name": "Marc Bola",
                  "ranking": 5694
                },
                {
                  "player_name": "Dael Fry",
                  "ranking": 5695
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.312,
          "history_matches": 1,
          "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",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 1,
            "data_confidence": 0.312,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 0.9827,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (F_service) evaluated 1 historical appearances across 6 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 6 target models",
              "stats": {
                "expected_goals": 0.1805,
                "goal_rate": 0.2489,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0271,
                "key_pass": 1,
                "rating": 6.7633,
                "minutes": 21,
                "total_pass": 2,
                "accurate_pass": 1,
                "duels_won": 1,
                "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": 7,
                "possession_lost": 2.0,
                "dispossessed": 1.0,
                "duels_lost": 4,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 1,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 1,
                "total_progression": 0,
                "progressive_carries": 0
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:52.318462+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 278,
                    "rows": 769
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Elche",
                    "minutes": 21.0,
                    "is_starting": false,
                    "weight": 1.0,
                    "rating": 6.3
                  }
                ],
                "feature_row": {
                  "history_matches": 1.0,
                  "is_starting_11": 1.0,
                  "onTargetScoringAttempt": 0.0,
                  "totalShots": 0.0,
                  "minutesPlayed": 21.0,
                  "touches": 7.0,
                  "dribbleValueNormalized": -0.05
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.18048693239688873,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.093
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0745
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0545
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.043
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0314
                      }
                    ],
                    "decomposition": {
                      "base": 0.2757,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0592
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0259
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0214
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0159
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0155
                        }
                      ],
                      "others": -0.0311,
                      "total": 0.1805
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.24886319041252136,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0371
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0298
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.3455,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0659
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0372
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0236
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": 0.0196
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.017
                        }
                      ],
                      "others": 0.0275,
                      "total": 0.2489
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.5885788202285767,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0703
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0486
                      },
                      {
                        "name": "touches",
                        "importance": 0.0401
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0347
                      }
                    ],
                    "decomposition": {
                      "base": 0.6329,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0452
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0452
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0194
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0193
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0192
                        }
                      ],
                      "others": -0.025,
                      "total": 0.5886
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.027138976380228996,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0802
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0621
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0547
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0537
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0397
                      }
                    ],
                    "decomposition": {
                      "base": 0.0579,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0092
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0073
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0045
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0039
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0032
                        }
                      ],
                      "others": -0.0027,
                      "total": 0.0271
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.7327355742454529,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0738
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0657
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0615
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0458
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0313
                      }
                    ],
                    "decomposition": {
                      "base": 0.6829,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.2231
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0841
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0533
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0429
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0362
                        }
                      ],
                      "others": -0.1492,
                      "total": 0.7327
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.763314723968506,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "speed_threat",
                        "importance": 0.0598
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0489
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0439
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0404
                      }
                    ],
                    "decomposition": {
                      "base": 6.7136,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0775
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": 0.043
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0422
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0369
                        },
                        {
                          "name": "touches",
                          "contribution": 0.0328
                        }
                      ],
                      "others": 0.0461,
                      "total": 6.7633
                    }
                  }
                ],
                "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.9827, quality 0.442)",
              "stats": {
                "expected_goals": 0.1774,
                "goal_rate": 0.2446,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0267,
                "key_pass": 1,
                "rating": 6.6464,
                "minutes": 21,
                "total_pass": 2,
                "accurate_pass": 1,
                "duels_won": 1,
                "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": 7,
                "possession_lost": 1.9654,
                "dispossessed": 0.9827,
                "duels_lost": 4,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 1,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 1,
                "total_progression": 0,
                "progressive_carries": 0
              },
              "params": {
                "market_value_eur": 3400000,
                "quality_factor": 0.4424,
                "boost_factor": 0.9827
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.1774,
                "goal_rate": 0.2446,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0267,
                "key_pass": 1,
                "rating": 6.6464,
                "minutes": 21,
                "total_pass": 2,
                "accurate_pass": 1,
                "duels_won": 1,
                "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": 7,
                "possession_lost": 1.9654,
                "dispossessed": 0.9827,
                "duels_lost": 4,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 1,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 1,
                "total_progression": 0,
                "progressive_carries": 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.1144,
                "goal_rate": 0.2446,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0267,
                "key_pass": 1,
                "rating": 6.6464,
                "minutes": 21,
                "total_pass": 2,
                "accurate_pass": 1,
                "duels_won": 1,
                "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": 7,
                "possession_lost": 1.9654,
                "dispossessed": 0.9827,
                "duels_lost": 4,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 1,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 1,
                "total_progression": 0,
                "progressive_carries": 0,
                "total_shots": 2,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Javi Rodríguez, Abdoulaye Faye",
                "opponent_faced": "Javi Rodríguez, Abdoulaye Faye",
                "antagonist_source": "attacking_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Javi Rodríguez, Abdoulaye Faye",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                  "duel_win_rate": 0.18,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v2",
                  "xg_override": 0.1144
                }
              },
              "changes": [
                {
                  "stat": "expectedGoals",
                  "before": 0.1774,
                  "after": 0.1144
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.8388, xG scale 1.2136)",
              "stats": {
                "expected_goals": 0.1388,
                "goal_rate": 0.2446,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0267,
                "key_pass": 1,
                "rating": 6.6464,
                "minutes": 21,
                "total_pass": 2,
                "accurate_pass": 1,
                "duels_won": 1,
                "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": 7,
                "possession_lost": 1.9654,
                "dispossessed": 0.9827,
                "duels_lost": 4,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 1,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 1,
                "total_progression": 0,
                "progressive_carries": 0,
                "total_shots": 2,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Javi Rodríguez, Abdoulaye Faye",
                "opponent_faced": "Javi Rodríguez, Abdoulaye Faye",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.018,
                "squad_xg_sum": 0.8388,
                "xg_scale": 1.2136,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.1144,
                  "after": 0.1388
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 12, fifa_overall 69.0)",
              "stats": {
                "expected_goals": 0.1388,
                "goal_rate": 0.2446,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0267,
                "key_pass": 1,
                "rating": 6.6464,
                "minutes": 21,
                "total_pass": 2,
                "accurate_pass": 1,
                "duels_won": 1,
                "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": 7,
                "possession_lost": 1.9654,
                "dispossessed": 0.9827,
                "duels_lost": 4,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 1,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 1,
                "total_progression": 0,
                "progressive_carries": 0,
                "total_shots": 2,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Javi Rodríguez, Abdoulaye Faye",
                "opponent_faced": "Javi Rodríguez, Abdoulaye Faye",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 69.0
              },
              "params": {
                "match_squad_rank": 12,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 5690,
                "fifa_rank": 6962.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 69.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "expected_goals": 0.1388,
                "goal_rate": 0.2446,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0267,
                "key_pass": 1,
                "rating": 6.6464,
                "minutes": 21,
                "total_pass": 2,
                "accurate_pass": 1,
                "duels_won": 1,
                "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": 7,
                "possession_lost": 1.9654,
                "dispossessed": 0.9827,
                "duels_lost": 4,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 1,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 1,
                "total_progression": 0,
                "progressive_carries": 0,
                "total_shots": 2,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Javi Rodríguez, Abdoulaye Faye",
                "opponent_faced": "Javi Rodríguez, Abdoulaye Faye",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.2593,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 69.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.2593,
                "scorer_weight": 2.5709,
                "squad_weight_total": 9.9138,
                "weight_share": 0.2593,
                "position_multiplier": 1.45
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "expected_goals": 0.1388,
                "goal_rate": 0.2446,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0267,
                "key_pass": 1,
                "rating": 6.6464,
                "minutes": 21,
                "total_pass": 2,
                "accurate_pass": 1,
                "duels_won": 1,
                "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": 7,
                "possession_lost": 1.9654,
                "dispossessed": 0.9827,
                "duels_lost": 4,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 1,
                "assists": 0,
                "shots_off_target": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 1,
                "total_progression": 0,
                "progressive_carries": 0,
                "total_shots": 2,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Javi Rodríguez, Abdoulaye Faye",
                "opponent_faced": "Javi Rodríguez, Abdoulaye Faye",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.2593,
                "projected_assists": 0,
                "assist_probability": 0.0652,
                "fifa_overall": 69.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0652,
                "provider_weight": 0.5798,
                "squad_weight_total": 8.8875,
                "weight_share": 0.0652,
                "position_multiplier": 0.85
              }
            }
          ]
        }
      },
      "bench_players": {
        "Simon Eriksson": {
          "player_id": 1472960,
          "position": "G",
          "position_depth": "G_BENCH",
          "is_starter": false,
          "shirt_number": 1,
          "height": 194,
          "market_value": 2100000,
          "stats": {
            "saves": 0,
            "goals_prevented": 0.022,
            "rating": 6.8,
            "minutes": 4,
            "total_pass": 1,
            "accurate_pass": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "touches": 2,
            "clearances": 0,
            "ball_recovery": 0,
            "high_claims": 0,
            "punches": 0.0146,
            "aerial_won": 0,
            "sweeper_actions": 0,
            "sweeper_accurate": 0,
            "saves_inside_box": 0,
            "possession_lost": 0.1171,
            "duels_won": 0,
            "duels_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "total_own_half_passes": 1,
            "accurate_own_half_passes": 1,
            "bench_appearance_probability": 0.109,
            "bench_expected_minutes": 4.39,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.242,
            "projected_substitution_game_state_adjustment": 0,
            "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": 5395,
            "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": 6957.0,
            "fifa_overall": 69.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 14,
            "squad_role": "substitute",
            "projected_match_rating": 6.8,
            "source_file": "data/player_rankings.csv",
            "player_name": "Simon Eriksson",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Kerem Demirbay",
                  "ranking": 5390
                },
                {
                  "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
                }
              ],
              "lower": [
                {
                  "player_name": "Jiří Letáček",
                  "ranking": 5396
                },
                {
                  "player_name": "Emin Bayram",
                  "ranking": 5397
                },
                {
                  "player_name": "Anthony Musaba",
                  "ranking": 5398
                },
                {
                  "player_name": "Archie Brown",
                  "ranking": 5399
                },
                {
                  "player_name": "Gift Orban",
                  "ranking": 5400
                }
              ]
            }
          },
          "data_sources": [
            "market_value"
          ],
          "data_confidence": 0.25,
          "history_matches": 0,
          "xgboost_reasoning": {
            "model_source": "market_value_prior",
            "position_service": "G_service",
            "features_evaluated": [],
            "targets_predicted": [],
            "history_matches": 0,
            "data_confidence": 0.25,
            "data_sources": [
              "market_value"
            ],
            "bench_expected_minutes": 4.392222187561249,
            "bench_appearance_prob": 0.10873737216187492,
            "market_value_adjustment": 0.4374,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection from market-value prior (€2,100,000) scaled to 4.4 expected mins."
          },
          "stat_evolution": [
            {
              "step": "market_value_prior",
              "description": "Market-value baseline for position G (quality 0.44)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.45,
                "rating": 6.8,
                "minutes": 90,
                "total_pass": 27,
                "accurate_pass": 20,
                "total_long_balls": 8,
                "accurate_long_balls": 4,
                "touches": 32,
                "clearances": 1,
                "ball_recovery": 1,
                "high_claims": 0,
                "punches": 0.3,
                "aerial_won": 1,
                "sweeper_actions": 1,
                "sweeper_accurate": 1,
                "saves_inside_box": 1,
                "possession_lost": 2.4,
                "duels_won": 0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 16
              },
              "params": {
                "market_value_eur": 2100000,
                "quality_factor": 0.4374
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 4.4 expected minutes (appearance prob 0.11)",
              "stats": {
                "saves": 0,
                "goals_prevented": 0.022,
                "rating": 6.8,
                "minutes": 4,
                "total_pass": 1,
                "accurate_pass": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "touches": 2,
                "clearances": 0,
                "ball_recovery": 0,
                "high_claims": 0,
                "punches": 0.0146,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 0.1171,
                "duels_won": 0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 1,
                "accurate_own_half_passes": 1,
                "bench_appearance_probability": 0.109,
                "bench_expected_minutes": 4.39
              },
              "params": {
                "expected_minutes": 4.39,
                "appearance_probability": 0.109
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "saves": 0,
                "goals_prevented": 0.022,
                "rating": 6.8,
                "minutes": 4,
                "total_pass": 1,
                "accurate_pass": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "touches": 2,
                "clearances": 0,
                "ball_recovery": 0,
                "high_claims": 0,
                "punches": 0.0146,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 0.1171,
                "duels_won": 0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 1,
                "accurate_own_half_passes": 1,
                "bench_appearance_probability": 0.109,
                "bench_expected_minutes": 4.39
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 14, fifa_overall 69.0)",
              "stats": {
                "saves": 0,
                "goals_prevented": 0.022,
                "rating": 6.8,
                "minutes": 4,
                "total_pass": 1,
                "accurate_pass": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "touches": 2,
                "clearances": 0,
                "ball_recovery": 0,
                "high_claims": 0,
                "punches": 0.0146,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 0.1171,
                "duels_won": 0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 1,
                "accurate_own_half_passes": 1,
                "bench_appearance_probability": 0.109,
                "bench_expected_minutes": 4.39,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.242,
                "projected_substitution_game_state_adjustment": 0,
                "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": 14,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 5395,
                "fifa_rank": 6957.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 69.0
              }
            }
          ]
        },
        "Pedro Felipe": {
          "player_id": 1485292,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 22,
          "height": 190,
          "market_value": 1500000,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 0,
            "aerial_won": 0,
            "rating": 6.5929,
            "minutes": 14,
            "total_pass": 0,
            "accurate_pass": 0,
            "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": 1,
            "possession_lost": 0.2959,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0,
            "total_shots": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 0,
            "total_progression": 0,
            "progressive_carries": 0,
            "key_pass": 0,
            "bench_appearance_probability": 0.299,
            "bench_expected_minutes": 13.57,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.242,
            "projected_substitution_game_state_adjustment": 0,
            "substitution_usage": "available_bench_not_projected_used",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 78.0
          },
          "latest_10_games": [
            {
              "match_id": 16421061.0,
              "match_date": "2026-08-16",
              "home_team": "Real Racing Club",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Racing Club",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 16,
                "rating": 6.7,
                "assists": 0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "total_pass": 3,
                "accurate_pass": 2,
                "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"
            }
          ],
          "ranking": {
            "global_player_rank": 1780,
            "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": 16,
            "squad_role": "substitute",
            "projected_match_rating": 6.5929,
            "source_file": "data/player_rankings.csv",
            "player_name": "Pedro Felipe",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Emil Tsenov",
                  "ranking": 1775
                },
                {
                  "player_name": "Maksim Myakish",
                  "ranking": 1776
                },
                {
                  "player_name": "Jun'ai Byfield",
                  "ranking": 1777
                },
                {
                  "player_name": "Nemanja Gudelj",
                  "ranking": 1778
                },
                {
                  "player_name": "Jon Guridi",
                  "ranking": 1779
                }
              ],
              "lower": [
                {
                  "player_name": "Nico Guillén",
                  "ranking": 1781
                },
                {
                  "player_name": "Gabriel Pires",
                  "ranking": 1782
                },
                {
                  "player_name": "Yuri",
                  "ranking": 1783
                },
                {
                  "player_name": "William Furtado",
                  "ranking": 1784
                },
                {
                  "player_name": "Carlos Del Valle",
                  "ranking": 1785
                }
              ]
            }
          },
          "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",
              "rating"
            ],
            "history_matches": 1,
            "data_confidence": 0.312,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 13.572222187561248,
            "bench_appearance_prob": 0.2987373721618749,
            "market_value_adjustment": 0.9812,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost D_service (1 historical appearances) to 13.6 expected mins (appearance prob 0.30)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 6 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 0,
                "clearances": 1,
                "aerial_won": 1,
                "rating": 6.7191,
                "minutes": 16,
                "total_pass": 3,
                "accurate_pass": 2,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 2,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 5,
                "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,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 2,
                "total_progression": 3,
                "progressive_carries": 0,
                "key_pass": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:44.724055+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 374,
                    "rows": 1289
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-08-16",
                    "opponent": "Villarreal",
                    "minutes": 16.0,
                    "is_starting": true,
                    "weight": 1.0,
                    "rating": 6.7
                  }
                ],
                "feature_row": {
                  "history_matches": 1.0,
                  "is_starting_11": 0.0,
                  "accuratePass": 2.0,
                  "touches_p90": 28.125,
                  "possessionLostCtrl": 2.0,
                  "totalClearance": 1.0,
                  "aerialWon": 0.0
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.5581073760986328,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0944
                      },
                      {
                        "name": "duel_win_rate",
                        "importance": 0.0353
                      },
                      {
                        "name": "duelWon_p90",
                        "importance": 0.0341
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0326
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0322
                      }
                    ],
                    "decomposition": {
                      "base": 0.9108,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2661
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": -0.0368
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0333
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0171
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0164
                        }
                      ],
                      "others": -0.0496,
                      "total": 0.5581
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 0.9099725484848022,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0588
                      },
                      {
                        "name": "duelLost",
                        "importance": 0.0461
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0446
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0406
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0401
                      }
                    ],
                    "decomposition": {
                      "base": 1.3553,
                      "items": [
                        {
                          "name": "totalProgression",
                          "contribution": -0.1431
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0977
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0876
                        },
                        {
                          "name": "touches",
                          "contribution": -0.0633
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.054
                        }
                      ],
                      "others": -0.195,
                      "total": 0.91
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.42439502477645874,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0565
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0432
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0353
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0347
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0329
                      }
                    ],
                    "decomposition": {
                      "base": 0.8675,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1672
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.081
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0613
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0546
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0468
                        }
                      ],
                      "others": -0.1414,
                      "total": 0.4244
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 1.0070723295211792,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0506
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0425
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0417
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 3.4032,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -2.0052
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.1154
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0977
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0828
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0821
                        }
                      ],
                      "others": -0.1785,
                      "total": 1.0071
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.741987943649292,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0798
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0597
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0439
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0426
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0411
                      }
                    ],
                    "decomposition": {
                      "base": 1.2421,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.3523
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0559
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0409
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.0313
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0269
                        }
                      ],
                      "others": -0.0746,
                      "total": 0.742
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.719061374664307,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches_p90",
                        "importance": 0.0708
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0705
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0537
                      },
                      {
                        "name": "pass_accuracy",
                        "importance": 0.0518
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 6.6627,
                      "items": [
                        {
                          "name": "accuratePass",
                          "contribution": -0.2627
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.1993
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": 0.0894
                        },
                        {
                          "name": "touches",
                          "contribution": -0.085
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0544
                        }
                      ],
                      "others": 0.061,
                      "total": 6.7191
                    }
                  }
                ],
                "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": 0,
                "clearances": 1,
                "aerial_won": 1,
                "rating": 6.5929,
                "minutes": 16,
                "total_pass": 3,
                "accurate_pass": 2,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 2,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 5,
                "possession_lost": 1.9625,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 2,
                "total_progression": 3,
                "progressive_carries": 0,
                "key_pass": 0
              },
              "params": {
                "market_value_eur": 1500000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9812
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 13.6 expected minutes (appearance prob 0.30)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "rating": 6.5929,
                "minutes": 14,
                "total_pass": 0,
                "accurate_pass": 0,
                "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": 1,
                "possession_lost": 0.2959,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "key_pass": 0,
                "bench_appearance_probability": 0.299,
                "bench_expected_minutes": 13.57
              },
              "params": {
                "expected_minutes": 13.57,
                "appearance_probability": 0.299
              }
            },
            {
              "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,
                "rating": 6.5929,
                "minutes": 14,
                "total_pass": 0,
                "accurate_pass": 0,
                "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": 1,
                "possession_lost": 0.2959,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "key_pass": 0,
                "bench_appearance_probability": 0.299,
                "bench_expected_minutes": 13.57
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 16, fifa_overall 78.0)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "rating": 6.5929,
                "minutes": 14,
                "total_pass": 0,
                "accurate_pass": 0,
                "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": 1,
                "possession_lost": 0.2959,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "key_pass": 0,
                "bench_appearance_probability": 0.299,
                "bench_expected_minutes": 13.57,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.242,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "available_bench_not_projected_used",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 78.0
              },
              "params": {
                "match_squad_rank": 16,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 1780,
                "fifa_rank": 1231.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 78.0
              }
            }
          ]
        },
        "Pablo Ramón": {
          "player_id": 962381,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 5,
          "height": 186,
          "market_value": 1500000,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 0,
            "aerial_won": 0,
            "rating": 6.581,
            "minutes": 14,
            "total_pass": 6,
            "accurate_pass": 6,
            "duels_won": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 4,
            "accurate_own_half_passes": 4,
            "total_opp_half_passes": 2,
            "accurate_opp_half_passes": 2,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 8,
            "possession_lost": 0.691,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 1,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0015,
            "total_shots": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 2,
            "total_progression": 13,
            "progressive_carries": 0,
            "key_pass": 0,
            "bench_appearance_probability": 0.299,
            "bench_expected_minutes": 13.57,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.242,
            "projected_substitution_game_state_adjustment": 0,
            "substitution_usage": "available_bench_not_projected_used",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 69.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16416328.0,
              "match_date": "2026-09-12 12: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": "R. Racing Club",
              "away_team": "Alavés",
              "home_score_current": 2.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": "R. Racing Club",
              "opponent": "Alavés",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16416321.0,
              "match_date": "2026-09-05",
              "home_team": "Rayo Vallecano",
              "away_team": "Real Racing Club",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Racing Club",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 35,
                "rating": 7.3,
                "assists": 0,
                "expected_assists": 0.0074,
                "total_shots": 0,
                "total_pass": 24,
                "accurate_pass": 23,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 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": 16416300.0,
              "match_date": "2026-08-23",
              "home_team": "Getafe",
              "away_team": "Real Racing Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Racing Club",
              "opponent": "Getafe",
              "stats": {
                "minutes": 90,
                "rating": 7.3,
                "assists": 0,
                "expected_assists": 0.0062,
                "total_shots": 0,
                "total_pass": 69,
                "accurate_pass": 63,
                "tackles": 5,
                "tackles_won": 2,
                "interceptions": 2,
                "clearances": 13,
                "aerial_won": 5,
                "duels_won": 11,
                "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": 16421061.0,
              "match_date": "2026-08-16",
              "home_team": "Real Racing Club",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Racing Club",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 77,
                "rating": 6.6,
                "assists": 0,
                "expected_assists": 0.0138,
                "total_shots": 0,
                "total_pass": 31,
                "accurate_pass": 28,
                "key_pass": 1,
                "tackles": 3,
                "tackles_won": 2,
                "interceptions": 2,
                "clearances": 7,
                "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"
            }
          ],
          "ranking": {
            "global_player_rank": 5500,
            "combined_rank_score": 3679.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 391.0,
            "sofascore_rating": 6.95,
            "sofascore_appearances": 2.0,
            "fifa_rank": 6968.0,
            "fifa_overall": 69.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 17,
            "squad_role": "substitute",
            "projected_match_rating": 6.581,
            "source_file": "data/player_rankings.csv",
            "player_name": "Pablo Ramón",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Abdulelah Al Amri",
                  "ranking": 5495
                },
                {
                  "player_name": "Sofiane Bendebka",
                  "ranking": 5496
                },
                {
                  "player_name": "Ramiro Enrique",
                  "ranking": 5497
                },
                {
                  "player_name": "Amir Sâyoud",
                  "ranking": 5498
                },
                {
                  "player_name": "Luciano Rodríguez",
                  "ranking": 5499
                }
              ],
              "lower": [
                {
                  "player_name": "Paul Smyth",
                  "ranking": 5501
                },
                {
                  "player_name": "Marcos Rojo",
                  "ranking": 5502
                },
                {
                  "player_name": "Theo Bair",
                  "ranking": 5503
                },
                {
                  "player_name": "Lisandro Magallán",
                  "ranking": 5504
                },
                {
                  "player_name": "Jaouen Hadjam",
                  "ranking": 5505
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.438,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "D_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "totalOppositionHalfPasses",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "ballRecovery",
              "touches",
              "totalClearance",
              "wonTackle",
              "interceptionWon",
              "dispossessed",
              "challengeLost",
              "errorLeadToAShot",
              "errorLeadToAGoal",
              "possessionLostCtrl",
              "passValueNormalized",
              "defensiveValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.438,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 13.572222187561248,
            "bench_appearance_prob": 0.2987373721618749,
            "market_value_adjustment": 0.9812,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost D_service (3 historical appearances) to 13.6 expected mins (appearance prob 0.30)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 6 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "rating": 6.7069,
                "minutes": 67,
                "total_pass": 41,
                "accurate_pass": 38,
                "duels_won": 6,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 27,
                "accurate_own_half_passes": 26,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 12,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 56,
                "possession_lost": 4.67,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.01,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 16,
                "total_progression": 90,
                "progressive_carries": 1,
                "key_pass": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:44.724055+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 374,
                    "rows": 1289
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Rayo Vallecano",
                    "minutes": 35.0,
                    "is_starting": false,
                    "weight": 0.3887,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Getafe",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3304,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-08-16",
                    "opponent": "Villarreal",
                    "minutes": 77.0,
                    "is_starting": true,
                    "weight": 0.2809,
                    "rating": 6.6
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 0.0,
                  "accuratePass": 37.621,
                  "touches_p90": 73.479,
                  "possessionLostCtrl": 4.4363,
                  "totalClearance": 6.2614,
                  "aerialWon": 1.6521
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.6579926609992981,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0944
                      },
                      {
                        "name": "duel_win_rate",
                        "importance": 0.0353
                      },
                      {
                        "name": "duelWon_p90",
                        "importance": 0.0341
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0326
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0322
                      }
                    ],
                    "decomposition": {
                      "base": 0.9108,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2536
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0227
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0196
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0183
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0116
                        }
                      ],
                      "others": -0.0116,
                      "total": 0.658
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.4085919857025146,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0588
                      },
                      {
                        "name": "duelLost",
                        "importance": 0.0461
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0446
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0406
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0401
                      }
                    ],
                    "decomposition": {
                      "base": 1.3553,
                      "items": [
                        {
                          "name": "defensive_actions",
                          "contribution": 0.1457
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0828
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.06
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.053
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0432
                        }
                      ],
                      "others": 0.1466,
                      "total": 1.4086
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.6621496677398682,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0565
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0432
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0353
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0347
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0329
                      }
                    ],
                    "decomposition": {
                      "base": 0.8675,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1686
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0555
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0426
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": 0.0414
                        },
                        {
                          "name": "tackle_success_rate",
                          "contribution": -0.0342
                        }
                      ],
                      "others": 0.0541,
                      "total": 0.6621
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 1.8405908346176147,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0506
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0425
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0417
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 3.4032,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -1.9391
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.1226
                        },
                        {
                          "name": "press_vulnerability",
                          "contribution": 0.1107
                        },
                        {
                          "name": "totalClearance",
                          "contribution": 0.1024
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.0738
                        }
                      ],
                      "others": 0.1146,
                      "total": 1.8406
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.9021254181861877,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0798
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0597
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0439
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0426
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0411
                      }
                    ],
                    "decomposition": {
                      "base": 1.2421,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.365
                        },
                        {
                          "name": "totalClearance",
                          "contribution": 0.0549
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0331
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0281
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0268
                        }
                      ],
                      "others": 0.0045,
                      "total": 0.9021
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.706896781921387,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches_p90",
                        "importance": 0.0708
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0705
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0537
                      },
                      {
                        "name": "pass_accuracy",
                        "importance": 0.0518
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 6.6627,
                      "items": [
                        {
                          "name": "press_vulnerability",
                          "contribution": -0.0376
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.034
                        },
                        {
                          "name": "wonTackle",
                          "contribution": -0.0273
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0253
                        },
                        {
                          "name": "totalProgression",
                          "contribution": 0.0196
                        }
                      ],
                      "others": 0.0302,
                      "total": 6.7069
                    }
                  }
                ],
                "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": 1,
                "rating": 6.581,
                "minutes": 66,
                "total_pass": 41,
                "accurate_pass": 37,
                "duels_won": 6,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 26,
                "accurate_own_half_passes": 26,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 55,
                "possession_lost": 4.5823,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0098,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 88,
                "progressive_carries": 1,
                "key_pass": 0
              },
              "params": {
                "market_value_eur": 1500000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9812
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 13.6 expected minutes (appearance prob 0.30)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "rating": 6.581,
                "minutes": 14,
                "total_pass": 6,
                "accurate_pass": 6,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 8,
                "possession_lost": 0.691,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0015,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 2,
                "total_progression": 13,
                "progressive_carries": 0,
                "key_pass": 0,
                "bench_appearance_probability": 0.299,
                "bench_expected_minutes": 13.57
              },
              "params": {
                "expected_minutes": 13.57,
                "appearance_probability": 0.299
              }
            },
            {
              "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,
                "rating": 6.581,
                "minutes": 14,
                "total_pass": 6,
                "accurate_pass": 6,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 8,
                "possession_lost": 0.691,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0015,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 2,
                "total_progression": 13,
                "progressive_carries": 0,
                "key_pass": 0,
                "bench_appearance_probability": 0.299,
                "bench_expected_minutes": 13.57
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 17, fifa_overall 69.0)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "rating": 6.581,
                "minutes": 14,
                "total_pass": 6,
                "accurate_pass": 6,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 8,
                "possession_lost": 0.691,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0015,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 2,
                "total_progression": 13,
                "progressive_carries": 0,
                "key_pass": 0,
                "bench_appearance_probability": 0.299,
                "bench_expected_minutes": 13.57,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.242,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "available_bench_not_projected_used",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 69.0
              },
              "params": {
                "match_squad_rank": 17,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 5500,
                "fifa_rank": 6968.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 69.0
              }
            }
          ]
        },
        "Gustavo Puerta": {
          "player_id": 1174889,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 8,
          "height": 171,
          "market_value": 19200000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0244,
            "assists": 0,
            "expected_goals": 0.0096,
            "rating": 7.0943,
            "minutes": 23,
            "total_pass": 15,
            "accurate_pass": 14,
            "duels_won": 2,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 7,
            "accurate_own_half_passes": 7,
            "total_opp_half_passes": 8,
            "accurate_opp_half_passes": 8,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 21,
            "possession_lost": 2.9642,
            "dispossessed": 1.3791,
            "duels_lost": 2,
            "aerial_won": 0,
            "aerial_lost": 2,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 1,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 1,
            "fouls_drawn": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 5,
            "total_progression": 12,
            "progressive_carries": 0,
            "total_shots": 0,
            "offsides": 0,
            "yellowCards": 0.3333,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 0.0,
            "shotConversion": 0.0,
            "minutesPct": 98.9,
            "pointsPerMatch": 1.33,
            "netGoalDifferencePer90": 0.0,
            "bench_appearance_probability": 0.322,
            "bench_expected_minutes": 22.71,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.242,
            "projected_substitution_game_state_adjustment": 0,
            "substitution_usage": "available_bench_not_projected_used",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 74.0
          },
          "latest_10_games": [
            {
              "match_id": 16416304.0,
              "match_date": "2026-08-28",
              "home_team": "Real Racing Club",
              "away_team": "Elche",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Racing Club",
              "opponent": "Elche",
              "stats": {
                "minutes": 90,
                "rating": 7.6,
                "assists": 0,
                "expected_assists": 0.2809,
                "total_shots": 0,
                "total_pass": 62,
                "accurate_pass": 53,
                "key_pass": 1,
                "tackles": 3,
                "tackles_won": 2,
                "clearances": 1,
                "duels_won": 9,
                "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": 16416300.0,
              "match_date": "2026-08-23",
              "home_team": "Getafe",
              "away_team": "Real Racing Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Racing Club",
              "opponent": "Getafe",
              "stats": {
                "minutes": 88,
                "rating": 6.5,
                "assists": 0,
                "expected_assists": 0.0288,
                "total_shots": 0,
                "total_pass": 51,
                "accurate_pass": 49,
                "tackles": 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": 16421061.0,
              "match_date": "2026-08-16",
              "home_team": "Real Racing Club",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Racing Club",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 90,
                "rating": 7.3,
                "assists": 0,
                "expected_goals": 0.0527,
                "expected_assists": 0.0891,
                "total_shots": 2,
                "total_pass": 63,
                "accurate_pass": 61,
                "key_pass": 3,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 1,
                "duels_won": 1,
                "ball_recovery": 10
              },
              "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": 3575,
            "combined_rank_score": 1536.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 157.0,
            "sofascore_rating": 7.3,
            "sofascore_appearances": 1.0,
            "fifa_rank": 2915.0,
            "fifa_overall": 74.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 1,
            "squad_role": "substitute",
            "projected_match_rating": 7.0943,
            "source_file": "data/player_rankings.csv",
            "player_name": "Gustavo Puerta",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Philip Zinckernagel",
                  "ranking": 3570
                },
                {
                  "player_name": "Cristian Roldan",
                  "ranking": 3571
                },
                {
                  "player_name": "Joaquín Pereyra",
                  "ranking": 3572
                },
                {
                  "player_name": "Moise Bombito",
                  "ranking": 3573
                },
                {
                  "player_name": "Germán Berterame",
                  "ranking": 3574
                }
              ],
              "lower": [
                {
                  "player_name": "Martín Ojeda",
                  "ranking": 3576
                },
                {
                  "player_name": "Maximiliano Gómez",
                  "ranking": 3577
                },
                {
                  "player_name": "David Douděra",
                  "ranking": 3578
                },
                {
                  "player_name": "Daniel Peretz",
                  "ranking": 3579
                },
                {
                  "player_name": "Callum McGregor",
                  "ranking": 3580
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.467,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.467,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 22.707562348292583,
            "bench_appearance_prob": 0.322,
            "market_value_adjustment": 1.0369,
            "fbref_prior_metrics": {
              "squad": "Racing Sant",
              "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.2
            },
            "rationale": "Bench projection scaled from XGBoost M_service (3 historical appearances) to 22.7 expected mins (appearance prob 0.32); FBref playing time empirical prior: 0.0 sub appearances, 0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 5 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0934,
                "assists": 0,
                "expected_goals": 0.0366,
                "rating": 6.8416,
                "minutes": 89,
                "total_pass": 59,
                "accurate_pass": 54,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 28,
                "accurate_own_half_passes": 26,
                "total_opp_half_passes": 31,
                "accurate_opp_half_passes": 29,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 80,
                "possession_lost": 11.33,
                "dispossessed": 1.33,
                "duels_lost": 9,
                "aerial_won": 0,
                "aerial_lost": 2,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 3,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 21,
                "total_progression": 45,
                "progressive_carries": 1
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:48.236605+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Elche",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3887,
                    "rating": 7.6
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Getafe",
                    "minutes": 88.0,
                    "is_starting": true,
                    "weight": 0.3304,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-16",
                    "opponent": "Villarreal",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2809,
                    "rating": 7.3
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 0.0,
                  "ballRecovery_p90": 6.645,
                  "ballRecovery": 6.6375,
                  "intensity_index": 6.7302,
                  "expectedAssists": 0.1437,
                  "kilometersCovered": 10.6813
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.9773775339126587,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1147
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.1075
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0374
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0379
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": -0.0329
                        }
                      ],
                      "others": -0.0269,
                      "total": 0.9774
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.0933661162853241,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0124
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0098
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0087
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0072
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0055
                        }
                      ],
                      "others": 0.0013,
                      "total": 0.0934
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.08423852175474167,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "ballRecovery",
                          "contribution": 0.0069
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0056
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0056
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": -0.0043
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": 0.0034
                        }
                      ],
                      "others": -0.0174,
                      "total": 0.0842
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.0365668460726738,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0281
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0183
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": -0.0077
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0054
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0031
                        }
                      ],
                      "others": -0.0095,
                      "total": 0.0366
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.841578006744385,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0413
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.033
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": -0.032
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0171
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0151
                        }
                      ],
                      "others": 0.0481,
                      "total": 6.8416
                    }
                  }
                ],
                "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.0369, quality 0.623)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0968,
                "assists": 0,
                "expected_goals": 0.0379,
                "rating": 7.0943,
                "minutes": 93,
                "total_pass": 61,
                "accurate_pass": 56,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 29,
                "accurate_own_half_passes": 27,
                "total_opp_half_passes": 32,
                "accurate_opp_half_passes": 30,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 83,
                "possession_lost": 11.7485,
                "dispossessed": 1.3791,
                "duels_lost": 9,
                "aerial_won": 0,
                "aerial_lost": 2,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 3,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 22,
                "total_progression": 47,
                "progressive_carries": 1
              },
              "params": {
                "market_value_eur": 19200000,
                "quality_factor": 0.6231,
                "boost_factor": 1.0369
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0813)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0968,
                "assists": 0,
                "expected_goals": 0.0379,
                "rating": 7.0943,
                "minutes": 93,
                "total_pass": 61,
                "accurate_pass": 56,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 29,
                "accurate_own_half_passes": 27,
                "total_opp_half_passes": 32,
                "accurate_opp_half_passes": 30,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 83,
                "possession_lost": 11.7485,
                "dispossessed": 1.3791,
                "duels_lost": 9,
                "aerial_won": 0,
                "aerial_lost": 2,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 3,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 22,
                "total_progression": 47,
                "progressive_carries": 1,
                "total_shots": 1,
                "offsides": 0,
                "yellowCards": 0.3333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 98.9,
                "pointsPerMatch": 1.33,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "blend_weight": 0.0813,
                "history_matches": 3,
                "prior_reliability": 0.2,
                "competition": "La Liga",
                "squad": "Racing Sant"
              },
              "changes": [
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.2438
                },
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0813
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.0,
                  "after": 0.0542
                },
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.0271
                },
                {
                  "stat": "fouls",
                  "before": 3.453,
                  "after": 3.4433
                },
                {
                  "stat": "goalAssist",
                  "before": 0.0874,
                  "after": 0.0803
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 22.7 expected minutes (appearance prob 0.32)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0244,
                "assists": 0,
                "expected_goals": 0.0096,
                "rating": 7.0943,
                "minutes": 23,
                "total_pass": 15,
                "accurate_pass": 14,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 21,
                "possession_lost": 2.9642,
                "dispossessed": 1.3791,
                "duels_lost": 2,
                "aerial_won": 0,
                "aerial_lost": 2,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 12,
                "progressive_carries": 0,
                "total_shots": 0,
                "offsides": 0,
                "yellowCards": 0.3333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 98.9,
                "pointsPerMatch": 1.33,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.322,
                "bench_expected_minutes": 22.71
              },
              "params": {
                "expected_minutes": 22.71,
                "appearance_probability": 0.322
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0244,
                "assists": 0,
                "expected_goals": 0.0096,
                "rating": 7.0943,
                "minutes": 23,
                "total_pass": 15,
                "accurate_pass": 14,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 21,
                "possession_lost": 2.9642,
                "dispossessed": 1.3791,
                "duels_lost": 2,
                "aerial_won": 0,
                "aerial_lost": 2,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 12,
                "progressive_carries": 0,
                "total_shots": 0,
                "offsides": 0,
                "yellowCards": 0.3333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 98.9,
                "pointsPerMatch": 1.33,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.322,
                "bench_expected_minutes": 22.71
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 1, fifa_overall 74.0)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0244,
                "assists": 0,
                "expected_goals": 0.0096,
                "rating": 7.0943,
                "minutes": 23,
                "total_pass": 15,
                "accurate_pass": 14,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 21,
                "possession_lost": 2.9642,
                "dispossessed": 1.3791,
                "duels_lost": 2,
                "aerial_won": 0,
                "aerial_lost": 2,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 12,
                "progressive_carries": 0,
                "total_shots": 0,
                "offsides": 0,
                "yellowCards": 0.3333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 98.9,
                "pointsPerMatch": 1.33,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.322,
                "bench_expected_minutes": 22.71,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.242,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "available_bench_not_projected_used",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 74.0
              },
              "params": {
                "match_squad_rank": 1,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3575,
                "fifa_rank": 2915.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 74.0
              }
            }
          ]
        },
        "Aarón Martín": {
          "player_id": 797286,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 3,
          "height": 180,
          "market_value": 4900000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0122,
            "assists": 0,
            "expected_goals": 0.0078,
            "rating": 5.5138,
            "minutes": 22,
            "total_pass": 2,
            "accurate_pass": 1,
            "duels_won": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 0,
            "accurate_own_half_passes": 0,
            "total_opp_half_passes": 2,
            "accurate_opp_half_passes": 1,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 2,
            "possession_lost": 0.4846,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_won": 0,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 0,
            "total_progression": 5,
            "progressive_carries": 0,
            "bench_appearance_probability": 0.503,
            "bench_expected_minutes": 22.07,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.242,
            "projected_substitution_game_state_adjustment": 0,
            "substitution_usage": "available_bench_not_projected_used",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 74.0
          },
          "latest_10_games": [
            {
              "match_id": 16416321.0,
              "match_date": "2026-09-05",
              "home_team": "Rayo Vallecano",
              "away_team": "Real Racing Club",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Racing Club",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 1,
                "assists": 0,
                "expected_assists": 0.0531,
                "total_shots": 0,
                "total_pass": 7,
                "accurate_pass": 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"
            }
          ],
          "ranking": {
            "global_player_rank": 3523,
            "combined_rank_score": 1495.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 2801.0,
            "fifa_overall": 74.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 11,
            "squad_role": "substitute",
            "projected_match_rating": 5.5138,
            "source_file": "data/player_rankings.csv",
            "player_name": "Aarón Martín",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Alexis Claude-Maurice",
                  "ranking": 3518
                },
                {
                  "player_name": "Sebastián Cáceres",
                  "ranking": 3519
                },
                {
                  "player_name": "Anthony Caci",
                  "ranking": 3520
                },
                {
                  "player_name": "Amar Memić",
                  "ranking": 3521
                },
                {
                  "player_name": "Miro Muheim",
                  "ranking": 3522
                }
              ],
              "lower": [
                {
                  "player_name": "Robin Hack",
                  "ranking": 3524
                },
                {
                  "player_name": "Jan-Niklas Beste",
                  "ranking": 3525
                },
                {
                  "player_name": "Albert Sambi Lokonga",
                  "ranking": 3526
                },
                {
                  "player_name": "Omar Mascarell",
                  "ranking": 3527
                },
                {
                  "player_name": "Ezequiel Fernández",
                  "ranking": 3528
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.312,
          "history_matches": 1,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "rating"
            ],
            "history_matches": 1,
            "data_confidence": 0.312,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 22.065343983285878,
            "bench_appearance_prob": 0.5029701810584489,
            "market_value_adjustment": 0.9883,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost M_service (1 historical appearances) to 22.1 expected mins (appearance prob 0.50)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 5 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0503,
                "assists": 0,
                "expected_goals": 0.0322,
                "rating": 5.5792,
                "minutes": 1,
                "total_pass": 7,
                "accurate_pass": 6,
                "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": 7,
                "accurate_opp_half_passes": 6,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 8,
                "possession_lost": 2.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,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 2,
                "total_progression": 19,
                "progressive_carries": 1
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:48.236605+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Rayo Vallecano",
                    "minutes": 1.0,
                    "is_starting": false,
                    "weight": 1.0,
                    "rating": null
                  }
                ],
                "feature_row": {
                  "history_matches": 1.0,
                  "is_starting_11": 0.0,
                  "ballRecovery_p90": 90.0,
                  "ballRecovery": 1.0,
                  "intensity_index": 0.0,
                  "expectedAssists": 0.0531,
                  "kilometersCovered": 0.0
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.5977755188941956,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2552
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0599
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0336
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0241
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.019
                        }
                      ],
                      "others": -0.0175,
                      "total": 0.5978
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.05033762380480766,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0165
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0116
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0051
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0041
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0037
                        }
                      ],
                      "others": -0.0016,
                      "total": 0.0503
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.09291091561317444,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.005
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.0038
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0031
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0025
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0023
                        }
                      ],
                      "others": 0.0014,
                      "total": 0.0929
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.032219551503658295,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0355
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.012
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0084
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0059
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0047
                        }
                      ],
                      "others": -0.01,
                      "total": 0.0322
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 5.579162120819092,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "kilometersCovered",
                          "contribution": -0.5916
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": -0.4905
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1048
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.1027
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": 0.0725
                        }
                      ],
                      "others": -0.0355,
                      "total": 5.5792
                    }
                  }
                ],
                "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.9883, quality 0.461)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0497,
                "assists": 0,
                "expected_goals": 0.0318,
                "rating": 5.5138,
                "minutes": 1,
                "total_pass": 7,
                "accurate_pass": 6,
                "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": 7,
                "accurate_opp_half_passes": 6,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 8,
                "possession_lost": 1.9766,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 2,
                "total_progression": 18,
                "progressive_carries": 1
              },
              "params": {
                "market_value_eur": 4900000,
                "quality_factor": 0.4609,
                "boost_factor": 0.9883
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 22.1 expected minutes (appearance prob 0.50)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0122,
                "assists": 0,
                "expected_goals": 0.0078,
                "rating": 5.5138,
                "minutes": 22,
                "total_pass": 2,
                "accurate_pass": 1,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 2,
                "possession_lost": 0.4846,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 0,
                "total_progression": 5,
                "progressive_carries": 0,
                "bench_appearance_probability": 0.503,
                "bench_expected_minutes": 22.07
              },
              "params": {
                "expected_minutes": 22.07,
                "appearance_probability": 0.503
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0122,
                "assists": 0,
                "expected_goals": 0.0078,
                "rating": 5.5138,
                "minutes": 22,
                "total_pass": 2,
                "accurate_pass": 1,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 2,
                "possession_lost": 0.4846,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 0,
                "total_progression": 5,
                "progressive_carries": 0,
                "bench_appearance_probability": 0.503,
                "bench_expected_minutes": 22.07
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 11, fifa_overall 74.0)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0122,
                "assists": 0,
                "expected_goals": 0.0078,
                "rating": 5.5138,
                "minutes": 22,
                "total_pass": 2,
                "accurate_pass": 1,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 2,
                "possession_lost": 0.4846,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 0,
                "total_progression": 5,
                "progressive_carries": 0,
                "bench_appearance_probability": 0.503,
                "bench_expected_minutes": 22.07,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.242,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "available_bench_not_projected_used",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 74.0
              },
              "params": {
                "match_squad_rank": 11,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3523,
                "fifa_rank": 2801.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 74.0
              }
            }
          ]
        },
        "Asier Villalibre": {
          "player_id": 355072,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 12,
          "height": 183,
          "market_value": 2100000,
          "stats": {
            "expected_goals": 0.0343,
            "goal_rate": 0.0457,
            "goals": 0,
            "shots_on_target": 0,
            "expected_assists": 0.0072,
            "key_pass": 0,
            "rating": 6.5582,
            "minutes": 25,
            "total_pass": 2,
            "accurate_pass": 1,
            "duels_won": 1,
            "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": 5,
            "possession_lost": 2.297,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assists": 0,
            "shots_off_target": 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,
            "bench_appearance_probability": 0.559,
            "bench_expected_minutes": 25.29,
            "projected_substitution_order": 2,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.242,
            "projected_substitution_game_state_adjustment": 0,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 78.0
          },
          "latest_10_games": [
            {
              "match_id": 16416304.0,
              "match_date": "2026-08-28",
              "home_team": "Real Racing Club",
              "away_team": "Elche",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Racing Club",
              "opponent": "Elche",
              "stats": {
                "minutes": 21,
                "rating": 7.0,
                "assists": 0,
                "expected_goals": 0.2445,
                "expected_assists": 0.0005,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 5,
                "accurate_pass": 3,
                "clearances": 2,
                "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": 16416300.0,
              "match_date": "2026-08-23",
              "home_team": "Getafe",
              "away_team": "Real Racing Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Racing Club",
              "opponent": "Getafe",
              "stats": {
                "minutes": 64,
                "rating": 6.4,
                "assists": 0,
                "expected_assists": 0.0017,
                "total_shots": 0,
                "total_pass": 6,
                "accurate_pass": 4,
                "clearances": 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": 16421061.0,
              "match_date": "2026-08-16",
              "home_team": "Real Racing Club",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Racing Club",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 69,
                "rating": 6.1,
                "assists": 0,
                "expected_goals": 0.1826,
                "expected_assists": 0.0026,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 9,
                "accurate_pass": 4,
                "aerial_won": 2,
                "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": 2545,
            "combined_rank_score": 1059.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 915.0,
            "sofascore_rating": 6.5,
            "sofascore_appearances": 3.0,
            "fifa_rank": 1204.0,
            "fifa_overall": 78.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 15,
            "squad_role": "substitute",
            "projected_match_rating": 6.5582,
            "source_file": "data/player_rankings.csv",
            "player_name": "Asier Villalibre",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Julian Valarino",
                  "ranking": 2540
                },
                {
                  "player_name": "Raphael Ayagwa",
                  "ranking": 2541
                },
                {
                  "player_name": "Lucas Molina",
                  "ranking": 2542
                },
                {
                  "player_name": "Seok-yeong Yun",
                  "ranking": 2543
                },
                {
                  "player_name": "Lorenzo Lazzari",
                  "ranking": 2544
                }
              ],
              "lower": [
                {
                  "player_name": "Jean Carlos Montaño",
                  "ranking": 2546
                },
                {
                  "player_name": "Roderick Miller",
                  "ranking": 2547
                },
                {
                  "player_name": "Bastián Sandoval",
                  "ranking": 2548
                },
                {
                  "player_name": "Byron Navarro",
                  "ranking": 2549
                },
                {
                  "player_name": "Adam Bugarija",
                  "ranking": 2550
                }
              ]
            }
          },
          "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",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.438,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 25.292222187561247,
            "bench_appearance_prob": 0.5587373721618749,
            "market_value_adjustment": 0.9812,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost F_service (3 historical appearances) to 25.3 expected mins (appearance prob 0.56)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 6 target models",
              "stats": {
                "expected_goals": 0.1027,
                "goal_rate": 0.1659,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0262,
                "key_pass": 0,
                "rating": 6.6837,
                "minutes": 51,
                "total_pass": 7,
                "accurate_pass": 4,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 8.33,
                "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": 1,
                "assists": 0,
                "shots_off_target": 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
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:52.318462+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 278,
                    "rows": 769
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Elche",
                    "minutes": 21.0,
                    "is_starting": false,
                    "weight": 0.3887,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Getafe",
                    "minutes": 64.0,
                    "is_starting": true,
                    "weight": 0.3304,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-16",
                    "opponent": "Villarreal",
                    "minutes": 69.0,
                    "is_starting": true,
                    "weight": 0.2809,
                    "rating": 6.1
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 0.0,
                  "onTargetScoringAttempt": 0.3887,
                  "totalShots": 0.6696,
                  "minutesPlayed": 48.689,
                  "touches": 15.8173,
                  "dribbleValueNormalized": 0.1937
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.10266821086406708,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.093
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0745
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0545
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.043
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0314
                      }
                    ],
                    "decomposition": {
                      "base": 0.2757,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0602
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0273
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0104
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0095
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": -0.0091
                        }
                      ],
                      "others": -0.0755,
                      "total": 0.1027
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.1658586859703064,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0371
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0298
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.3455,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0545
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0442
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0328
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0173
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": 0.0158
                        }
                      ],
                      "others": -0.0812,
                      "total": 0.1659
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.46368908882141113,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0703
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0486
                      },
                      {
                        "name": "touches",
                        "importance": 0.0401
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0347
                      }
                    ],
                    "decomposition": {
                      "base": 0.6329,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0456
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0288
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0196
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0159
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": -0.014
                        }
                      ],
                      "others": -0.0453,
                      "total": 0.4637
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.026229199022054672,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0802
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0621
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0547
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0537
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0397
                      }
                    ],
                    "decomposition": {
                      "base": 0.0579,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0096
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0052
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0043
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0033
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": -0.0024
                        }
                      ],
                      "others": -0.0069,
                      "total": 0.0262
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.40193769335746765,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0738
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0657
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0615
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0458
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0313
                      }
                    ],
                    "decomposition": {
                      "base": 0.6829,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1945
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0258
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0229
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0201
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0172
                        }
                      ],
                      "others": -0.0349,
                      "total": 0.4019
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.6836676597595215,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "speed_threat",
                        "importance": 0.0598
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0489
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0439
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0404
                      }
                    ],
                    "decomposition": {
                      "base": 6.7136,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0584
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0453
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0349
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0332
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0306
                        }
                      ],
                      "others": 0.0557,
                      "total": 6.6837
                    }
                  }
                ],
                "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": {
                "expected_goals": 0.1007,
                "goal_rate": 0.1627,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0257,
                "key_pass": 0,
                "rating": 6.5582,
                "minutes": 50,
                "total_pass": 7,
                "accurate_pass": 4,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 8.1736,
                "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": 1,
                "assists": 0,
                "shots_off_target": 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
              },
              "params": {
                "market_value_eur": 2100000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9812
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 25.3 expected minutes (appearance prob 0.56)",
              "stats": {
                "expected_goals": 0.0283,
                "goal_rate": 0.0457,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0072,
                "key_pass": 0,
                "rating": 6.5582,
                "minutes": 25,
                "total_pass": 2,
                "accurate_pass": 1,
                "duels_won": 1,
                "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": 5,
                "possession_lost": 2.297,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29
              },
              "params": {
                "expected_minutes": 25.29,
                "appearance_probability": 0.559
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0283,
                "goal_rate": 0.0457,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0072,
                "key_pass": 0,
                "rating": 6.5582,
                "minutes": 25,
                "total_pass": 2,
                "accurate_pass": 1,
                "duels_won": 1,
                "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": 5,
                "possession_lost": 2.297,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.8388, xG scale 1.2136)",
              "stats": {
                "expected_goals": 0.0343,
                "goal_rate": 0.0457,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0072,
                "key_pass": 0,
                "rating": 6.5582,
                "minutes": 25,
                "total_pass": 2,
                "accurate_pass": 1,
                "duels_won": 1,
                "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": 5,
                "possession_lost": 2.297,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.242,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.018,
                "squad_xg_sum": 0.8388,
                "xg_scale": 1.2136,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0283,
                  "after": 0.0343
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 15, fifa_overall 78.0)",
              "stats": {
                "expected_goals": 0.0343,
                "goal_rate": 0.0457,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0072,
                "key_pass": 0,
                "rating": 6.5582,
                "minutes": 25,
                "total_pass": 2,
                "accurate_pass": 1,
                "duels_won": 1,
                "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": 5,
                "possession_lost": 2.297,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.242,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 78.0
              },
              "params": {
                "match_squad_rank": 15,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 2545,
                "fifa_rank": 1204.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 78.0
              }
            }
          ]
        },
        "Juan Carlos Arana": {
          "player_id": 1084464,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 9,
          "height": 182,
          "market_value": 1100000,
          "stats": {
            "expected_goals": 0.0358,
            "goal_rate": 0.0414,
            "goals": 0,
            "shots_on_target": 0,
            "expected_assists": 0.0064,
            "key_pass": 0,
            "rating": 6.2605,
            "minutes": 25,
            "total_pass": 0,
            "accurate_pass": 0,
            "duels_won": 1,
            "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.2757,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assists": 0,
            "shots_off_target": 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,
            "bench_appearance_probability": 0.559,
            "bench_expected_minutes": 25.29,
            "projected_substitution_order": 1,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.242,
            "projected_substitution_game_state_adjustment": 0,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 77.0
          },
          "latest_10_games": [
            {
              "match_id": 16416321.0,
              "match_date": "2026-09-05",
              "home_team": "Rayo Vallecano",
              "away_team": "Real Racing Club",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Racing Club",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 1,
                "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": "away",
              "is_starting_11": 0,
              "team": "Real Racing Club",
              "opponent": "Getafe",
              "stats": {
                "minutes": 9,
                "rating": 6.4,
                "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": 2804,
            "combined_rank_score": 1265.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 959.0,
            "sofascore_rating": 6.4,
            "sofascore_appearances": 1.0,
            "fifa_rank": 1572.0,
            "fifa_overall": 77.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 18,
            "squad_role": "substitute",
            "projected_match_rating": 6.2605,
            "source_file": "data/player_rankings.csv",
            "player_name": "Juan Carlos Arana",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Andrin Netzer",
                  "ranking": 2799
                },
                {
                  "player_name": "Kim Gyeol",
                  "ranking": 2800
                },
                {
                  "player_name": "Brede Moe",
                  "ranking": 2801
                },
                {
                  "player_name": "Jamaal Lascelles",
                  "ranking": 2802
                },
                {
                  "player_name": "Riki Rodríguez",
                  "ranking": 2803
                }
              ],
              "lower": [
                {
                  "player_name": "Gnangoro Bouaré",
                  "ranking": 2805
                },
                {
                  "player_name": "Marc Santos",
                  "ranking": 2806
                },
                {
                  "player_name": "Juan Quintero",
                  "ranking": 2807
                },
                {
                  "player_name": "Junior Paredes",
                  "ranking": 2808
                },
                {
                  "player_name": "Fabrizio Angileri",
                  "ranking": 2809
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.375,
          "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",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 2,
            "data_confidence": 0.375,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 25.292222187561247,
            "bench_appearance_prob": 0.5587373721618749,
            "market_value_adjustment": 0.9812,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost F_service (2 historical appearances) to 25.3 expected mins (appearance prob 0.56)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 6 target models",
              "stats": {
                "expected_goals": 0.1068,
                "goal_rate": 0.15,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0232,
                "key_pass": 0,
                "rating": 6.3802,
                "minutes": 5,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 3,
                "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": 2,
                "possession_lost": 1.0,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:52.318462+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 278,
                    "rows": 769
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Rayo Vallecano",
                    "minutes": 1.0,
                    "is_starting": false,
                    "weight": 0.5405,
                    "rating": null
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Getafe",
                    "minutes": 9.0,
                    "is_starting": false,
                    "weight": 0.4595,
                    "rating": 6.4
                  }
                ],
                "feature_row": {
                  "history_matches": 2.0,
                  "is_starting_11": 0.0,
                  "onTargetScoringAttempt": 0.0,
                  "totalShots": 0.0,
                  "minutesPlayed": 4.6757,
                  "touches": 1.5405,
                  "dribbleValueNormalized": 0.0
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.10682615637779236,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.093
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0745
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0545
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.043
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0314
                      }
                    ],
                    "decomposition": {
                      "base": 0.2757,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0541
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0415
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0189
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0155
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0117
                        }
                      ],
                      "others": -0.0506,
                      "total": 0.1068
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.15002372860908508,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0371
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0298
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.3455,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0733
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.039
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0322
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0242
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0156
                        }
                      ],
                      "others": -0.0424,
                      "total": 0.15
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.5238520503044128,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0703
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0486
                      },
                      {
                        "name": "touches",
                        "importance": 0.0401
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0347
                      }
                    ],
                    "decomposition": {
                      "base": 0.6329,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.039
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.036
                        },
                        {
                          "name": "topSpeed",
                          "contribution": 0.0359
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": 0.0233
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0166
                        }
                      ],
                      "others": -0.0766,
                      "total": 0.5239
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.02315662056207657,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0802
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0621
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0547
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0537
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0397
                      }
                    ],
                    "decomposition": {
                      "base": 0.0579,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0109
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0076
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0054
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0041
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0035
                        }
                      ],
                      "others": -0.0032,
                      "total": 0.0232
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.475079208612442,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0738
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0657
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0615
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0458
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0313
                      }
                    ],
                    "decomposition": {
                      "base": 0.6829,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1541
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0687
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0473
                        },
                        {
                          "name": "duelWon",
                          "contribution": -0.0437
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0308
                        }
                      ],
                      "others": -0.0952,
                      "total": 0.4751
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.380226135253906,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "speed_threat",
                        "importance": 0.0598
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0489
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0439
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0404
                      }
                    ],
                    "decomposition": {
                      "base": 6.7136,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.1591
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.159
                        },
                        {
                          "name": "topSpeed",
                          "contribution": 0.1455
                        },
                        {
                          "name": "speed_threat",
                          "contribution": 0.0768
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": -0.0748
                        }
                      ],
                      "others": -0.1628,
                      "total": 6.3802
                    }
                  }
                ],
                "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": {
                "expected_goals": 0.1048,
                "goal_rate": 0.1472,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0227,
                "key_pass": 0,
                "rating": 6.2605,
                "minutes": 5,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 3,
                "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": 1,
                "possession_lost": 0.9812,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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
              },
              "params": {
                "market_value_eur": 1100000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9812
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 25.3 expected minutes (appearance prob 0.56)",
              "stats": {
                "expected_goals": 0.0295,
                "goal_rate": 0.0414,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0064,
                "key_pass": 0,
                "rating": 6.2605,
                "minutes": 25,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 1,
                "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.2757,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29
              },
              "params": {
                "expected_minutes": 25.29,
                "appearance_probability": 0.559
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0295,
                "goal_rate": 0.0414,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0064,
                "key_pass": 0,
                "rating": 6.2605,
                "minutes": 25,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 1,
                "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.2757,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.8388, xG scale 1.2136)",
              "stats": {
                "expected_goals": 0.0358,
                "goal_rate": 0.0414,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0064,
                "key_pass": 0,
                "rating": 6.2605,
                "minutes": 25,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 1,
                "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.2757,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.242,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.018,
                "squad_xg_sum": 0.8388,
                "xg_scale": 1.2136,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0295,
                  "after": 0.0358
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 18, fifa_overall 77.0)",
              "stats": {
                "expected_goals": 0.0358,
                "goal_rate": 0.0414,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0064,
                "key_pass": 0,
                "rating": 6.2605,
                "minutes": 25,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 1,
                "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.2757,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.242,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 77.0
              },
              "params": {
                "match_squad_rank": 18,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 2804,
                "fifa_rank": 1572.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 77.0
              }
            }
          ]
        }
      },
      "substitutes": {
        "Juan Carlos Arana": {
          "player_id": 1084464,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 9,
          "height": 182,
          "market_value": 1100000,
          "stats": {
            "expected_goals": 0.0358,
            "goal_rate": 0.0414,
            "goals": 0,
            "shots_on_target": 0,
            "expected_assists": 0.0064,
            "key_pass": 0,
            "rating": 6.2605,
            "minutes": 25,
            "total_pass": 0,
            "accurate_pass": 0,
            "duels_won": 1,
            "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.2757,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assists": 0,
            "shots_off_target": 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,
            "bench_appearance_probability": 0.559,
            "bench_expected_minutes": 25.29,
            "projected_substitution_order": 1,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.242,
            "projected_substitution_game_state_adjustment": 0,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 77.0
          },
          "latest_10_games": [
            {
              "match_id": 16416321.0,
              "match_date": "2026-09-05",
              "home_team": "Rayo Vallecano",
              "away_team": "Real Racing Club",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Racing Club",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 1,
                "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": "away",
              "is_starting_11": 0,
              "team": "Real Racing Club",
              "opponent": "Getafe",
              "stats": {
                "minutes": 9,
                "rating": 6.4,
                "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": 2804,
            "combined_rank_score": 1265.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 959.0,
            "sofascore_rating": 6.4,
            "sofascore_appearances": 1.0,
            "fifa_rank": 1572.0,
            "fifa_overall": 77.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 18,
            "squad_role": "substitute",
            "projected_match_rating": 6.2605,
            "source_file": "data/player_rankings.csv",
            "player_name": "Juan Carlos Arana",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Andrin Netzer",
                  "ranking": 2799
                },
                {
                  "player_name": "Kim Gyeol",
                  "ranking": 2800
                },
                {
                  "player_name": "Brede Moe",
                  "ranking": 2801
                },
                {
                  "player_name": "Jamaal Lascelles",
                  "ranking": 2802
                },
                {
                  "player_name": "Riki Rodríguez",
                  "ranking": 2803
                }
              ],
              "lower": [
                {
                  "player_name": "Gnangoro Bouaré",
                  "ranking": 2805
                },
                {
                  "player_name": "Marc Santos",
                  "ranking": 2806
                },
                {
                  "player_name": "Juan Quintero",
                  "ranking": 2807
                },
                {
                  "player_name": "Junior Paredes",
                  "ranking": 2808
                },
                {
                  "player_name": "Fabrizio Angileri",
                  "ranking": 2809
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.375,
          "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",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 2,
            "data_confidence": 0.375,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 25.292222187561247,
            "bench_appearance_prob": 0.5587373721618749,
            "market_value_adjustment": 0.9812,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost F_service (2 historical appearances) to 25.3 expected mins (appearance prob 0.56)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 6 target models",
              "stats": {
                "expected_goals": 0.1068,
                "goal_rate": 0.15,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0232,
                "key_pass": 0,
                "rating": 6.3802,
                "minutes": 5,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 3,
                "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": 2,
                "possession_lost": 1.0,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:52.318462+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 278,
                    "rows": 769
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Rayo Vallecano",
                    "minutes": 1.0,
                    "is_starting": false,
                    "weight": 0.5405,
                    "rating": null
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Getafe",
                    "minutes": 9.0,
                    "is_starting": false,
                    "weight": 0.4595,
                    "rating": 6.4
                  }
                ],
                "feature_row": {
                  "history_matches": 2.0,
                  "is_starting_11": 0.0,
                  "onTargetScoringAttempt": 0.0,
                  "totalShots": 0.0,
                  "minutesPlayed": 4.6757,
                  "touches": 1.5405,
                  "dribbleValueNormalized": 0.0
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.10682615637779236,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.093
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0745
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0545
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.043
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0314
                      }
                    ],
                    "decomposition": {
                      "base": 0.2757,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0541
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0415
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0189
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0155
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0117
                        }
                      ],
                      "others": -0.0506,
                      "total": 0.1068
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.15002372860908508,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0371
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0298
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.3455,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0733
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.039
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0322
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0242
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0156
                        }
                      ],
                      "others": -0.0424,
                      "total": 0.15
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.5238520503044128,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0703
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0486
                      },
                      {
                        "name": "touches",
                        "importance": 0.0401
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0347
                      }
                    ],
                    "decomposition": {
                      "base": 0.6329,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.039
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.036
                        },
                        {
                          "name": "topSpeed",
                          "contribution": 0.0359
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": 0.0233
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0166
                        }
                      ],
                      "others": -0.0766,
                      "total": 0.5239
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.02315662056207657,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0802
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0621
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0547
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0537
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0397
                      }
                    ],
                    "decomposition": {
                      "base": 0.0579,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0109
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0076
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0054
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0041
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0035
                        }
                      ],
                      "others": -0.0032,
                      "total": 0.0232
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.475079208612442,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0738
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0657
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0615
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0458
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0313
                      }
                    ],
                    "decomposition": {
                      "base": 0.6829,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1541
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0687
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0473
                        },
                        {
                          "name": "duelWon",
                          "contribution": -0.0437
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0308
                        }
                      ],
                      "others": -0.0952,
                      "total": 0.4751
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.380226135253906,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "speed_threat",
                        "importance": 0.0598
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0489
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0439
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0404
                      }
                    ],
                    "decomposition": {
                      "base": 6.7136,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.1591
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.159
                        },
                        {
                          "name": "topSpeed",
                          "contribution": 0.1455
                        },
                        {
                          "name": "speed_threat",
                          "contribution": 0.0768
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": -0.0748
                        }
                      ],
                      "others": -0.1628,
                      "total": 6.3802
                    }
                  }
                ],
                "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": {
                "expected_goals": 0.1048,
                "goal_rate": 0.1472,
                "goals": 0,
                "shots_on_target": 1,
                "expected_assists": 0.0227,
                "key_pass": 0,
                "rating": 6.2605,
                "minutes": 5,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 3,
                "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": 1,
                "possession_lost": 0.9812,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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
              },
              "params": {
                "market_value_eur": 1100000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9812
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 25.3 expected minutes (appearance prob 0.56)",
              "stats": {
                "expected_goals": 0.0295,
                "goal_rate": 0.0414,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0064,
                "key_pass": 0,
                "rating": 6.2605,
                "minutes": 25,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 1,
                "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.2757,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29
              },
              "params": {
                "expected_minutes": 25.29,
                "appearance_probability": 0.559
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0295,
                "goal_rate": 0.0414,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0064,
                "key_pass": 0,
                "rating": 6.2605,
                "minutes": 25,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 1,
                "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.2757,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.8388, xG scale 1.2136)",
              "stats": {
                "expected_goals": 0.0358,
                "goal_rate": 0.0414,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0064,
                "key_pass": 0,
                "rating": 6.2605,
                "minutes": 25,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 1,
                "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.2757,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.242,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.018,
                "squad_xg_sum": 0.8388,
                "xg_scale": 1.2136,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0295,
                  "after": 0.0358
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 18, fifa_overall 77.0)",
              "stats": {
                "expected_goals": 0.0358,
                "goal_rate": 0.0414,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0064,
                "key_pass": 0,
                "rating": 6.2605,
                "minutes": 25,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 1,
                "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.2757,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.242,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 77.0
              },
              "params": {
                "match_squad_rank": 18,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 2804,
                "fifa_rank": 1572.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 77.0
              }
            }
          ]
        },
        "Asier Villalibre": {
          "player_id": 355072,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 12,
          "height": 183,
          "market_value": 2100000,
          "stats": {
            "expected_goals": 0.0343,
            "goal_rate": 0.0457,
            "goals": 0,
            "shots_on_target": 0,
            "expected_assists": 0.0072,
            "key_pass": 0,
            "rating": 6.5582,
            "minutes": 25,
            "total_pass": 2,
            "accurate_pass": 1,
            "duels_won": 1,
            "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": 5,
            "possession_lost": 2.297,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assists": 0,
            "shots_off_target": 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,
            "bench_appearance_probability": 0.559,
            "bench_expected_minutes": 25.29,
            "projected_substitution_order": 2,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.242,
            "projected_substitution_game_state_adjustment": 0,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 78.0
          },
          "latest_10_games": [
            {
              "match_id": 16416304.0,
              "match_date": "2026-08-28",
              "home_team": "Real Racing Club",
              "away_team": "Elche",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Racing Club",
              "opponent": "Elche",
              "stats": {
                "minutes": 21,
                "rating": 7.0,
                "assists": 0,
                "expected_goals": 0.2445,
                "expected_assists": 0.0005,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 5,
                "accurate_pass": 3,
                "clearances": 2,
                "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": 16416300.0,
              "match_date": "2026-08-23",
              "home_team": "Getafe",
              "away_team": "Real Racing Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Racing Club",
              "opponent": "Getafe",
              "stats": {
                "minutes": 64,
                "rating": 6.4,
                "assists": 0,
                "expected_assists": 0.0017,
                "total_shots": 0,
                "total_pass": 6,
                "accurate_pass": 4,
                "clearances": 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": 16421061.0,
              "match_date": "2026-08-16",
              "home_team": "Real Racing Club",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Racing Club",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 69,
                "rating": 6.1,
                "assists": 0,
                "expected_goals": 0.1826,
                "expected_assists": 0.0026,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 9,
                "accurate_pass": 4,
                "aerial_won": 2,
                "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": 2545,
            "combined_rank_score": 1059.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 915.0,
            "sofascore_rating": 6.5,
            "sofascore_appearances": 3.0,
            "fifa_rank": 1204.0,
            "fifa_overall": 78.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 15,
            "squad_role": "substitute",
            "projected_match_rating": 6.5582,
            "source_file": "data/player_rankings.csv",
            "player_name": "Asier Villalibre",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Julian Valarino",
                  "ranking": 2540
                },
                {
                  "player_name": "Raphael Ayagwa",
                  "ranking": 2541
                },
                {
                  "player_name": "Lucas Molina",
                  "ranking": 2542
                },
                {
                  "player_name": "Seok-yeong Yun",
                  "ranking": 2543
                },
                {
                  "player_name": "Lorenzo Lazzari",
                  "ranking": 2544
                }
              ],
              "lower": [
                {
                  "player_name": "Jean Carlos Montaño",
                  "ranking": 2546
                },
                {
                  "player_name": "Roderick Miller",
                  "ranking": 2547
                },
                {
                  "player_name": "Bastián Sandoval",
                  "ranking": 2548
                },
                {
                  "player_name": "Byron Navarro",
                  "ranking": 2549
                },
                {
                  "player_name": "Adam Bugarija",
                  "ranking": 2550
                }
              ]
            }
          },
          "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",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.438,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 25.292222187561247,
            "bench_appearance_prob": 0.5587373721618749,
            "market_value_adjustment": 0.9812,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost F_service (3 historical appearances) to 25.3 expected mins (appearance prob 0.56)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 6 target models",
              "stats": {
                "expected_goals": 0.1027,
                "goal_rate": 0.1659,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0262,
                "key_pass": 0,
                "rating": 6.6837,
                "minutes": 51,
                "total_pass": 7,
                "accurate_pass": 4,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 8.33,
                "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": 1,
                "assists": 0,
                "shots_off_target": 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
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:52.318462+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 278,
                    "rows": 769
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Elche",
                    "minutes": 21.0,
                    "is_starting": false,
                    "weight": 0.3887,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Getafe",
                    "minutes": 64.0,
                    "is_starting": true,
                    "weight": 0.3304,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-16",
                    "opponent": "Villarreal",
                    "minutes": 69.0,
                    "is_starting": true,
                    "weight": 0.2809,
                    "rating": 6.1
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 0.0,
                  "onTargetScoringAttempt": 0.3887,
                  "totalShots": 0.6696,
                  "minutesPlayed": 48.689,
                  "touches": 15.8173,
                  "dribbleValueNormalized": 0.1937
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.10266821086406708,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.093
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0745
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0545
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.043
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0314
                      }
                    ],
                    "decomposition": {
                      "base": 0.2757,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0602
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0273
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0104
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0095
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": -0.0091
                        }
                      ],
                      "others": -0.0755,
                      "total": 0.1027
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.1658586859703064,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0371
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0298
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.3455,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0545
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0442
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0328
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0173
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": 0.0158
                        }
                      ],
                      "others": -0.0812,
                      "total": 0.1659
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.46368908882141113,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0703
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0486
                      },
                      {
                        "name": "touches",
                        "importance": 0.0401
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0347
                      }
                    ],
                    "decomposition": {
                      "base": 0.6329,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0456
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0288
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0196
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0159
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": -0.014
                        }
                      ],
                      "others": -0.0453,
                      "total": 0.4637
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.026229199022054672,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0802
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0621
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0547
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0537
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0397
                      }
                    ],
                    "decomposition": {
                      "base": 0.0579,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0096
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0052
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0043
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0033
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": -0.0024
                        }
                      ],
                      "others": -0.0069,
                      "total": 0.0262
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.40193769335746765,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0738
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0657
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0615
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0458
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0313
                      }
                    ],
                    "decomposition": {
                      "base": 0.6829,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1945
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0258
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0229
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0201
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0172
                        }
                      ],
                      "others": -0.0349,
                      "total": 0.4019
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.6836676597595215,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "speed_threat",
                        "importance": 0.0598
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0489
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0439
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0404
                      }
                    ],
                    "decomposition": {
                      "base": 6.7136,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0584
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0453
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0349
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0332
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0306
                        }
                      ],
                      "others": 0.0557,
                      "total": 6.6837
                    }
                  }
                ],
                "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": {
                "expected_goals": 0.1007,
                "goal_rate": 0.1627,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0257,
                "key_pass": 0,
                "rating": 6.5582,
                "minutes": 50,
                "total_pass": 7,
                "accurate_pass": 4,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 8.1736,
                "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": 1,
                "assists": 0,
                "shots_off_target": 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
              },
              "params": {
                "market_value_eur": 2100000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9812
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 25.3 expected minutes (appearance prob 0.56)",
              "stats": {
                "expected_goals": 0.0283,
                "goal_rate": 0.0457,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0072,
                "key_pass": 0,
                "rating": 6.5582,
                "minutes": 25,
                "total_pass": 2,
                "accurate_pass": 1,
                "duels_won": 1,
                "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": 5,
                "possession_lost": 2.297,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29
              },
              "params": {
                "expected_minutes": 25.29,
                "appearance_probability": 0.559
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0283,
                "goal_rate": 0.0457,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0072,
                "key_pass": 0,
                "rating": 6.5582,
                "minutes": 25,
                "total_pass": 2,
                "accurate_pass": 1,
                "duels_won": 1,
                "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": 5,
                "possession_lost": 2.297,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.02 (squad xG sum 0.8388, xG scale 1.2136)",
              "stats": {
                "expected_goals": 0.0343,
                "goal_rate": 0.0457,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0072,
                "key_pass": 0,
                "rating": 6.5582,
                "minutes": 25,
                "total_pass": 2,
                "accurate_pass": 1,
                "duels_won": 1,
                "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": 5,
                "possession_lost": 2.297,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.242,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.018,
                "squad_xg_sum": 0.8388,
                "xg_scale": 1.2136,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0283,
                  "after": 0.0343
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 15, fifa_overall 78.0)",
              "stats": {
                "expected_goals": 0.0343,
                "goal_rate": 0.0457,
                "goals": 0,
                "shots_on_target": 0,
                "expected_assists": 0.0072,
                "key_pass": 0,
                "rating": 6.5582,
                "minutes": 25,
                "total_pass": 2,
                "accurate_pass": 1,
                "duels_won": 1,
                "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": 5,
                "possession_lost": 2.297,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 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,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.242,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 78.0
              },
              "params": {
                "match_squad_rank": 15,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 2545,
                "fifa_rank": 1204.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 78.0
              }
            }
          ]
        }
      },
      "team_totals": {
        "projected_goals": 1,
        "expected_goals": 1.02,
        "expected_assists": 0.57,
        "total_shots": 11,
        "shots_on_target": 2,
        "total_passes": 251,
        "interceptions": 4,
        "tackles": 8,
        "avg_rating": 6.79,
        "possession_estimated_pct": 49.0,
        "pressing_actions_per_90": 6.4
      }
    }
  },
  "antagonist_report": {
    "home_attacking_duels": [
      {
        "attacker": "Sergio Carreira",
        "attacker_role": "LWB",
        "attacker_market_value": 11500000,
        "attacker_height": 170,
        "attacker_skill_quality": 0.54,
        "defenders": [
          "Matteo Prati"
        ],
        "defender_roles": [
          "RWB"
        ],
        "def_skill_quality_avg": 0.462,
        "duel_zone": "LWB vs RWB",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.407,
        "xg_contribution": 0.0629,
        "shots_in_zone": 1.0,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.7,
        "aerial_duels": 2,
        "aerial_won": 0.8,
        "crosses_in_zone": 2.4,
        "fouls_drawn": 1.2,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Matteo Prati",
            "role": "RWB",
            "market_value": 5000000,
            "tackles_attempted": 1.9,
            "tackles_won": 1.7,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 1.2,
            "defensive_success_rate": 0.593
          }
        ],
        "duel_analysis": "Sergio Carreira (LWB) faces tough defensive resistance against Matteo Prati in a direct 1v1 contest. Duel win probability: 41%.  Projected xG contribution: 0.063 — and is restricted in space and time on the ball."
      },
      {
        "attacker": "Williot Swedberg",
        "attacker_role": "CM",
        "attacker_market_value": 18700000,
        "attacker_height": 185,
        "attacker_skill_quality": 0.618,
        "defenders": [
          "André Almeida"
        ],
        "defender_roles": [
          "CDM"
        ],
        "def_skill_quality_avg": 0.477,
        "duel_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.55,
        "xg_contribution": 0.0941,
        "shots_in_zone": 1.9,
        "dribbles_attempted": 2,
        "dribbles_successful": 1.0,
        "aerial_duels": 2,
        "aerial_won": 1.2,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.1,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "André Almeida",
            "role": "CDM",
            "market_value": 6200000,
            "tackles_attempted": 2.0,
            "tackles_won": 1.5,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.8,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 0.8,
            "defensive_success_rate": 0.45
          }
        ],
        "duel_analysis": "Williot Swedberg (CM) is slightly favored against André Almeida in a direct 1v1 contest. Duel win probability: 55%.  Projected xG contribution: 0.094 — creating consistent moderate threat."
      },
      {
        "attacker": "Miguel Román",
        "attacker_role": "CM",
        "attacker_market_value": 14400000,
        "attacker_height": 178,
        "attacker_skill_quality": 0.573,
        "defenders": [
          "André Almeida"
        ],
        "defender_roles": [
          "CDM"
        ],
        "def_skill_quality_avg": 0.477,
        "duel_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.501,
        "xg_contribution": 0.0696,
        "shots_in_zone": 1.8,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.9,
        "aerial_duels": 2,
        "aerial_won": 1.0,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.1,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "André Almeida",
            "role": "CDM",
            "market_value": 6200000,
            "tackles_attempted": 2.0,
            "tackles_won": 1.6,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.8,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 1.0,
            "defensive_success_rate": 0.499
          }
        ],
        "duel_analysis": "Miguel Román (CM) is slightly favored against André Almeida in a direct 1v1 contest. Duel win probability: 50%.  Projected xG contribution: 0.070 — creating consistent moderate threat."
      },
      {
        "attacker": "Hugo Álvarez",
        "attacker_role": "RWB",
        "attacker_market_value": 7800000,
        "attacker_height": 176,
        "attacker_skill_quality": 0.496,
        "defenders": [
          "Iñigo Vicente"
        ],
        "defender_roles": [
          "LWB"
        ],
        "def_skill_quality_avg": 0.482,
        "duel_zone": "RWB vs LWB",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.419,
        "xg_contribution": 0.0856,
        "shots_in_zone": 1.0,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.7,
        "aerial_duels": 2,
        "aerial_won": 0.9,
        "crosses_in_zone": 2.3,
        "fouls_drawn": 1.2,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Iñigo Vicente",
            "role": "LWB",
            "market_value": 6600000,
            "tackles_attempted": 2.0,
            "tackles_won": 1.7,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.8,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 1.1,
            "defensive_success_rate": 0.581
          }
        ],
        "duel_analysis": "Hugo Álvarez (RWB) faces tough defensive resistance against Iñigo Vicente in a direct 1v1 contest. Duel win probability: 42%.  Projected xG contribution: 0.086 — and is restricted in space and time on the ball."
      },
      {
        "attacker": "Ferrán Jutglà",
        "attacker_role": "ST",
        "attacker_market_value": 10700000,
        "attacker_height": 175,
        "attacker_skill_quality": 0.531,
        "defenders": [
          "Jeanuël Belocian",
          "Jorge Salinas"
        ],
        "defender_roles": [
          "CB",
          "CB"
        ],
        "def_skill_quality_avg": 0.53,
        "duel_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "numerical_situation": "1v2",
        "duel_win_rate": 0.18,
        "xg_contribution": 0.1143,
        "shots_in_zone": 2.0,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.3,
        "aerial_duels": 3,
        "aerial_won": 1.4,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.5,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Jeanuël Belocian",
            "role": "CB",
            "market_value": 12900000,
            "tackles_attempted": 1.0,
            "tackles_won": 1.1,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 0.9,
            "clearances_in_zone": 0.8,
            "aerial_duels_won": 0.8,
            "defensive_success_rate": 0.82
          },
          {
            "player": "Jorge Salinas",
            "role": "CB",
            "market_value": 8500000,
            "tackles_attempted": 1.0,
            "tackles_won": 1.1,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 0.8,
            "clearances_in_zone": 0.7,
            "aerial_duels_won": 0.8,
            "defensive_success_rate": 0.82
          }
        ],
        "duel_analysis": "Ferrán Jutglà (ST) is heavily outmatched defensively against Jeanuël Belocian and Jorge Salinas in a 2-defender block. Duel win probability: 18%.  Projected xG contribution: 0.114 — with very limited chance creation expected."
      },
      {
        "attacker": "Jones El-Abdellaoui",
        "attacker_role": "ST",
        "attacker_market_value": 8400000,
        "attacker_height": 184,
        "attacker_skill_quality": 0.503,
        "defenders": [
          "Jeanuël Belocian",
          "Jorge Salinas"
        ],
        "defender_roles": [
          "CB",
          "CB"
        ],
        "def_skill_quality_avg": 0.53,
        "duel_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "numerical_situation": "1v2",
        "duel_win_rate": 0.19,
        "xg_contribution": 0.1269,
        "shots_in_zone": 2.1,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.3,
        "aerial_duels": 3,
        "aerial_won": 1.7,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.5,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Jeanuël Belocian",
            "role": "CB",
            "market_value": 12900000,
            "tackles_attempted": 1.0,
            "tackles_won": 1.1,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 0.9,
            "clearances_in_zone": 0.8,
            "aerial_duels_won": 0.6,
            "defensive_success_rate": 0.81
          },
          {
            "player": "Jorge Salinas",
            "role": "CB",
            "market_value": 8500000,
            "tackles_attempted": 1.0,
            "tackles_won": 1.1,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 0.8,
            "clearances_in_zone": 0.7,
            "aerial_duels_won": 0.6,
            "defensive_success_rate": 0.81
          }
        ],
        "duel_analysis": "Jones El-Abdellaoui (ST) is heavily outmatched defensively against Jeanuël Belocian and Jorge Salinas in a 2-defender block. Duel win probability: 19%.  Projected xG contribution: 0.127 — with very limited chance creation expected."
      }
    ],
    "away_attacking_duels": [
      {
        "attacker": "Iñigo Vicente",
        "attacker_role": "LWB",
        "attacker_market_value": 6600000,
        "attacker_height": 178,
        "attacker_skill_quality": 0.482,
        "defenders": [
          "Hugo Álvarez"
        ],
        "defender_roles": [
          "RWB"
        ],
        "def_skill_quality_avg": 0.496,
        "duel_zone": "LWB vs RWB",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.421,
        "xg_contribution": 0.0501,
        "shots_in_zone": 1.0,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.7,
        "aerial_duels": 2,
        "aerial_won": 1.0,
        "crosses_in_zone": 2.3,
        "fouls_drawn": 1.2,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Hugo Álvarez",
            "role": "RWB",
            "market_value": 7800000,
            "tackles_attempted": 2.0,
            "tackles_won": 1.7,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.8,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 1.0,
            "defensive_success_rate": 0.579
          }
        ],
        "duel_analysis": "Iñigo Vicente (LWB) is evenly matched against Hugo Álvarez in a direct 1v1 contest. Duel win probability: 42%.  Projected xG contribution: 0.050 — with neither side clearly dominant."
      },
      {
        "attacker": "Pablo García",
        "attacker_role": "CM",
        "attacker_market_value": 8199999,
        "attacker_height": 175,
        "attacker_skill_quality": 0.501,
        "defenders": [
          "Ilaix Moriba"
        ],
        "defender_roles": [
          "CDM"
        ],
        "def_skill_quality_avg": 0.565,
        "duel_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.389,
        "xg_contribution": 0.0501,
        "shots_in_zone": 1.5,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.7,
        "aerial_duels": 2,
        "aerial_won": 0.9,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.2,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Ilaix Moriba",
            "role": "CDM",
            "market_value": 13700000,
            "tackles_attempted": 2.0,
            "tackles_won": 1.9,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 0.9,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 1.1,
            "defensive_success_rate": 0.611
          }
        ],
        "duel_analysis": "Pablo García (CM) faces tough defensive resistance against Ilaix Moriba in a direct 1v1 contest. Duel win probability: 39%.  Projected xG contribution: 0.050 — and is restricted in space and time on the ball."
      },
      {
        "attacker": "Andrés Martín",
        "attacker_role": "CM",
        "attacker_market_value": 8199999,
        "attacker_height": 178,
        "attacker_skill_quality": 0.501,
        "defenders": [
          "Ilaix Moriba"
        ],
        "defender_roles": [
          "CDM"
        ],
        "def_skill_quality_avg": 0.565,
        "duel_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.401,
        "xg_contribution": 0.1852,
        "shots_in_zone": 1.6,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.7,
        "aerial_duels": 2,
        "aerial_won": 1.0,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.2,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Ilaix Moriba",
            "role": "CDM",
            "market_value": 13700000,
            "tackles_attempted": 2.0,
            "tackles_won": 1.8,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 0.9,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 1.0,
            "defensive_success_rate": 0.599
          }
        ],
        "duel_analysis": "Andrés Martín (CM) faces tough defensive resistance against Ilaix Moriba in a direct 1v1 contest. Duel win probability: 40%.  Projected xG contribution: 0.185 — and is restricted in space and time on the ball."
      },
      {
        "attacker": "Matteo Prati",
        "attacker_role": "RWB",
        "attacker_market_value": 5000000,
        "attacker_height": 182,
        "attacker_skill_quality": 0.462,
        "defenders": [
          "Sergio Carreira"
        ],
        "defender_roles": [
          "LWB"
        ],
        "def_skill_quality_avg": 0.54,
        "duel_zone": "RWB vs LWB",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.433,
        "xg_contribution": 0.0378,
        "shots_in_zone": 1.0,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.8,
        "aerial_duels": 2,
        "aerial_won": 1.1,
        "crosses_in_zone": 2.2,
        "fouls_drawn": 1.1,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Sergio Carreira",
            "role": "LWB",
            "market_value": 11500000,
            "tackles_attempted": 2.0,
            "tackles_won": 1.7,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 0.9,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 0.9,
            "defensive_success_rate": 0.567
          }
        ],
        "duel_analysis": "Matteo Prati (RWB) is evenly matched against Sergio Carreira in a direct 1v1 contest. Duel win probability: 43%.  Projected xG contribution: 0.038 — with neither side clearly dominant."
      },
      {
        "attacker": "Yassir Zabiri",
        "attacker_role": "ST",
        "attacker_market_value": 9800000,
        "attacker_height": 182,
        "attacker_skill_quality": 0.52,
        "defenders": [
          "Javi Rodríguez",
          "Abdoulaye Faye"
        ],
        "defender_roles": [
          "CB",
          "CB"
        ],
        "def_skill_quality_avg": 0.529,
        "duel_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "numerical_situation": "1v2",
        "duel_win_rate": 0.18,
        "xg_contribution": 0.1823,
        "shots_in_zone": 2.0,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.3,
        "aerial_duels": 3,
        "aerial_won": 1.7,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.5,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Javi Rodríguez",
            "role": "CB",
            "market_value": 17500000,
            "tackles_attempted": 1.0,
            "tackles_won": 1.2,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 1.0,
            "clearances_in_zone": 0.8,
            "aerial_duels_won": 0.7,
            "defensive_success_rate": 0.82
          },
          {
            "player": "Abdoulaye Faye",
            "role": "CB",
            "market_value": 4200000,
            "tackles_attempted": 1.0,
            "tackles_won": 1.1,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.6,
            "aerial_duels_won": 0.7,
            "defensive_success_rate": 0.82
          }
        ],
        "duel_analysis": "Yassir Zabiri (ST) is heavily outmatched defensively against Javi Rodríguez and Abdoulaye Faye in a 2-defender block. Duel win probability: 18%.  Projected xG contribution: 0.182 — with very limited chance creation expected."
      },
      {
        "attacker": "Giorgi Guliashvili",
        "attacker_role": "ST",
        "attacker_market_value": 3400000,
        "attacker_height": 179,
        "attacker_skill_quality": 0.442,
        "defenders": [
          "Javi Rodríguez",
          "Abdoulaye Faye"
        ],
        "defender_roles": [
          "CB",
          "CB"
        ],
        "def_skill_quality_avg": 0.529,
        "duel_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "numerical_situation": "1v2",
        "duel_win_rate": 0.18,
        "xg_contribution": 0.1144,
        "shots_in_zone": 2.0,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.3,
        "aerial_duels": 3,
        "aerial_won": 1.5,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.5,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Javi Rodríguez",
            "role": "CB",
            "market_value": 17500000,
            "tackles_attempted": 1.0,
            "tackles_won": 1.2,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 1.0,
            "clearances_in_zone": 0.8,
            "aerial_duels_won": 0.7,
            "defensive_success_rate": 0.82
          },
          {
            "player": "Abdoulaye Faye",
            "role": "CB",
            "market_value": 4200000,
            "tackles_attempted": 1.0,
            "tackles_won": 1.1,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.6,
            "aerial_duels_won": 0.7,
            "defensive_success_rate": 0.82
          }
        ],
        "duel_analysis": "Giorgi Guliashvili (ST) is heavily outmatched defensively against Javi Rodríguez and Abdoulaye Faye in a 2-defender block. Duel win probability: 18%.  Projected xG contribution: 0.114 — with very limited chance creation expected."
      }
    ],
    "midfield_battle": {
      "home_midfield_power": 0.608,
      "away_midfield_power": 0.535,
      "home_creative_power": 0.475,
      "away_creative_power": 0.441,
      "home_defensive_power": 0.475,
      "away_defensive_power": 0.413,
      "home_dominance_ratio": 0.532,
      "home_midfield_count": 5,
      "away_midfield_count": 5,
      "home_midfield_players": [
        "Williot Swedberg",
        "Miguel Román",
        "Ilaix Moriba",
        "Sergio Carreira",
        "Hugo Álvarez"
      ],
      "away_midfield_players": [
        "Andrés Martín",
        "Pablo García",
        "Iñigo Vicente",
        "André Almeida",
        "Matteo Prati"
      ],
      "possession_advantage": "neutral",
      "estimated_possession_home_pct": 51.0,
      "estimated_possession_away_pct": 49.0,
      "home_pressing_actions_per_90": 6.8,
      "away_pressing_actions_per_90": 6.4,
      "home_key_passes_projected": 4.3,
      "away_key_passes_projected": 4.1,
      "home_throughball_threat": 2.0,
      "away_throughball_threat": 1.9,
      "key_personal_duel": "Williot Swedberg vs Andrés Martín",
      "midfield_lambda_factor_home": 1.012,
      "midfield_lambda_factor_away": 0.99
    },
    "formation_analysis": {
      "home_formation": "3-5-2",
      "away_formation": "3-5-2",
      "home_tactical_bonus": 0.0,
      "away_tactical_bonus": 0.0,
      "formation_verdict": "Tactical parity between 3-5-2 and 3-5-2. Match outcome driven primarily by individual player quality."
    },
    "home_lambda": 1.02,
    "away_lambda": 1.018,
    "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": [
      "Central Mid vs Defensive Mid — Pressing/Creation Duel",
      "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle"
    ],
    "home_player_antagonists": {
      "Sergio Carreira": {
        "opponents": [
          "Matteo Prati",
          "Iñigo Vicente"
        ],
        "primary_zone": "LWB vs RWB",
        "source": "attacking_duel, defensive_duel, midfield_pairing"
      },
      "Williot Swedberg": {
        "opponents": [
          "André Almeida",
          "Pablo García"
        ],
        "primary_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
        "source": "attacking_duel, midfield_pairing"
      },
      "Miguel Román": {
        "opponents": [
          "André Almeida",
          "Andrés Martín"
        ],
        "primary_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
        "source": "attacking_duel, midfield_pairing"
      },
      "Hugo Álvarez": {
        "opponents": [
          "Iñigo Vicente",
          "Matteo Prati"
        ],
        "primary_zone": "RWB vs LWB",
        "source": "attacking_duel, defensive_duel, midfield_pairing"
      },
      "Ferrán Jutglà": {
        "opponents": [
          "Jeanuël Belocian",
          "Jorge Salinas"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "attacking_duel"
      },
      "Jones El-Abdellaoui": {
        "opponents": [
          "Jeanuël Belocian",
          "Jorge Salinas"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "attacking_duel"
      },
      "Ilaix Moriba": {
        "opponents": [
          "Pablo García",
          "Andrés Martín",
          "André Almeida"
        ],
        "primary_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
        "source": "defensive_duel, midfield_pairing"
      },
      "Javi Rodríguez": {
        "opponents": [
          "Yassir Zabiri",
          "Giorgi Guliashvili"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "defensive_duel"
      },
      "Abdoulaye Faye": {
        "opponents": [
          "Yassir Zabiri",
          "Giorgi Guliashvili"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "defensive_duel"
      },
      "Ionuț Radu": {
        "opponents": [
          "Yassir Zabiri",
          "Giorgi Guliashvili"
        ],
        "primary_zone": "Shape fallback",
        "source": "formation_fallback"
      },
      "Sebastián Cáceres": {
        "opponents": [
          "Yassir Zabiri"
        ],
        "primary_zone": "Shape fallback",
        "source": "formation_fallback"
      }
    },
    "away_player_antagonists": {
      "Matteo Prati": {
        "opponents": [
          "Sergio Carreira",
          "Hugo Álvarez"
        ],
        "primary_zone": "LWB vs RWB",
        "source": "defensive_duel, attacking_duel, midfield_pairing"
      },
      "André Almeida": {
        "opponents": [
          "Williot Swedberg",
          "Miguel Román",
          "Ilaix Moriba"
        ],
        "primary_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
        "source": "defensive_duel, midfield_pairing"
      },
      "Iñigo Vicente": {
        "opponents": [
          "Hugo Álvarez",
          "Sergio Carreira"
        ],
        "primary_zone": "RWB vs LWB",
        "source": "defensive_duel, attacking_duel, midfield_pairing"
      },
      "Jeanuël Belocian": {
        "opponents": [
          "Ferrán Jutglà",
          "Jones El-Abdellaoui"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "defensive_duel"
      },
      "Jorge Salinas": {
        "opponents": [
          "Ferrán Jutglà",
          "Jones El-Abdellaoui"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "defensive_duel"
      },
      "Pablo García": {
        "opponents": [
          "Ilaix Moriba",
          "Williot Swedberg"
        ],
        "primary_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
        "source": "attacking_duel, midfield_pairing"
      },
      "Andrés Martín": {
        "opponents": [
          "Ilaix Moriba",
          "Miguel Román"
        ],
        "primary_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
        "source": "attacking_duel, midfield_pairing"
      },
      "Yassir Zabiri": {
        "opponents": [
          "Javi Rodríguez",
          "Abdoulaye Faye"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "attacking_duel"
      },
      "Giorgi Guliashvili": {
        "opponents": [
          "Javi Rodríguez",
          "Abdoulaye Faye"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "attacking_duel"
      },
      "Julen Agirrezabala": {
        "opponents": [
          "Ferrán Jutglà",
          "Jones El-Abdellaoui"
        ],
        "primary_zone": "Shape fallback",
        "source": "formation_fallback"
      },
      "Facundo González": {
        "opponents": [
          "Ferrán Jutglà"
        ],
        "primary_zone": "Shape fallback",
        "source": "formation_fallback"
      }
    },
    "key_tactical_insight": "Midfield is evenly contested — Williot Swedberg vs Andrés Martín will be the pivotal duel. Total antagonist xG — Home: 0.55, Away: 0.62. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Central Mid vs Defensive Mid — Pressing/Creation Duel.",
    "lambda_factors": {
      "home_gk_opposition_factor": 0.9768,
      "away_gk_opposition_factor": 0.9821,
      "home_set_piece_bonus": 0.051,
      "away_set_piece_bonus": 0.082,
      "home_defensive_solidity_vs": 0.9901,
      "away_defensive_solidity_vs": 0.994,
      "home_midfield_factor": 1.012,
      "away_midfield_factor": 0.99,
      "stage_discount": 1.0,
      "quality_gap_applied": true,
      "home_avg_quality": 0.5335,
      "away_avg_quality": 0.4885,
      "avg_quality_gap": 0.045,
      "squad_value_gap_log": 0.3903,
      "top5_value_gap_log": 0.3985,
      "attack_value_gap_log": 0.5059,
      "elite_count_gap": 0,
      "combined_quality_gap": 0.0982,
      "stronger_lambda_boost": 0.054,
      "weaker_lambda_suppression": 0.0314,
      "home_bench_lambda_bonus": 0.0676,
      "away_bench_lambda_bonus": 0.0448,
      "home_bench_players_modelled": 7,
      "away_bench_players_modelled": 7,
      "mismatch_score_pressure_applied": false,
      "competitive_underdog_floor_applied": true,
      "competitive_underdog_floor": 1.02,
      "pre_competitive_floor_home_lambda": 0.891,
      "pre_competitive_floor_away_lambda": 1.018,
      "pre_calibration_home_lambda": 0.8906,
      "pre_calibration_away_lambda": 1.0178,
      "competition_calibration_applied": false,
      "competition_calibration_reason": "no_sofascore_matches_data",
      "competition_calibration_samples": 0,
      "competition_observed_total_goals": 0.0,
      "competition_calibration_scale": 1.0,
      "neutral_share_preserved": false,
      "final_home_lambda": 1.02,
      "final_away_lambda": 1.018
    }
  },
  "home_standing": {
    "available": true,
    "team_position": 16,
    "opponent_position": 13,
    "standing_lambda_multiplier": 0.8618,
    "attack_index": 0.416,
    "defense_concede_index": 1.666,
    "form_multiplier": 0.977,
    "team_attack_rate_contextual": 0.5,
    "opp_defense_rate_contextual": 2.0,
    "team_ppg": 0.6,
    "opponent_ppg": 1.0
  },
  "away_standing": {
    "available": true,
    "team_position": 13,
    "opponent_position": 16,
    "standing_lambda_multiplier": 1.1901,
    "attack_index": 1.458,
    "defense_concede_index": 1.041,
    "form_multiplier": 1.023,
    "team_attack_rate_contextual": 1.75,
    "opp_defense_rate_contextual": 1.25,
    "team_ppg": 1.0,
    "opponent_ppg": 0.6
  },
  "xgboost_reasoning": {
    "summary": "Antagonist + XGBoost match analysis for Celta vs R. Racing Club. 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-5-2 (duel lambdas: Home 0.891, Away 1.018). Final calibrated Poisson lambdas: Home 1.020, Away 1.018 (most likely score 1-1).",
    "competition": "LaLiga",
    "model_coverage": {
      "home_starters_count": 11,
      "home_xgboost_players": 10,
      "home_fbref_players": 10,
      "away_starters_count": 11,
      "away_xgboost_players": 11,
      "away_fbref_players": 0,
      "home_bench_modelled": 7,
      "away_bench_modelled": 7
    },
    "team_priors": {
      "applied": false,
      "reason": "Non-target league or squad priors not found"
    },
    "pipeline_stages": [
      "1. XGBoost player regressions for volume & event rates with market-value quality scaling",
      "2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)",
      "3. Antagonist formation duel matrix resolving 1v1 and zonal matchups",
      "4. Team-level prior calibration (FBref possession and attack/defense efficiencies)",
      "5. Bivariate Poisson matrix with Dixon-Coles low-score correction"
    ],
    "final_lambdas": {
      "home_lambda": 1.02,
      "away_lambda": 1.018,
      "micro_duel_home_lambda": 0.891,
      "micro_duel_away_lambda": 1.018
    },
    "calibration_and_pressure": {
      "competition_calibration_applied": false,
      "competition_calibration_scale": 1.0,
      "mismatch_pressure_applied": false,
      "underdog_floor_applied": true
    }
  },
  "timestamp": "2026-09-19T13:31:27Z",
  "stat_limits": {
    "saves": 15.0,
    "goalsPrevented": 5.0,
    "keeperSaveValue": 3.0,
    "interceptionWon": 10.0,
    "totalTackle": 12.0,
    "wonTackle": 10.0,
    "totalClearance": 18.0,
    "aerialWon": 15.0,
    "totalPass": 150.0,
    "accuratePass": 145.0,
    "keyPass": 8.0,
    "expectedAssists": 1.5,
    "goalAssist": 4.0,
    "expectedGoals": 3.0,
    "goals": 5.0,
    "totalShots": 12.0,
    "onTargetScoringAttempt": 8.0,
    "rating": 10.0,
    "minutesPlayed": 95.0,
    "duelWon": 20.0,
    "ballRecovery": 18.0,
    "fouls": 8.0
  }
}