{
  "match_info": {
    "home_team": "Alavés",
    "away_team": "Málaga",
    "tournament": "LaLiga",
    "date": "20261023",
    "timezone": "America/New_York",
    "home_formation": "5-3-2",
    "away_formation": "4-4-2",
    "lineup_status": "unconfirmed_official",
    "lineup_source": "/matches/get-lineups",
    "lineup_confirmed": false,
    "lineup_confidence": 0.75
  },
  "prediction": {
    "most_likely_score": "1-0",
    "home_goals": 1,
    "away_goals": 0,
    "most_likely_score_probability": 0.1489,
    "most_likely_winning_score_home": "1-0",
    "most_likely_winning_score_home_probability": 0.1489,
    "most_likely_winning_score_away": "0-1",
    "most_likely_winning_score_away_probability": 0.1026,
    "match_resolution": "regulation",
    "predicted_winner": "Alavés",
    "tiebreaker": {
      "applies": false,
      "method": "none",
      "regulation_draw_probability": 0.292,
      "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,
      "deciding_stage": null,
      "deciding_scoreline": null,
      "deciding_scoreline_probability": null,
      "deciding_route_probability": null,
      "reason": "Tie-breaker not required for this match context."
    },
    "top_5_scorelines": [
      {
        "score": "1-0",
        "probability": 0.1489
      },
      {
        "score": "1-1",
        "probability": 0.1314
      },
      {
        "score": "0-0",
        "probability": 0.1204
      },
      {
        "score": "0-1",
        "probability": 0.1026
      },
      {
        "score": "2-0",
        "probability": 0.0943
      }
    ],
    "scoreline_probabilities": {
      "0-0": 0.1204,
      "0-1": 0.1026,
      "0-2": 0.0451,
      "0-3": 0.013,
      "0-4": 0.0028,
      "1-0": 0.1489,
      "1-1": 0.1314,
      "1-2": 0.0566,
      "1-3": 0.0164,
      "1-4": 0.0036,
      "1-5": 0.0006,
      "2-0": 0.0943,
      "2-1": 0.0819,
      "2-2": 0.0356,
      "2-3": 0.0103,
      "2-4": 0.0022,
      "3-0": 0.0395,
      "3-1": 0.0343,
      "3-2": 0.0149,
      "3-3": 0.0043,
      "3-4": 0.0009,
      "4-0": 0.0124,
      "4-1": 0.0108,
      "4-2": 0.0047,
      "4-3": 0.0014,
      "5-0": 0.0031,
      "5-1": 0.0027,
      "5-2": 0.0012,
      "6-0": 0.0007,
      "6-1": 0.0006
    },
    "outcome": {
      "home_win": 0.4524,
      "draw": 0.292,
      "away_win": 0.2556
    },
    "markets": {
      "over_2_5_goals": 0.3574,
      "under_2_5_goals": 0.6426,
      "btts_yes": 0.4165,
      "btts_no": 0.5835,
      "home_clean_sheet": 0.4194,
      "away_clean_sheet": 0.2845
    },
    "home_ratings": {
      "DR": 6.8,
      "MCR": 6.89,
      "ATR": 6.79,
      "GK": 6.98
    },
    "away_ratings": {
      "DR": 6.76,
      "MCR": 6.91,
      "ATR": 6.83,
      "GK": 6.92
    },
    "insights": {
      "summary": "Antagonist matchup analysis for Alavés vs Málaga. Most likely scoreline: 1-0. Lambdas derived from 7 home and 6 away individual player duels. Head-to-head: Alavés 5W-3D-2L vs Málaga over 10 meetings.",
      "key_player": "Projected scorer(s): Lucas Boyé",
      "tactical_analysis": "Tactical parity between 5-3-2 and 4-4-2. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Antonio Blanco vs Pablo Martínez will be the pivotal duel. Total antagonist xG — Home: 0.97, Away: 0.92. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle."
    },
    "confidence": 0.72,
    "home_lambda": 1.257,
    "away_lambda": 0.869,
    "h2h": {
      "available": true,
      "meetings": 10,
      "home_wins": 5,
      "away_wins": 2,
      "draws": 3,
      "home_multiplier": 1.0214,
      "away_multiplier": 0.9786
    },
    "modal_scoreline": "1-0",
    "modal_scoreline_probability": 0.1489,
    "headline_policy": null
  },
  "pregame_baseline": {
    "fair_win_probability": {
      "home_win": 0.4524,
      "draw": 0.292,
      "away_win": 0.2556
    },
    "favorite": "Alavés",
    "favorite_win_probability": 0.4524,
    "fair_spread": 0.388,
    "fair_total": 2.126,
    "prop_estimates": [
      {
        "market": "team_total_goals",
        "selection": "Alavés",
        "estimate": 1.257,
        "probability": null,
        "unit": "goals"
      },
      {
        "market": "team_total_goals",
        "selection": "Málaga",
        "estimate": 0.869,
        "probability": null,
        "unit": "goals"
      },
      {
        "market": "over_2_5_goals",
        "selection": "yes",
        "estimate": 2.5,
        "probability": 0.3574,
        "unit": "probability"
      },
      {
        "market": "both_teams_to_score",
        "selection": "yes",
        "estimate": 1.0,
        "probability": 0.4165,
        "unit": "probability"
      },
      {
        "market": "clean_sheet",
        "selection": "Alavés",
        "estimate": 1.0,
        "probability": 0.4194,
        "unit": "probability"
      },
      {
        "market": "clean_sheet",
        "selection": "Málaga",
        "estimate": 1.0,
        "probability": 0.2845,
        "unit": "probability"
      },
      {
        "market": "anytime_goal",
        "selection": "Lucas Boyé (Alavés)",
        "estimate": 0.3152,
        "probability": 0.2704,
        "unit": "xG"
      },
      {
        "market": "anytime_goal",
        "selection": "Adrián Niño (Málaga)",
        "estimate": 0.2383,
        "probability": 0.212,
        "unit": "xG"
      },
      {
        "market": "assist",
        "selection": "Denis Suárez (Alavés)",
        "estimate": 0.1686,
        "probability": 0.1552,
        "unit": "xA"
      },
      {
        "market": "assist",
        "selection": "David Larrubia (Málaga)",
        "estimate": 0.125,
        "probability": 0.1175,
        "unit": "xA"
      }
    ],
    "expected_pace": {
      "tempo": "high",
      "expected_total_goals": 2.126,
      "expected_total_shots": 27,
      "expected_total_passes": 733,
      "expected_pressing_actions_per_90": 12.6,
      "possession_home_pct": 50.3,
      "possession_away_pct": 49.7,
      "notes": "possession projects near even"
    },
    "expected_game_script": {
      "favorite": "Alavés",
      "favorite_win_probability": 0.4524,
      "script": "Alavés is the fair winner side, but the baseline remains narrow: fair spread +0.39 goals and fair total 2.13.",
      "first_half": "Expect high tempo while both sides test the matchup thesis; shot baseline is about 14 first-half attempts.",
      "second_half": "If level after halftime, midfield control and bench quality should decide territory; Málaga must keep the match inside one goal.",
      "late_game": "A Alavés lead likely shifts toward control and counters; a draw state keeps set pieces and transition chances live."
    },
    "key_matchup_thesis": "Málaga chance creation leans on Adrián Niño against Ville Koski, Nicolás Valentini in Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle; possession projects near even.",
    "expected_rotation_usage_behavior": [
      "Alavés: starters carry the main goal usage through Lucas Boyé; bench watchlist: Miguel Rodríguez, Carles Aleñá, Ander Guevara.",
      "Málaga: starters carry the main goal usage through the highest xG attackers; bench watchlist: Jens-Lys Cajuste, Joaquín Muñoz, Juan Cruz.",
      "Assist usage should flow through Ángel Pérez; late lineup changes should re-score these allocations."
    ],
    "pregame_play_by_play": [
      "0-15: Alavés tries to establish the projected edge; track possession and first-shot share.",
      "15-45: Baseline expects high tempo, about 14 total first-half shots, and 1.06 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 Málaga 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 Alavés.",
      "Málaga 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": {
    "Alavés": {
      "formation": "5-3-2",
      "players": {
        "Lucas Boyé": {
          "player_id": 814385,
          "position": "F",
          "position_depth": "F",
          "is_starter": true,
          "shirt_number": 15,
          "height": 183,
          "market_value": 5300000,
          "stats": {
            "expected_goals": 0.3152,
            "goal_rate": 0.3514,
            "goals": 1,
            "shots_on_target": 1,
            "total_shots": 2,
            "expected_assists": 0.0624,
            "key_pass": 1,
            "rating": 6.8333,
            "minutes": 78,
            "total_pass": 17,
            "accurate_pass": 13,
            "duels_won": 6,
            "total_long_balls": 1,
            "accurate_long_balls": 1,
            "total_opp_half_passes": 13,
            "accurate_opp_half_passes": 10,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 37,
            "possession_lost": 12.8673,
            "dispossessed": 1.8897,
            "duels_lost": 10,
            "aerial_lost": 3,
            "total_contest": 2,
            "won_contest": 1,
            "ball_recovery": 3,
            "challenges_lost": 1,
            "fouls": 2,
            "fouls_drawn": 2,
            "assist_rate": 0.0068,
            "assists": 0,
            "interceptions": 0,
            "tackles_won": 1,
            "tackles": 2,
            "clearances": 1,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.4613,
            "offsides": 1,
            "ball_carries": 10,
            "total_progression": 17,
            "progressive_carries": 1,
            "shots_off_target": 1,
            "duel_xg_multiplier": 1.0129,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.4,
            "aerial_won": 2,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.209,
            "pressing_faced": "LOW",
            "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "numerical_situation": "1v2",
            "opponent_defenders": "Ángel Recio, Fernando Calero",
            "opponent_faced": "Ángel Recio, Fernando Calero",
            "antagonist_source": "attacking_duel",
            "projected_goals": 1,
            "goal_probability": 0.2704,
            "projected_assists": 0,
            "assist_probability": 0.0605,
            "finishing_factor": 1.094,
            "creation_factor": 0.8,
            "fifa_overall": 77.0
          },
          "latest_10_games": [
            {
              "match_id": 16421069,
              "match_date": "2026-10-18",
              "home_team": "Celta Vigo",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 90,
                "rating": 7.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.3752,
                "expected_assists": 0.0867,
                "total_shots": 4,
                "shots_on_target": 3,
                "shots_off_target": 1,
                "total_pass": 31,
                "accurate_pass": 26,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 4,
                "duels_won": 8,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421056,
              "match_date": "2026-10-10",
              "home_team": "Deportivo Alavés",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 64,
                "rating": 6.8,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.7884,
                "expected_assists": 0.0034,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 8,
                "accurate_pass": 5,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416337,
              "match_date": "2026-09-19",
              "home_team": "Athletic Club",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 75,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0054,
                "total_shots": 0,
                "total_pass": 15,
                "accurate_pass": 9,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "aerial_won": 2,
                "duels_won": 6,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416334,
              "match_date": "2026-09-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Valencia",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Valencia",
              "stats": {
                "minutes": 90,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.2017,
                "expected_assists": 0.0304,
                "total_shots": 4,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 17,
                "accurate_pass": 13,
                "key_pass": 1,
                "tackles": 3,
                "tackles_won": 2,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 5,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416328,
              "match_date": "2026-09-12",
              "home_team": "Real Racing Club",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 90,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1505,
                "expected_assists": 0.032,
                "total_shots": 4,
                "shots_off_target": 2,
                "total_pass": 14,
                "accurate_pass": 10,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 4,
                "duels_won": 6,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416318,
              "match_date": "2026-09-06",
              "home_team": "Deportivo Alavés",
              "away_team": "Osasuna",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 85,
                "rating": 10.0,
                "goal_rate": 3.0,
                "goals": 3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.2454,
                "expected_assists": 0.0198,
                "total_shots": 3,
                "shots_on_target": 3,
                "total_pass": 24,
                "accurate_pass": 19,
                "tackles": 3,
                "tackles_won": 3,
                "aerial_won": 3,
                "duels_won": 13,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416290,
              "match_date": "2026-08-28",
              "home_team": "Deportivo Alavés",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 82,
                "rating": 7.5,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.533,
                "expected_assists": 0.003,
                "total_shots": 3,
                "shots_on_target": 2,
                "shots_off_target": 1,
                "total_pass": 11,
                "accurate_pass": 9,
                "tackles": 3,
                "tackles_won": 3,
                "clearances": 1,
                "aerial_won": 4,
                "duels_won": 8,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416292,
              "match_date": "2026-08-20",
              "home_team": "Rayo Vallecano",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 62,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1089,
                "expected_assists": 0.2737,
                "total_shots": 2,
                "shots_off_target": 1,
                "total_pass": 12,
                "accurate_pass": 9,
                "key_pass": 1,
                "tackles": 3,
                "tackles_won": 2,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 5,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083706,
              "match_date": "2026-05-23",
              "home_team": "Deportivo Alavés",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 84,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.3873,
                "expected_assists": 0.0145,
                "total_shots": 4,
                "shots_on_target": 1,
                "total_pass": 21,
                "accurate_pass": 16,
                "key_pass": 3,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 1,
                "duels_won": 5,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083692,
              "match_date": "2026-05-17",
              "home_team": "Real Oviedo",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Real Oviedo",
              "stats": {
                "minutes": 8,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.001,
                "total_shots": 0,
                "total_pass": 4,
                "accurate_pass": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 2629,
            "combined_rank_score": 921.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 292.0,
            "sofascore_rating": 7.05,
            "sofascore_appearances": 2.0,
            "fifa_rank": 1550.0,
            "fifa_overall": 77.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 6,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.8333,
            "source_file": "data/player_rankings.csv",
            "player_name": "Lucas Boyé",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Augustine Chidi Kwem",
                  "ranking": 2624
                },
                {
                  "player_name": "Otabek Ahadov",
                  "ranking": 2625
                },
                {
                  "player_name": "Rodrigo Sandoval",
                  "ranking": 2626
                },
                {
                  "player_name": "Ruben Loftus-Cheek",
                  "ranking": 2627
                },
                {
                  "player_name": "Edu Expósito",
                  "ranking": 2628
                }
              ],
              "lower": [
                {
                  "player_name": "Duván Zapata",
                  "ranking": 2630
                },
                {
                  "player_name": "Tosin Adarabioyo",
                  "ranking": 2631
                },
                {
                  "player_name": "Selton Sanchez",
                  "ranking": 2632
                },
                {
                  "player_name": "Jung-Min Kim",
                  "ranking": 2633
                },
                {
                  "player_name": "Enzo Barrenechea",
                  "ranking": 2634
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.766,
          "history_matches": 37,
          "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",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "expectedGoals",
              "goals",
              "rating",
              "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",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 37,
            "data_confidence": 0.766,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.9986,
            "fbref_prior_metrics": {
              "squad": "Alavés",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 2.0,
              "minutes": 142.0,
              "goals_per90": 0.625,
              "assists_per90": 0.0,
              "shots_per90": 3.17,
              "shots_on_target_pct": 40.0,
              "prior_reliability": 0.1067
            },
            "rationale": "XGBoost regressor (F_service) evaluated 37 historical appearances across 7 target models; FBref 2026-2027 prior blended (La Liga, Alavés, rel: 0.11, gls/90: 0.625, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.3133,
                "goals": 0.3457,
                "goal_rate": 0.3457,
                "shots_on_target": 0.7732,
                "total_shots": 2.1339,
                "expected_assists": 0.0584,
                "key_pass": 0.7982,
                "rating": 6.8333,
                "minutes": 77.84,
                "total_pass": 16.7631,
                "accurate_pass": 12.65,
                "duels_won": 6.2231,
                "total_long_balls": 0.7737,
                "accurate_long_balls": 0.5155,
                "total_opp_half_passes": 13.448,
                "accurate_opp_half_passes": 9.9283,
                "crosses_total": 0.3336,
                "crosses_accurate": 0.0884,
                "touches": 36.6373,
                "possession_lost": 12.8853,
                "dispossessed": 1.8923,
                "duels_lost": 9.5855,
                "aerial_lost": 2.6782,
                "total_contest": 2.3943,
                "won_contest": 0.7299,
                "ball_recovery": 3.1455,
                "challenges_lost": 1.1267,
                "fouls": 2.3965,
                "fouls_drawn": 1.6978,
                "assists": 0.0069,
                "assist_rate": 0.0069,
                "interceptions": 0.0464,
                "tackles_won": 1.1649,
                "tackles": 1.7387,
                "clearances": 0.9986,
                "blocks": 0.1639,
                "big_chances_created": 0.1007,
                "big_chances_missed": 0.2267,
                "xgot": 0.4585,
                "offsides": 0.57,
                "ball_carries": 10.503,
                "total_progression": 16.8888,
                "progressive_carries": 1.2406,
                "shots_off_target": 1.3607
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 6,
                  "trained_at": "2026-10-23T10:05:54.625928+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 611,
                    "rows": 16533
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Celta Vigo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1504,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-10-10",
                    "opponent": "Atlético Madrid",
                    "minutes": 64.0,
                    "is_starting": true,
                    "weight": 0.1278,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Athletic Club",
                    "minutes": 75.0,
                    "is_starting": true,
                    "weight": 0.1086,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-09-15",
                    "opponent": "Valencia",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0923,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Real Racing Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0785,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Osasuna",
                    "minutes": 85.0,
                    "is_starting": true,
                    "weight": 0.0667,
                    "rating": 10.0
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Villarreal",
                    "minutes": 82.0,
                    "is_starting": true,
                    "weight": 0.0567,
                    "rating": 7.5
                  },
                  {
                    "match_date": "2026-08-20",
                    "opponent": "Rayo Vallecano",
                    "minutes": 62.0,
                    "is_starting": true,
                    "weight": 0.0482,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-05-23",
                    "opponent": "Rayo Vallecano",
                    "minutes": 84.0,
                    "is_starting": true,
                    "weight": 0.041,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-05-17",
                    "opponent": "Real Oviedo",
                    "minutes": 8.0,
                    "is_starting": false,
                    "weight": 0.0348,
                    "rating": 6.3
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 1.0,
                  "expectedGoals": 0.3201,
                  "totalOppositionHalfPasses": 12.8383,
                  "accurateOppositionHalfPasses": 9.4624,
                  "accuratePass": 11.9555,
                  "totalShots": 2.3927
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.31331679224967957,
                    "model_output": 0.3133,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2858
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0881
                      },
                      {
                        "name": "goals",
                        "importance": 0.0357
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0272
                      },
                      {
                        "name": "bigChanceMissed",
                        "importance": 0.0231
                      }
                    ],
                    "decomposition": {
                      "base": 0.1979,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.064
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.043
                        },
                        {
                          "name": "goals",
                          "contribution": 0.0265
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0222
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": 0.0135
                        }
                      ],
                      "others": -0.0094,
                      "total": 0.3133,
                      "log_link": true,
                      "margin_base": -1.619934,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.280277
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.15193
                        },
                        {
                          "name": "goals",
                          "margin": 0.083387
                        },
                        {
                          "name": "ballRecovery",
                          "margin": -0.06935
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": 0.042736
                        }
                      ],
                      "others_margin": -0.029586
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.3457393944263458,
                    "model_output": 0.3457,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1497
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0696
                      },
                      {
                        "name": "goals",
                        "importance": 0.0577
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0307
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0286
                      }
                    ],
                    "decomposition": {
                      "base": 0.2023,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0548
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.039
                        },
                        {
                          "name": "goals",
                          "contribution": 0.0275
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": 0.019
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0163
                        }
                      ],
                      "others": 0.0194,
                      "total": 0.3457,
                      "log_link": true,
                      "margin_base": -1.597983,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.239739
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.141329
                        },
                        {
                          "name": "goals",
                          "margin": 0.088759
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": 0.057156
                        },
                        {
                          "name": "ballRecovery",
                          "margin": -0.048651
                        }
                      ],
                      "others_margin": 0.057581
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.7731980681419373,
                    "model_output": 0.7732,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2171
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0661
                      },
                      {
                        "name": "goals",
                        "importance": 0.0553
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0475
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0308
                      }
                    ],
                    "decomposition": {
                      "base": 0.5362,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.167
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0605
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0528
                        },
                        {
                          "name": "goals",
                          "contribution": 0.0514
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.036
                        }
                      ],
                      "others": -0.0097,
                      "total": 0.7732,
                      "log_link": true,
                      "margin_base": -0.623262,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.271088
                        },
                        {
                          "name": "ballRecovery",
                          "margin": -0.089941
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.078886
                        },
                        {
                          "name": "goals",
                          "margin": 0.071341
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.047124
                        }
                      ],
                      "others_margin": -0.012456
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 2.133882761001587,
                    "model_output": 2.1339,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2864
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0656
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.051
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.031
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0298
                      }
                    ],
                    "decomposition": {
                      "base": 1.3807,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.5071
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.1554
                        },
                        {
                          "name": "goals",
                          "contribution": 0.0816
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0711
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0561
                        }
                      ],
                      "others": 0.0241,
                      "total": 2.1339,
                      "log_link": false,
                      "margin_base": 1.380749,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.507117
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.15537
                        },
                        {
                          "name": "goals",
                          "margin": 0.081632
                        },
                        {
                          "name": "ballRecovery",
                          "margin": -0.071081
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.056124
                        }
                      ],
                      "others_margin": 0.023971
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.05843808501958847,
                    "model_output": 0.0584,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.1157
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0645
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0607
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0558
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 0.0644,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0144
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": 0.0129
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0103
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.009
                        },
                        {
                          "name": "dispossessed",
                          "contribution": -0.0041
                        }
                      ],
                      "others": -0.0099,
                      "total": 0.0584,
                      "log_link": true,
                      "margin_base": -2.741965,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.20205
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": 0.151329
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.119569
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.117422
                        },
                        {
                          "name": "dispossessed",
                          "margin": -0.058005
                        }
                      ],
                      "others_margin": -0.156205
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.7981751561164856,
                    "model_output": 0.7982,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1481
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1244
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.1112
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.052
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0395
                      }
                    ],
                    "decomposition": {
                      "base": 0.6805,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1545
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": 0.086
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0378
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.0351
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0268
                        }
                      ],
                      "others": -0.0231,
                      "total": 0.7982,
                      "log_link": true,
                      "margin_base": -0.384987,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.204666
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": 0.098064
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.041958
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.040572
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.032062
                        }
                      ],
                      "others_margin": -0.028578
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.8333282470703125,
                    "model_output": 6.8333,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.059
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0483
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0421
                      },
                      {
                        "name": "rating",
                        "importance": 0.0418
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0415
                      }
                    ],
                    "decomposition": {
                      "base": 6.7683,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0567
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.0174
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0129
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.011
                        },
                        {
                          "name": "touches",
                          "contribution": 0.0104
                        }
                      ],
                      "others": -0.0176,
                      "total": 6.8333,
                      "log_link": false,
                      "margin_base": 6.768281,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.056696
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": 0.017442
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": -0.012946
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.010953
                        },
                        {
                          "name": "touches",
                          "margin": 0.010414
                        }
                      ],
                      "others_margin": -0.017512
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 37,
                  "role_matches": 30,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "role_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9986, quality 0.466)",
              "stats": {
                "expected_goals": 0.3129,
                "goals": 0.3453,
                "goal_rate": 0.3453,
                "shots_on_target": 0.7721,
                "total_shots": 2.1309,
                "expected_assists": 0.0584,
                "key_pass": 0.7971,
                "rating": 6.8333,
                "minutes": 77.84,
                "total_pass": 16.7396,
                "accurate_pass": 12.6323,
                "duels_won": 6.2144,
                "total_long_balls": 0.7726,
                "accurate_long_balls": 0.5148,
                "total_opp_half_passes": 13.4292,
                "accurate_opp_half_passes": 9.9144,
                "crosses_total": 0.3331,
                "crosses_accurate": 0.0883,
                "touches": 36.586,
                "possession_lost": 12.8673,
                "dispossessed": 1.8897,
                "duels_lost": 9.5721,
                "aerial_lost": 2.6745,
                "total_contest": 2.3909,
                "won_contest": 0.7289,
                "ball_recovery": 3.1411,
                "challenges_lost": 1.1251,
                "fouls": 2.3931,
                "fouls_drawn": 1.6954,
                "assists": 0.0069,
                "assist_rate": 0.0069,
                "interceptions": 0.0463,
                "tackles_won": 1.1633,
                "tackles": 1.7363,
                "clearances": 0.9972,
                "blocks": 0.1637,
                "big_chances_created": 0.1006,
                "big_chances_missed": 0.2264,
                "xgot": 0.4579,
                "offsides": 0.5692,
                "ball_carries": 10.4883,
                "total_progression": 16.8652,
                "progressive_carries": 1.2389,
                "shots_off_target": 1.3588
              },
              "params": {
                "market_value_eur": 5300000,
                "quality_factor": 0.4659,
                "boost_factor": 0.9986,
                "reference_quality": 0.505,
                "history_matches": 37,
                "history_shrink": 0.119,
                "market_value_known": true
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0083)",
              "stats": {
                "expected_goals": 0.3129,
                "goals": 0.3469,
                "goal_rate": 0.3469,
                "shots_on_target": 0.7748,
                "total_shots": 2.1359,
                "expected_assists": 0.0584,
                "key_pass": 0.7971,
                "rating": 6.8333,
                "minutes": 77.84,
                "total_pass": 16.7396,
                "accurate_pass": 12.6323,
                "duels_won": 6.2144,
                "total_long_balls": 0.7726,
                "accurate_long_balls": 0.5148,
                "total_opp_half_passes": 13.4292,
                "accurate_opp_half_passes": 9.9144,
                "crosses_total": 0.3303,
                "crosses_accurate": 0.0883,
                "touches": 36.586,
                "possession_lost": 12.8673,
                "dispossessed": 1.8897,
                "duels_lost": 9.5721,
                "aerial_lost": 2.6745,
                "total_contest": 2.3909,
                "won_contest": 0.7289,
                "ball_recovery": 3.1411,
                "challenges_lost": 1.1251,
                "fouls": 2.3957,
                "fouls_drawn": 1.6903,
                "assists": 0.0068,
                "assist_rate": 0.0068,
                "interceptions": 0.0459,
                "tackles_won": 1.176,
                "tackles": 1.7363,
                "clearances": 0.9972,
                "blocks": 0.1637,
                "big_chances_created": 0.1006,
                "big_chances_missed": 0.2264,
                "xgot": 0.4579,
                "offsides": 0.5645,
                "ball_carries": 10.4883,
                "total_progression": 16.8652,
                "progressive_carries": 1.2389,
                "shots_off_target": 1.3588
              },
              "params": {
                "blend_weight": 0.0083,
                "history_matches": 37,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.8649,
                "prior_reliability": 0.1067,
                "competition": "La Liga",
                "squad": "Alavés"
              },
              "changes": [
                {
                  "stat": "wonTackle",
                  "before": 1.1633,
                  "after": 1.176
                },
                {
                  "stat": "wasFouled",
                  "before": 1.6954,
                  "after": 1.6903
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.3129,
                "goals": 0.3469,
                "goal_rate": 0.3469,
                "shots_on_target": 0.7748,
                "total_shots": 2.1359,
                "expected_assists": 0.0584,
                "key_pass": 0.7971,
                "rating": 6.8333,
                "minutes": 77.84,
                "total_pass": 16.7396,
                "accurate_pass": 12.6323,
                "duels_won": 6.2144,
                "total_long_balls": 0.7726,
                "accurate_long_balls": 0.5148,
                "total_opp_half_passes": 13.4292,
                "accurate_opp_half_passes": 9.9144,
                "crosses_total": 0.3303,
                "crosses_accurate": 0.0883,
                "touches": 36.586,
                "possession_lost": 12.8673,
                "dispossessed": 1.8897,
                "duels_lost": 9.5721,
                "aerial_lost": 2.6745,
                "total_contest": 2.3909,
                "won_contest": 0.7289,
                "ball_recovery": 3.1411,
                "challenges_lost": 1.1251,
                "fouls": 2.3957,
                "fouls_drawn": 1.6903,
                "assists": 0.0068,
                "assist_rate": 0.0068,
                "interceptions": 0.0459,
                "tackles_won": 1.176,
                "tackles": 1.7363,
                "clearances": 0.9972,
                "blocks": 0.1637,
                "big_chances_created": 0.1006,
                "big_chances_missed": 0.2264,
                "xgot": 0.4579,
                "offsides": 0.5645,
                "ball_carries": 10.4883,
                "total_progression": 16.8652,
                "progressive_carries": 1.2389,
                "shots_off_target": 1.3588
              },
              "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.3169,
                "goals": 0.3514,
                "goal_rate": 0.3514,
                "shots_on_target": 0.7848,
                "total_shots": 2.1635,
                "expected_assists": 0.0584,
                "key_pass": 0.7971,
                "rating": 6.8333,
                "minutes": 77.84,
                "total_pass": 16.7396,
                "accurate_pass": 12.6323,
                "duels_won": 6.2144,
                "total_long_balls": 0.7726,
                "accurate_long_balls": 0.5148,
                "total_opp_half_passes": 13.4292,
                "accurate_opp_half_passes": 9.9144,
                "crosses_total": 0.3303,
                "crosses_accurate": 0.0883,
                "touches": 36.586,
                "possession_lost": 12.8673,
                "dispossessed": 1.8897,
                "duels_lost": 9.5721,
                "aerial_lost": 2.6745,
                "total_contest": 2.3909,
                "won_contest": 0.7289,
                "ball_recovery": 3.1411,
                "challenges_lost": 1.1251,
                "fouls": 2.3957,
                "fouls_drawn": 1.6903,
                "assists": 0.0068,
                "assist_rate": 0.0068,
                "interceptions": 0.0459,
                "tackles_won": 1.176,
                "tackles": 1.7363,
                "clearances": 0.9972,
                "blocks": 0.1637,
                "big_chances_created": 0.1006,
                "big_chances_missed": 0.2293,
                "xgot": 0.4638,
                "offsides": 0.5645,
                "ball_carries": 10.4883,
                "total_progression": 16.8652,
                "progressive_carries": 1.2389,
                "shots_off_target": 1.3763,
                "duel_xg_multiplier": 1.0129,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.4,
                "aerial_won": 1.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.209,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Ángel Recio, Fernando Calero",
                "opponent_faced": "Ángel Recio, Fernando Calero",
                "antagonist_source": "attacking_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Ángel Recio, Fernando Calero",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                  "duel_win_rate": 0.209,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v2",
                  "xg_multiplier": 1.0129,
                  "skill_edge": 0.0128,
                  "height_edge": -0.004,
                  "attacker_skill": 0.4659,
                  "defender_skill": 0.4374,
                  "attacker_role": "ST",
                  "attacker_mv_price_index": 1.0,
                  "defender_adjusted_parts": [
                    {
                      "player": "Ángel Recio",
                      "market_value": 1000000,
                      "role": "CB",
                      "price_index": 0.75,
                      "adjusted_quality": 0.4374
                    },
                    {
                      "player": "Fernando Calero",
                      "market_value": 2100000,
                      "role": "CB",
                      "price_index": 0.75,
                      "adjusted_quality": 0.4374
                    }
                  ],
                  "xg_override": 0.3169
                }
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 2.1359,
                  "after": 2.1635
                },
                {
                  "stat": "shotOffTarget",
                  "before": 1.3588,
                  "after": 1.3763
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.7748,
                  "after": 0.7848
                },
                {
                  "stat": "expectedGoalsOnTarget",
                  "before": 0.4579,
                  "after": 0.4638
                }
              ]
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "expected_goals": 0.3169,
                "goal_rate": 0.3514,
                "goals": 0,
                "shots_on_target": 0.7848,
                "total_shots": 2.1635,
                "expected_assists": 0.0584,
                "key_pass": 0.7971,
                "rating": 6.8333,
                "minutes": 77.84,
                "total_pass": 16.7396,
                "accurate_pass": 12.6323,
                "duels_won": 6.2144,
                "total_long_balls": 0.7726,
                "accurate_long_balls": 0.5148,
                "total_opp_half_passes": 13.4292,
                "accurate_opp_half_passes": 9.9144,
                "crosses_total": 0.3303,
                "crosses_accurate": 0.0883,
                "touches": 36.586,
                "possession_lost": 12.8673,
                "dispossessed": 1.8897,
                "duels_lost": 9.5721,
                "aerial_lost": 2.6745,
                "total_contest": 2.3909,
                "won_contest": 0.7289,
                "ball_recovery": 3.1411,
                "challenges_lost": 1.1251,
                "fouls": 2.3957,
                "fouls_drawn": 1.6903,
                "assist_rate": 0.0068,
                "assists": 0,
                "interceptions": 0.0459,
                "tackles_won": 1.176,
                "tackles": 1.7363,
                "clearances": 0.9972,
                "blocks": 0.1637,
                "big_chances_created": 0.1006,
                "big_chances_missed": 0.2293,
                "xgot": 0.4638,
                "offsides": 0.5645,
                "ball_carries": 10.4883,
                "total_progression": 16.8652,
                "progressive_carries": 1.2389,
                "shots_off_target": 1.3763,
                "duel_xg_multiplier": 1.0129,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.4,
                "aerial_won": 1.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.209,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Ángel Recio, Fernando Calero",
                "opponent_faced": "Ángel Recio, Fernando Calero",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "scoreline_reset": true,
                "team_goals": 1
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.26 (squad xG sum 1.2639, xG scale 0.9946, xA scale 1.0687, team xA 0.82 = 0.65 x lambda)",
              "stats": {
                "expected_goals": 0.3152,
                "goal_rate": 0.3514,
                "goals": 0,
                "shots_on_target": 0.7848,
                "total_shots": 2.1635,
                "expected_assists": 0.0624,
                "key_pass": 0.7971,
                "rating": 6.8333,
                "minutes": 77.84,
                "total_pass": 16.7396,
                "accurate_pass": 12.6323,
                "duels_won": 6.2144,
                "total_long_balls": 0.7726,
                "accurate_long_balls": 0.5148,
                "total_opp_half_passes": 13.4292,
                "accurate_opp_half_passes": 9.9144,
                "crosses_total": 0.3303,
                "crosses_accurate": 0.0883,
                "touches": 36.586,
                "possession_lost": 12.8673,
                "dispossessed": 1.8897,
                "duels_lost": 9.5721,
                "aerial_lost": 2.6745,
                "total_contest": 2.3909,
                "won_contest": 0.7289,
                "ball_recovery": 3.1411,
                "challenges_lost": 1.1251,
                "fouls": 2.3957,
                "fouls_drawn": 1.6903,
                "assist_rate": 0.0068,
                "assists": 0,
                "interceptions": 0.0459,
                "tackles_won": 1.176,
                "tackles": 1.7363,
                "clearances": 0.9972,
                "blocks": 0.1637,
                "big_chances_created": 0.1006,
                "big_chances_missed": 0.2293,
                "xgot": 0.4613,
                "offsides": 0.5645,
                "ball_carries": 10.4883,
                "total_progression": 16.8652,
                "progressive_carries": 1.2389,
                "shots_off_target": 1.3763,
                "duel_xg_multiplier": 1.0129,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.4,
                "aerial_won": 1.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.209,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Ángel Recio, Fernando Calero",
                "opponent_faced": "Ángel Recio, Fernando Calero",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.094,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 1.257,
                "squad_xg_sum": 1.2639,
                "squad_xa_sum": 0.7645,
                "team_expected_assists": 0.817,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.9946,
                "xa_scale": 1.0687,
                "opponent_lambda": 0.869,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              }
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 77.0)",
              "stats": {
                "expected_goals": 0.3152,
                "goal_rate": 0.3514,
                "goals": 0,
                "shots_on_target": 0.7848,
                "total_shots": 2.1635,
                "expected_assists": 0.0624,
                "key_pass": 0.7971,
                "rating": 6.8333,
                "minutes": 77.84,
                "total_pass": 16.7396,
                "accurate_pass": 12.6323,
                "duels_won": 6.2144,
                "total_long_balls": 0.7726,
                "accurate_long_balls": 0.5148,
                "total_opp_half_passes": 13.4292,
                "accurate_opp_half_passes": 9.9144,
                "crosses_total": 0.3303,
                "crosses_accurate": 0.0883,
                "touches": 36.586,
                "possession_lost": 12.8673,
                "dispossessed": 1.8897,
                "duels_lost": 9.5721,
                "aerial_lost": 2.6745,
                "total_contest": 2.3909,
                "won_contest": 0.7289,
                "ball_recovery": 3.1411,
                "challenges_lost": 1.1251,
                "fouls": 2.3957,
                "fouls_drawn": 1.6903,
                "assist_rate": 0.0068,
                "assists": 0,
                "interceptions": 0.0459,
                "tackles_won": 1.176,
                "tackles": 1.7363,
                "clearances": 0.9972,
                "blocks": 0.1637,
                "big_chances_created": 0.1006,
                "big_chances_missed": 0.2293,
                "xgot": 0.4613,
                "offsides": 0.5645,
                "ball_carries": 10.4883,
                "total_progression": 16.8652,
                "progressive_carries": 1.2389,
                "shots_off_target": 1.3763,
                "duel_xg_multiplier": 1.0129,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.4,
                "aerial_won": 1.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.209,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Ángel Recio, Fernando Calero",
                "opponent_faced": "Ángel Recio, Fernando Calero",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.094,
                "creation_factor": 0.8,
                "fifa_overall": 77.0
              },
              "params": {
                "match_squad_rank": 6,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 2629,
                "fifa_rank": 1550.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 77.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "expected_goals": 0.3152,
                "goal_rate": 0.3514,
                "goals": 1,
                "shots_on_target": 0.7848,
                "total_shots": 2.1635,
                "expected_assists": 0.0624,
                "key_pass": 0.7971,
                "rating": 6.8333,
                "minutes": 77.84,
                "total_pass": 16.7396,
                "accurate_pass": 12.6323,
                "duels_won": 6.2144,
                "total_long_balls": 0.7726,
                "accurate_long_balls": 0.5148,
                "total_opp_half_passes": 13.4292,
                "accurate_opp_half_passes": 9.9144,
                "crosses_total": 0.3303,
                "crosses_accurate": 0.0883,
                "touches": 36.586,
                "possession_lost": 12.8673,
                "dispossessed": 1.8897,
                "duels_lost": 9.5721,
                "aerial_lost": 2.6745,
                "total_contest": 2.3909,
                "won_contest": 0.7289,
                "ball_recovery": 3.1411,
                "challenges_lost": 1.1251,
                "fouls": 2.3957,
                "fouls_drawn": 1.6903,
                "assist_rate": 0.0068,
                "assists": 0,
                "interceptions": 0.0459,
                "tackles_won": 1.176,
                "tackles": 1.7363,
                "clearances": 0.9972,
                "blocks": 0.1637,
                "big_chances_created": 0.1006,
                "big_chances_missed": 0.2293,
                "xgot": 0.4613,
                "offsides": 0.5645,
                "ball_carries": 10.4883,
                "total_progression": 16.8652,
                "progressive_carries": 1.2389,
                "shots_off_target": 1.3763,
                "duel_xg_multiplier": 1.0129,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.4,
                "aerial_won": 1.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.209,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Ángel Recio, Fernando Calero",
                "opponent_faced": "Ángel Recio, Fernando Calero",
                "antagonist_source": "attacking_duel",
                "projected_goals": 1,
                "goal_probability": 0.2704,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.094,
                "creation_factor": 0.8,
                "fifa_overall": 77.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 1,
                "goal_probability": 0.2704,
                "goal_rate": 0.3514,
                "scorer_weight": 0.3448,
                "squad_weight_total": 1.3303,
                "weight_share": 0.2592,
                "finishing_factor": 1.094,
                "appearance_weight": 1.0,
                "weight_rank": 1,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lucas Boyé",
                    "weight": 0.3448,
                    "already": 0,
                    "effective_weight": 0.3448,
                    "runner_up": "Mariano Díaz",
                    "runner_up_effective_weight": 0.2151
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "expected_goals": 0.3152,
                "goal_rate": 0.3514,
                "goals": 1,
                "shots_on_target": 0.7848,
                "total_shots": 2.1635,
                "expected_assists": 0.0624,
                "key_pass": 0.7971,
                "rating": 6.8333,
                "minutes": 77.84,
                "total_pass": 16.7396,
                "accurate_pass": 12.6323,
                "duels_won": 6.2144,
                "total_long_balls": 0.7726,
                "accurate_long_balls": 0.5148,
                "total_opp_half_passes": 13.4292,
                "accurate_opp_half_passes": 9.9144,
                "crosses_total": 0.3303,
                "crosses_accurate": 0.0883,
                "touches": 36.586,
                "possession_lost": 12.8673,
                "dispossessed": 1.8897,
                "duels_lost": 9.5721,
                "aerial_lost": 2.6745,
                "total_contest": 2.3909,
                "won_contest": 0.7289,
                "ball_recovery": 3.1411,
                "challenges_lost": 1.1251,
                "fouls": 2.3957,
                "fouls_drawn": 1.6903,
                "assist_rate": 0.0068,
                "assists": 0,
                "interceptions": 0.0459,
                "tackles_won": 1.176,
                "tackles": 1.7363,
                "clearances": 0.9972,
                "blocks": 0.1637,
                "big_chances_created": 0.1006,
                "big_chances_missed": 0.2293,
                "xgot": 0.4613,
                "offsides": 0.5645,
                "ball_carries": 10.4883,
                "total_progression": 16.8652,
                "progressive_carries": 1.2389,
                "shots_off_target": 1.3763,
                "duel_xg_multiplier": 1.0129,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.4,
                "aerial_won": 1.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.209,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Ángel Recio, Fernando Calero",
                "opponent_faced": "Ángel Recio, Fernando Calero",
                "antagonist_source": "attacking_duel",
                "projected_goals": 1,
                "goal_probability": 0.2704,
                "projected_assists": 0,
                "assist_probability": 0.0605,
                "finishing_factor": 1.094,
                "creation_factor": 0.8,
                "fifa_overall": 77.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0605,
                "assist_rate": 0.0068,
                "provider_weight": 0.0499,
                "squad_weight_total": 0.7993,
                "weight_share": 0.0625,
                "creation_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 7,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Ángel Pérez",
                    "weight": 0.1707,
                    "already": 0,
                    "effective_weight": 0.1707,
                    "runner_up": "Denis Suárez",
                    "runner_up_effective_weight": 0.1469,
                    "blocked_own_goal": [
                      "Lucas Boyé"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Mariano Díaz": {
          "player_id": 175753,
          "position": "F",
          "position_depth": "F",
          "is_starter": true,
          "shirt_number": 9,
          "height": 180,
          "market_value": 480000,
          "stats": {
            "expected_goals": 0.2304,
            "goal_rate": 0.213,
            "goals": 0,
            "shots_on_target": 1,
            "total_shots": 2,
            "expected_assists": 0.0539,
            "key_pass": 1,
            "rating": 6.7259,
            "minutes": 67,
            "total_pass": 8,
            "accurate_pass": 5,
            "duels_won": 2,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 5,
            "accurate_opp_half_passes": 3,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 16,
            "possession_lost": 6.3779,
            "dispossessed": 1.0763,
            "duels_lost": 6,
            "aerial_lost": 2,
            "total_contest": 1,
            "won_contest": 0,
            "ball_recovery": 1,
            "challenges_lost": 1,
            "fouls": 1,
            "fouls_drawn": 0,
            "assist_rate": 0.1733,
            "assists": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.1822,
            "offsides": 2,
            "ball_carries": 5,
            "total_progression": 14,
            "progressive_carries": 2,
            "shots_off_target": 1,
            "duel_xg_multiplier": 0.9765,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.3,
            "aerial_won": 2,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.184,
            "pressing_faced": "LOW",
            "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "numerical_situation": "1v2",
            "opponent_defenders": "Ángel Recio, Fernando Calero",
            "opponent_faced": "Ángel Recio, Fernando Calero",
            "antagonist_source": "attacking_duel",
            "projected_goals": 0,
            "goal_probability": 0.2058,
            "projected_assists": 0,
            "assist_probability": 0.0525,
            "finishing_factor": 0.9336,
            "creation_factor": 1.25,
            "fifa_overall": 91.0
          },
          "latest_10_games": [
            {
              "match_id": 16421069,
              "match_date": "2026-10-18",
              "home_team": "Celta Vigo",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 28,
                "rating": 6.6,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.0869,
                "expected_assists": 0.0137,
                "total_shots": 2,
                "shots_on_target": 1,
                "total_pass": 7,
                "accurate_pass": 5,
                "key_pass": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421056,
              "match_date": "2026-10-10",
              "home_team": "Deportivo Alavés",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 26,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.3575,
                "expected_assists": 0.0056,
                "total_shots": 2,
                "shots_off_target": 1,
                "total_pass": 10,
                "accurate_pass": 9,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416337,
              "match_date": "2026-09-19",
              "home_team": "Athletic Club",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 65,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0251,
                "total_shots": 0,
                "total_pass": 14,
                "accurate_pass": 12,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416334,
              "match_date": "2026-09-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Valencia",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Valencia",
              "stats": {
                "minutes": 23,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0803,
                "total_shots": 0,
                "total_pass": 7,
                "accurate_pass": 7,
                "tackles": 1,
                "tackles_won": 1,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416328,
              "match_date": "2026-09-12",
              "home_team": "Real Racing Club",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 67,
                "rating": 6.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.6386,
                "expected_assists": 0.0026,
                "total_shots": 3,
                "shots_on_target": 3,
                "total_pass": 7,
                "accurate_pass": 4,
                "aerial_won": 2,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416318,
              "match_date": "2026-09-06",
              "home_team": "Deportivo Alavés",
              "away_team": "Osasuna",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 71,
                "rating": 8.0,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.1401,
                "expected_assists": 0.0025,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 5,
                "accurate_pass": 3,
                "key_pass": 1,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416290,
              "match_date": "2026-08-28",
              "home_team": "Deportivo Alavés",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 36,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0174,
                "total_shots": 0,
                "total_pass": 7,
                "accurate_pass": 5,
                "clearances": 1,
                "aerial_won": 2,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416292,
              "match_date": "2026-08-20",
              "home_team": "Rayo Vallecano",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 28,
                "rating": 7.7,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.3295,
                "expected_assists": 0.0015,
                "total_shots": 2,
                "shots_on_target": 2,
                "total_pass": 3,
                "accurate_pass": 2,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421047,
              "match_date": "2026-08-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Getafe",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Getafe",
              "stats": {
                "minutes": 33,
                "rating": 9.2,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 2.0,
                "assists": 2,
                "expected_goals": 0.185,
                "expected_assists": 0.2275,
                "total_shots": 3,
                "shots_on_target": 2,
                "total_pass": 7,
                "accurate_pass": 3,
                "key_pass": 2,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14081799,
              "match_date": "2026-03-08",
              "home_team": "Valencia",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Valencia",
              "stats": {
                "minutes": 19,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0811,
                "expected_assists": 0.0003,
                "total_shots": 1,
                "total_pass": 4,
                "accurate_pass": 3,
                "tackles": 1,
                "duels_won": 1,
                "ball_recovery": 2
              },
              "has_player_stats": true
            }
          ],
          "ranking": {
            "global_player_rank": 4,
            "combined_rank_score": 7.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 11.0,
            "sofascore_rating": 8.45,
            "sofascore_appearances": 2.0,
            "fifa_rank": 3.0,
            "fifa_overall": 91.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 12,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.7259,
            "source_file": "data/player_rankings.csv",
            "player_name": "Mariano Díaz",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Lamine Yamal",
                  "ranking": 1
                },
                {
                  "player_name": "Kylian Mbappé",
                  "ranking": 2
                },
                {
                  "player_name": "Erling Haaland",
                  "ranking": 3
                }
              ],
              "lower": [
                {
                  "player_name": "Jude Bellingham",
                  "ranking": 5
                },
                {
                  "player_name": "Pedri",
                  "ranking": 6
                },
                {
                  "player_name": "Ryu Won-Woo",
                  "ranking": 7
                },
                {
                  "player_name": "Bruno Fernandes",
                  "ranking": 8
                },
                {
                  "player_name": "Felix Horn Myhre",
                  "ranking": 9
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.75,
          "history_matches": 19,
          "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",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "expectedGoals",
              "goals",
              "rating",
              "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",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 19,
            "data_confidence": 0.75,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 0.9958,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (F_service) evaluated 19 historical appearances across 7 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.2383,
                "goals": 0.219,
                "goal_rate": 0.219,
                "shots_on_target": 0.674,
                "total_shots": 1.6622,
                "expected_assists": 0.0506,
                "key_pass": 0.6251,
                "rating": 6.7259,
                "minutes": 67.24,
                "total_pass": 7.825,
                "accurate_pass": 5.4099,
                "duels_won": 2.1131,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 4.8828,
                "accurate_opp_half_passes": 2.5934,
                "crosses_total": 0.4734,
                "crosses_accurate": 0.2408,
                "touches": 16.1591,
                "possession_lost": 6.4048,
                "dispossessed": 1.0808,
                "duels_lost": 5.8547,
                "aerial_lost": 2.1608,
                "total_contest": 1.4167,
                "won_contest": 0.2809,
                "ball_recovery": 1.4512,
                "challenges_lost": 0.5527,
                "fouls": 0.9246,
                "fouls_drawn": 0.174,
                "assists": 0.174,
                "assist_rate": 0.174,
                "interceptions": 0.0,
                "tackles_won": 0.1257,
                "tackles": 0.3771,
                "clearances": 0.0,
                "blocks": 0.1069,
                "big_chances_created": 0.3604,
                "big_chances_missed": 0.4094,
                "xgot": 0.1884,
                "offsides": 2.0462,
                "ball_carries": 5.4966,
                "total_progression": 13.5635,
                "progressive_carries": 1.5617,
                "shots_off_target": 0.9882
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 6,
                  "trained_at": "2026-10-23T10:05:54.625928+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 611,
                    "rows": 16533
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Celta Vigo",
                    "minutes": 28.0,
                    "is_starting": false,
                    "weight": 0.1572,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-10-10",
                    "opponent": "Atlético Madrid",
                    "minutes": 26.0,
                    "is_starting": false,
                    "weight": 0.1336,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Athletic Club",
                    "minutes": 65.0,
                    "is_starting": true,
                    "weight": 0.1136,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-09-15",
                    "opponent": "Valencia",
                    "minutes": 23.0,
                    "is_starting": false,
                    "weight": 0.0965,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Real Racing Club",
                    "minutes": 67.0,
                    "is_starting": true,
                    "weight": 0.082,
                    "rating": 6.0
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Osasuna",
                    "minutes": 71.0,
                    "is_starting": true,
                    "weight": 0.0697,
                    "rating": 8.0
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Villarreal",
                    "minutes": 36.0,
                    "is_starting": false,
                    "weight": 0.0593,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-08-20",
                    "opponent": "Rayo Vallecano",
                    "minutes": 28.0,
                    "is_starting": false,
                    "weight": 0.0504,
                    "rating": 7.7
                  },
                  {
                    "match_date": "2026-08-15",
                    "opponent": "Getafe",
                    "minutes": 33.0,
                    "is_starting": false,
                    "weight": 0.0428,
                    "rating": 9.2
                  },
                  {
                    "match_date": "2026-03-08",
                    "opponent": "Valencia",
                    "minutes": 19.0,
                    "is_starting": false,
                    "weight": 0.0364,
                    "rating": 6.3
                  }
                ],
                "feature_row": {
                  "history_matches": 19.0,
                  "is_starting_11": 1.0,
                  "expectedGoals": 0.1531,
                  "totalOppositionHalfPasses": 4.9883,
                  "accurateOppositionHalfPasses": 3.4055,
                  "accuratePass": 5.6142,
                  "totalShots": 1.2503
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.23826473951339722,
                    "model_output": 0.2383,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2858
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0881
                      },
                      {
                        "name": "goals",
                        "importance": 0.0357
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0272
                      },
                      {
                        "name": "bigChanceMissed",
                        "importance": 0.0231
                      }
                    ],
                    "decomposition": {
                      "base": 0.1979,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0716
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0334
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": 0.008
                        },
                        {
                          "name": "aerialLost",
                          "contribution": 0.0054
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0042
                        }
                      ],
                      "others": -0.007,
                      "total": 0.2383,
                      "log_link": true,
                      "margin_base": -1.619934,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.308781
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.132313
                        },
                        {
                          "name": "ballRecovery",
                          "margin": 0.033166
                        },
                        {
                          "name": "aerialLost",
                          "margin": 0.021819
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.017097
                        }
                      ],
                      "others_margin": -0.028794
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.21897999942302704,
                    "model_output": 0.219,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1497
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0696
                      },
                      {
                        "name": "goals",
                        "importance": 0.0577
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0307
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0286
                      }
                    ],
                    "decomposition": {
                      "base": 0.2023,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.072
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.041
                        },
                        {
                          "name": "goals",
                          "contribution": -0.0211
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": 0.0121
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": 0.0105
                        }
                      ],
                      "others": -0.0158,
                      "total": 0.219,
                      "log_link": true,
                      "margin_base": -1.597983,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.304294
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.162074
                        },
                        {
                          "name": "goals",
                          "margin": -0.094723
                        },
                        {
                          "name": "ballRecovery",
                          "margin": 0.055332
                        },
                        {
                          "name": "duel_win_rate",
                          "margin": 0.045964
                        }
                      ],
                      "others_margin": -0.069585
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.6739577054977417,
                    "model_output": 0.674,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2171
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0661
                      },
                      {
                        "name": "goals",
                        "importance": 0.0553
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0475
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0308
                      }
                    ],
                    "decomposition": {
                      "base": 0.5362,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1621
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0366
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": 0.035
                        },
                        {
                          "name": "goals",
                          "contribution": -0.0324
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": 0.03
                        }
                      ],
                      "others": -0.0203,
                      "total": 0.674,
                      "log_link": true,
                      "margin_base": -0.623262,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.264179
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.053811
                        },
                        {
                          "name": "ballRecovery",
                          "margin": 0.051601
                        },
                        {
                          "name": "goals",
                          "margin": -0.047665
                        },
                        {
                          "name": "duel_win_rate",
                          "margin": 0.044205
                        }
                      ],
                      "others_margin": -0.029835
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.6621222496032715,
                    "model_output": 1.6621,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2864
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0656
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.051
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.031
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0298
                      }
                    ],
                    "decomposition": {
                      "base": 1.3807,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.4527
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.1424
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0514
                        },
                        {
                          "name": "duelWon",
                          "contribution": -0.0444
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": 0.0392
                        }
                      ],
                      "others": 0.0277,
                      "total": 1.6621,
                      "log_link": false,
                      "margin_base": 1.380749,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.452691
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.142381
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.05137
                        },
                        {
                          "name": "duelWon",
                          "margin": -0.044393
                        },
                        {
                          "name": "duel_win_rate",
                          "margin": 0.039162
                        }
                      ],
                      "others_margin": 0.027664
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.05063676834106445,
                    "model_output": 0.0506,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.1157
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0645
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0607
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0558
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 0.0644,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0144
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.0102
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0056
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0051
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0027
                        }
                      ],
                      "others": -0.0046,
                      "total": 0.0506,
                      "log_link": true,
                      "margin_base": -2.741965,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.201718
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.138827
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.085173
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.084269
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.046912
                        }
                      ],
                      "others_margin": -0.087649
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.6250646710395813,
                    "model_output": 0.6251,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1481
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1244
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.1112
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.052
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0395
                      }
                    ],
                    "decomposition": {
                      "base": 0.6805,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1823
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.0504
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0452
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0388
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.0336
                        }
                      ],
                      "others": -0.0697,
                      "total": 0.6251,
                      "log_link": true,
                      "margin_base": -0.384987,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.237424
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.060186
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.0573
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.051945
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.047198
                        }
                      ],
                      "others_margin": -0.105707
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.7259135246276855,
                    "model_output": 6.7259,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.059
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0483
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0421
                      },
                      {
                        "name": "rating",
                        "importance": 0.0418
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0415
                      }
                    ],
                    "decomposition": {
                      "base": 6.7683,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0507
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0176
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0135
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": -0.0126
                        },
                        {
                          "name": "touches",
                          "contribution": -0.011
                        }
                      ],
                      "others": -0.0384,
                      "total": 6.7259,
                      "log_link": false,
                      "margin_base": 6.768281,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.05069
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.017599
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.013544
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": -0.012592
                        },
                        {
                          "name": "touches",
                          "margin": -0.010993
                        }
                      ],
                      "others_margin": -0.038327
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 19,
                  "role_matches": 6,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "role_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9958, quality 0.437)",
              "stats": {
                "expected_goals": 0.2373,
                "goals": 0.2181,
                "goal_rate": 0.2181,
                "shots_on_target": 0.6711,
                "total_shots": 1.6552,
                "expected_assists": 0.0504,
                "key_pass": 0.6224,
                "rating": 6.7259,
                "minutes": 67.24,
                "total_pass": 7.7921,
                "accurate_pass": 5.3872,
                "duels_won": 2.1042,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 4.8623,
                "accurate_opp_half_passes": 2.5825,
                "crosses_total": 0.4714,
                "crosses_accurate": 0.2398,
                "touches": 16.0912,
                "possession_lost": 6.3779,
                "dispossessed": 1.0763,
                "duels_lost": 5.8301,
                "aerial_lost": 2.1517,
                "total_contest": 1.4107,
                "won_contest": 0.2797,
                "ball_recovery": 1.4451,
                "challenges_lost": 0.5504,
                "fouls": 0.9207,
                "fouls_drawn": 0.1733,
                "assists": 0.1733,
                "assist_rate": 0.1733,
                "interceptions": 0.0,
                "tackles_won": 0.1252,
                "tackles": 0.3755,
                "clearances": 0.0,
                "blocks": 0.1065,
                "big_chances_created": 0.3589,
                "big_chances_missed": 0.4077,
                "xgot": 0.1876,
                "offsides": 2.0376,
                "ball_carries": 5.4735,
                "total_progression": 13.5065,
                "progressive_carries": 1.5551,
                "shots_off_target": 0.984
              },
              "params": {
                "market_value_eur": 480000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9958,
                "reference_quality": 0.505,
                "history_matches": 19,
                "history_shrink": 0.2083,
                "market_value_known": true
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.2373,
                "goals": 0.2181,
                "goal_rate": 0.2181,
                "shots_on_target": 0.6711,
                "total_shots": 1.6552,
                "expected_assists": 0.0504,
                "key_pass": 0.6224,
                "rating": 6.7259,
                "minutes": 67.24,
                "total_pass": 7.7921,
                "accurate_pass": 5.3872,
                "duels_won": 2.1042,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 4.8623,
                "accurate_opp_half_passes": 2.5825,
                "crosses_total": 0.4714,
                "crosses_accurate": 0.2398,
                "touches": 16.0912,
                "possession_lost": 6.3779,
                "dispossessed": 1.0763,
                "duels_lost": 5.8301,
                "aerial_lost": 2.1517,
                "total_contest": 1.4107,
                "won_contest": 0.2797,
                "ball_recovery": 1.4451,
                "challenges_lost": 0.5504,
                "fouls": 0.9207,
                "fouls_drawn": 0.1733,
                "assists": 0.1733,
                "assist_rate": 0.1733,
                "interceptions": 0.0,
                "tackles_won": 0.1252,
                "tackles": 0.3755,
                "clearances": 0.0,
                "blocks": 0.1065,
                "big_chances_created": 0.3589,
                "big_chances_missed": 0.4077,
                "xgot": 0.1876,
                "offsides": 2.0376,
                "ball_carries": 5.4735,
                "total_progression": 13.5065,
                "progressive_carries": 1.5551,
                "shots_off_target": 0.984
              },
              "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.2317,
                "goals": 0.213,
                "goal_rate": 0.213,
                "shots_on_target": 0.6553,
                "total_shots": 1.6163,
                "expected_assists": 0.0504,
                "key_pass": 0.6224,
                "rating": 6.7259,
                "minutes": 67.24,
                "total_pass": 7.7921,
                "accurate_pass": 5.3872,
                "duels_won": 2.1042,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 4.8623,
                "accurate_opp_half_passes": 2.5825,
                "crosses_total": 0.4714,
                "crosses_accurate": 0.2398,
                "touches": 16.0912,
                "possession_lost": 6.3779,
                "dispossessed": 1.0763,
                "duels_lost": 5.8301,
                "aerial_lost": 2.1517,
                "total_contest": 1.4107,
                "won_contest": 0.2797,
                "ball_recovery": 1.4451,
                "challenges_lost": 0.5504,
                "fouls": 0.9207,
                "fouls_drawn": 0.1733,
                "assists": 0.1733,
                "assist_rate": 0.1733,
                "interceptions": 0.0,
                "tackles_won": 0.1252,
                "tackles": 0.3755,
                "clearances": 0.0,
                "blocks": 0.1065,
                "big_chances_created": 0.3589,
                "big_chances_missed": 0.3981,
                "xgot": 0.1832,
                "offsides": 2.0376,
                "ball_carries": 5.4735,
                "total_progression": 13.5065,
                "progressive_carries": 1.5551,
                "shots_off_target": 0.9609,
                "duel_xg_multiplier": 0.9765,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.6,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.184,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Ángel Recio, Fernando Calero",
                "opponent_faced": "Ángel Recio, Fernando Calero",
                "antagonist_source": "attacking_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Ángel Recio, Fernando Calero",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                  "duel_win_rate": 0.184,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v2",
                  "xg_multiplier": 0.9765,
                  "skill_edge": 0.0,
                  "height_edge": -0.016,
                  "attacker_skill": 0.4374,
                  "defender_skill": 0.4374,
                  "attacker_role": "ST",
                  "attacker_mv_price_index": 1.0,
                  "defender_adjusted_parts": [
                    {
                      "player": "Ángel Recio",
                      "market_value": 1000000,
                      "role": "CB",
                      "price_index": 0.75,
                      "adjusted_quality": 0.4374
                    },
                    {
                      "player": "Fernando Calero",
                      "market_value": 2100000,
                      "role": "CB",
                      "price_index": 0.75,
                      "adjusted_quality": 0.4374
                    }
                  ],
                  "xg_override": 0.2317
                }
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 1.6552,
                  "after": 1.6163
                },
                {
                  "stat": "shotOffTarget",
                  "before": 0.984,
                  "after": 0.9609
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.6711,
                  "after": 0.6553
                },
                {
                  "stat": "bigChanceMissed",
                  "before": 0.4077,
                  "after": 0.3981
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.2373,
                  "after": 0.2317
                },
                {
                  "stat": "goals",
                  "before": 0.2181,
                  "after": 0.213
                }
              ]
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "expected_goals": 0.2317,
                "goal_rate": 0.213,
                "goals": 0,
                "shots_on_target": 0.6553,
                "total_shots": 1.6163,
                "expected_assists": 0.0504,
                "key_pass": 0.6224,
                "rating": 6.7259,
                "minutes": 67.24,
                "total_pass": 7.7921,
                "accurate_pass": 5.3872,
                "duels_won": 2.1042,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 4.8623,
                "accurate_opp_half_passes": 2.5825,
                "crosses_total": 0.4714,
                "crosses_accurate": 0.2398,
                "touches": 16.0912,
                "possession_lost": 6.3779,
                "dispossessed": 1.0763,
                "duels_lost": 5.8301,
                "aerial_lost": 2.1517,
                "total_contest": 1.4107,
                "won_contest": 0.2797,
                "ball_recovery": 1.4451,
                "challenges_lost": 0.5504,
                "fouls": 0.9207,
                "fouls_drawn": 0.1733,
                "assist_rate": 0.1733,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.1252,
                "tackles": 0.3755,
                "clearances": 0.0,
                "blocks": 0.1065,
                "big_chances_created": 0.3589,
                "big_chances_missed": 0.3981,
                "xgot": 0.1832,
                "offsides": 2.0376,
                "ball_carries": 5.4735,
                "total_progression": 13.5065,
                "progressive_carries": 1.5551,
                "shots_off_target": 0.9609,
                "duel_xg_multiplier": 0.9765,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.6,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.184,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Ángel Recio, Fernando Calero",
                "opponent_faced": "Ángel Recio, Fernando Calero",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "scoreline_reset": true,
                "team_goals": 1
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.26 (squad xG sum 1.2639, xG scale 0.9946, xA scale 1.0687, team xA 0.82 = 0.65 x lambda)",
              "stats": {
                "expected_goals": 0.2304,
                "goal_rate": 0.213,
                "goals": 0,
                "shots_on_target": 0.6553,
                "total_shots": 1.6163,
                "expected_assists": 0.0539,
                "key_pass": 0.6224,
                "rating": 6.7259,
                "minutes": 67.24,
                "total_pass": 7.7921,
                "accurate_pass": 5.3872,
                "duels_won": 2.1042,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 4.8623,
                "accurate_opp_half_passes": 2.5825,
                "crosses_total": 0.4714,
                "crosses_accurate": 0.2398,
                "touches": 16.0912,
                "possession_lost": 6.3779,
                "dispossessed": 1.0763,
                "duels_lost": 5.8301,
                "aerial_lost": 2.1517,
                "total_contest": 1.4107,
                "won_contest": 0.2797,
                "ball_recovery": 1.4451,
                "challenges_lost": 0.5504,
                "fouls": 0.9207,
                "fouls_drawn": 0.1733,
                "assist_rate": 0.1733,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.1252,
                "tackles": 0.3755,
                "clearances": 0.0,
                "blocks": 0.1065,
                "big_chances_created": 0.3589,
                "big_chances_missed": 0.3981,
                "xgot": 0.1822,
                "offsides": 2.0376,
                "ball_carries": 5.4735,
                "total_progression": 13.5065,
                "progressive_carries": 1.5551,
                "shots_off_target": 0.9609,
                "duel_xg_multiplier": 0.9765,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.6,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.184,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Ángel Recio, Fernando Calero",
                "opponent_faced": "Ángel Recio, Fernando Calero",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.9336,
                "creation_factor": 1.25
              },
              "params": {
                "team_lambda": 1.257,
                "squad_xg_sum": 1.2639,
                "squad_xa_sum": 0.7645,
                "team_expected_assists": 0.817,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.9946,
                "xa_scale": 1.0687,
                "opponent_lambda": 0.869,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              }
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 91.0)",
              "stats": {
                "expected_goals": 0.2304,
                "goal_rate": 0.213,
                "goals": 0,
                "shots_on_target": 0.6553,
                "total_shots": 1.6163,
                "expected_assists": 0.0539,
                "key_pass": 0.6224,
                "rating": 6.7259,
                "minutes": 67.24,
                "total_pass": 7.7921,
                "accurate_pass": 5.3872,
                "duels_won": 2.1042,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 4.8623,
                "accurate_opp_half_passes": 2.5825,
                "crosses_total": 0.4714,
                "crosses_accurate": 0.2398,
                "touches": 16.0912,
                "possession_lost": 6.3779,
                "dispossessed": 1.0763,
                "duels_lost": 5.8301,
                "aerial_lost": 2.1517,
                "total_contest": 1.4107,
                "won_contest": 0.2797,
                "ball_recovery": 1.4451,
                "challenges_lost": 0.5504,
                "fouls": 0.9207,
                "fouls_drawn": 0.1733,
                "assist_rate": 0.1733,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.1252,
                "tackles": 0.3755,
                "clearances": 0.0,
                "blocks": 0.1065,
                "big_chances_created": 0.3589,
                "big_chances_missed": 0.3981,
                "xgot": 0.1822,
                "offsides": 2.0376,
                "ball_carries": 5.4735,
                "total_progression": 13.5065,
                "progressive_carries": 1.5551,
                "shots_off_target": 0.9609,
                "duel_xg_multiplier": 0.9765,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.6,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.184,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Ángel Recio, Fernando Calero",
                "opponent_faced": "Ángel Recio, Fernando Calero",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.9336,
                "creation_factor": 1.25,
                "fifa_overall": 91.0
              },
              "params": {
                "match_squad_rank": 12,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 4,
                "fifa_rank": 3.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 91.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "expected_goals": 0.2304,
                "goal_rate": 0.213,
                "goals": 0,
                "shots_on_target": 0.6553,
                "total_shots": 1.6163,
                "expected_assists": 0.0539,
                "key_pass": 0.6224,
                "rating": 6.7259,
                "minutes": 67.24,
                "total_pass": 7.7921,
                "accurate_pass": 5.3872,
                "duels_won": 2.1042,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 4.8623,
                "accurate_opp_half_passes": 2.5825,
                "crosses_total": 0.4714,
                "crosses_accurate": 0.2398,
                "touches": 16.0912,
                "possession_lost": 6.3779,
                "dispossessed": 1.0763,
                "duels_lost": 5.8301,
                "aerial_lost": 2.1517,
                "total_contest": 1.4107,
                "won_contest": 0.2797,
                "ball_recovery": 1.4451,
                "challenges_lost": 0.5504,
                "fouls": 0.9207,
                "fouls_drawn": 0.1733,
                "assist_rate": 0.1733,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.1252,
                "tackles": 0.3755,
                "clearances": 0.0,
                "blocks": 0.1065,
                "big_chances_created": 0.3589,
                "big_chances_missed": 0.3981,
                "xgot": 0.1822,
                "offsides": 2.0376,
                "ball_carries": 5.4735,
                "total_progression": 13.5065,
                "progressive_carries": 1.5551,
                "shots_off_target": 0.9609,
                "duel_xg_multiplier": 0.9765,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.6,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.184,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Ángel Recio, Fernando Calero",
                "opponent_faced": "Ángel Recio, Fernando Calero",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.2058,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.9336,
                "creation_factor": 1.25,
                "fifa_overall": 91.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.2058,
                "goal_rate": 0.213,
                "scorer_weight": 0.2151,
                "squad_weight_total": 1.3303,
                "weight_share": 0.1617,
                "finishing_factor": 0.9336,
                "appearance_weight": 1.0,
                "weight_rank": 2,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lucas Boyé",
                    "weight": 0.3448,
                    "already": 0,
                    "effective_weight": 0.3448,
                    "runner_up": "Mariano Díaz",
                    "runner_up_effective_weight": 0.2151
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "expected_goals": 0.2304,
                "goal_rate": 0.213,
                "goals": 0,
                "shots_on_target": 0.6553,
                "total_shots": 1.6163,
                "expected_assists": 0.0539,
                "key_pass": 0.6224,
                "rating": 6.7259,
                "minutes": 67.24,
                "total_pass": 7.7921,
                "accurate_pass": 5.3872,
                "duels_won": 2.1042,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 4.8623,
                "accurate_opp_half_passes": 2.5825,
                "crosses_total": 0.4714,
                "crosses_accurate": 0.2398,
                "touches": 16.0912,
                "possession_lost": 6.3779,
                "dispossessed": 1.0763,
                "duels_lost": 5.8301,
                "aerial_lost": 2.1517,
                "total_contest": 1.4107,
                "won_contest": 0.2797,
                "ball_recovery": 1.4451,
                "challenges_lost": 0.5504,
                "fouls": 0.9207,
                "fouls_drawn": 0.1733,
                "assist_rate": 0.1733,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.1252,
                "tackles": 0.3755,
                "clearances": 0.0,
                "blocks": 0.1065,
                "big_chances_created": 0.3589,
                "big_chances_missed": 0.3981,
                "xgot": 0.1822,
                "offsides": 2.0376,
                "ball_carries": 5.4735,
                "total_progression": 13.5065,
                "progressive_carries": 1.5551,
                "shots_off_target": 0.9609,
                "duel_xg_multiplier": 0.9765,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.6,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.184,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Ángel Recio, Fernando Calero",
                "opponent_faced": "Ángel Recio, Fernando Calero",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.2058,
                "projected_assists": 0,
                "assist_probability": 0.0525,
                "finishing_factor": 0.9336,
                "creation_factor": 1.25,
                "fifa_overall": 91.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0525,
                "assist_rate": 0.1733,
                "provider_weight": 0.0674,
                "squad_weight_total": 0.7993,
                "weight_share": 0.0843,
                "creation_factor": 1.25,
                "appearance_weight": 1.0,
                "weight_rank": 6,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Ángel Pérez",
                    "weight": 0.1707,
                    "already": 0,
                    "effective_weight": 0.1707,
                    "runner_up": "Denis Suárez",
                    "runner_up_effective_weight": 0.1469,
                    "blocked_own_goal": [
                      "Lucas Boyé"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Denis Suárez": {
          "player_id": 138383,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 4,
          "height": 176,
          "market_value": 1100000,
          "stats": {
            "key_pass": 2,
            "expected_assists": 0.1686,
            "assist_rate": 0.1311,
            "assists": 0,
            "expected_goals": 0.0806,
            "goal_rate": 0.0958,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "rating": 6.9568,
            "minutes": 72,
            "total_pass": 31,
            "accurate_pass": 25,
            "duels_won": 3,
            "total_long_balls": 3,
            "accurate_long_balls": 1,
            "total_own_half_passes": 11,
            "accurate_own_half_passes": 10,
            "total_opp_half_passes": 20,
            "accurate_opp_half_passes": 15,
            "crosses_total": 4,
            "crosses_accurate": 1,
            "touches": 45,
            "possession_lost": 11.8563,
            "dispossessed": 0.7016,
            "duels_lost": 4,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 1,
            "tackles": 1,
            "clearances": 1,
            "total_contest": 2,
            "won_contest": 1,
            "challenges_lost": 1,
            "fouls": 1,
            "fouls_drawn": 1,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0531,
            "ball_carries": 15,
            "total_progression": 63,
            "progressive_carries": 1,
            "shots_off_target": 1,
            "duel_xg_multiplier": 1.0,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.7,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.42,
            "pressing_faced": "LOW",
            "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
            "numerical_situation": "1v1",
            "opponent_defenders": "Dani Lorenzo",
            "opponent_faced": "Dani Lorenzo",
            "antagonist_source": "attacking_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.0774,
            "projected_assists": 0,
            "assist_probability": 0.1552,
            "finishing_factor": 1.113,
            "creation_factor": 0.8715,
            "fifa_overall": 74.0
          },
          "latest_10_games": [
            {
              "match_id": 16421069,
              "match_date": "2026-10-18",
              "home_team": "Celta Vigo",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 28,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0379,
                "total_shots": 0,
                "total_pass": 20,
                "accurate_pass": 17,
                "key_pass": 1,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421056,
              "match_date": "2026-10-10",
              "home_team": "Deportivo Alavés",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 79,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.3531,
                "total_shots": 0,
                "total_pass": 34,
                "accurate_pass": 28,
                "key_pass": 2,
                "interceptions": 2,
                "clearances": 2,
                "duels_won": 4,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416334,
              "match_date": "2026-09-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Valencia",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Valencia",
              "stats": {
                "minutes": 67,
                "rating": 7.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.208,
                "total_shots": 0,
                "total_pass": 25,
                "accurate_pass": 21,
                "key_pass": 2,
                "tackles": 2,
                "tackles_won": 1,
                "duels_won": 3,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416328,
              "match_date": "2026-09-12",
              "home_team": "Real Racing Club",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.1075,
                "total_shots": 0,
                "total_pass": 44,
                "accurate_pass": 35,
                "key_pass": 2,
                "tackles": 2,
                "tackles_won": 2,
                "duels_won": 6,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416318,
              "match_date": "2026-09-06",
              "home_team": "Deportivo Alavés",
              "away_team": "Osasuna",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 19,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1615,
                "expected_assists": 0.0067,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 15,
                "accurate_pass": 14,
                "aerial_won": 1,
                "duels_won": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416290,
              "match_date": "2026-08-28",
              "home_team": "Deportivo Alavés",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 19,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0326,
                "total_shots": 0,
                "total_pass": 8,
                "accurate_pass": 5,
                "key_pass": 2,
                "duels_won": 1,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416292,
              "match_date": "2026-08-20",
              "home_team": "Rayo Vallecano",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 28,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.2808,
                "total_shots": 0,
                "total_pass": 23,
                "accurate_pass": 19,
                "key_pass": 2,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421047,
              "match_date": "2026-08-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Getafe",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Getafe",
              "stats": {
                "minutes": 57,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.3698,
                "expected_assists": 0.1374,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 26,
                "accurate_pass": 18,
                "key_pass": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083706,
              "match_date": "2026-05-23",
              "home_team": "Deportivo Alavés",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 16,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0437,
                "expected_assists": 0.0824,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 16,
                "accurate_pass": 14,
                "key_pass": 1,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083692,
              "match_date": "2026-05-17",
              "home_team": "Real Oviedo",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Real Oviedo",
              "stats": {
                "minutes": 69,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0502,
                "total_shots": 0,
                "total_pass": 19,
                "accurate_pass": 13,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 5,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 3706,
            "combined_rank_score": 1661.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 445.0,
            "sofascore_rating": 6.9,
            "sofascore_appearances": 2.0,
            "fifa_rank": 2878.0,
            "fifa_overall": 74.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 2,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.9568,
            "source_file": "data/player_rankings.csv",
            "player_name": "Denis Suárez",
            "ranking_neighbors": {
              "upper": [
                {
                  "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
                }
              ],
              "lower": [
                {
                  "player_name": "Ernest Muçi",
                  "ranking": 3707
                },
                {
                  "player_name": "Gabriel Suazo",
                  "ranking": 3708
                },
                {
                  "player_name": "İrfan Can Kahveci",
                  "ranking": 3709
                },
                {
                  "player_name": "Lucas Beltrán",
                  "ranking": 3710
                },
                {
                  "player_name": "Niclas Eliasson",
                  "ranking": 3711
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.762,
          "history_matches": 38,
          "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",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "rating",
              "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",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 38,
            "data_confidence": 0.762,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.9976,
            "fbref_prior_metrics": {
              "squad": "Alavés",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 1.0,
              "minutes": 105.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.86,
              "shots_on_target_pct": 100.0,
              "prior_reliability": 0.08
            },
            "rationale": "XGBoost regressor (M_service) evaluated 38 historical appearances across 8 target models; FBref 2026-2027 prior blended (La Liga, Alavés, rel: 0.08, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 1.7438,
                "expected_assists": 0.1582,
                "assists": 0.1322,
                "assist_rate": 0.1322,
                "expected_goals": 0.0812,
                "goals": 0.0967,
                "goal_rate": 0.0967,
                "shots_on_target": 0.3271,
                "total_shots": 0.9174,
                "rating": 6.9568,
                "minutes": 71.71,
                "total_pass": 30.7445,
                "accurate_pass": 24.9713,
                "duels_won": 3.113,
                "total_long_balls": 2.6857,
                "accurate_long_balls": 1.0917,
                "total_own_half_passes": 10.9226,
                "accurate_own_half_passes": 9.8719,
                "total_opp_half_passes": 19.8218,
                "accurate_opp_half_passes": 15.0993,
                "crosses_total": 3.7227,
                "crosses_accurate": 1.2294,
                "touches": 44.6905,
                "possession_lost": 11.8848,
                "dispossessed": 0.7033,
                "duels_lost": 4.1291,
                "aerial_won": 0.1105,
                "aerial_lost": 0.4387,
                "interceptions": 0.3767,
                "tackles_won": 0.5806,
                "tackles": 0.955,
                "clearances": 0.5192,
                "total_contest": 1.9539,
                "won_contest": 0.9007,
                "challenges_lost": 1.2428,
                "fouls": 0.691,
                "fouls_drawn": 1.1469,
                "blocks": 0.0448,
                "big_chances_created": 0.0309,
                "big_chances_missed": 0.1308,
                "xgot": 0.0535,
                "ball_carries": 14.5842,
                "total_progression": 63.2692,
                "progressive_carries": 1.1974,
                "shots_off_target": 0.5903
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 7,
                  "trained_at": "2026-10-23T10:05:23.571433+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 903,
                    "rows": 24475
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Celta Vigo",
                    "minutes": 28.0,
                    "is_starting": false,
                    "weight": 0.1503,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-10-10",
                    "opponent": "Atlético Madrid",
                    "minutes": 79.0,
                    "is_starting": true,
                    "weight": 0.1278,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-09-15",
                    "opponent": "Valencia",
                    "minutes": 67.0,
                    "is_starting": true,
                    "weight": 0.1086,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Real Racing Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0923,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Osasuna",
                    "minutes": 19.0,
                    "is_starting": false,
                    "weight": 0.0785,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Villarreal",
                    "minutes": 19.0,
                    "is_starting": false,
                    "weight": 0.0667,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-20",
                    "opponent": "Rayo Vallecano",
                    "minutes": 28.0,
                    "is_starting": false,
                    "weight": 0.0567,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-08-15",
                    "opponent": "Getafe",
                    "minutes": 57.0,
                    "is_starting": true,
                    "weight": 0.0482,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-05-23",
                    "opponent": "Rayo Vallecano",
                    "minutes": 16.0,
                    "is_starting": false,
                    "weight": 0.041,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-05-17",
                    "opponent": "Real Oviedo",
                    "minutes": 69.0,
                    "is_starting": true,
                    "weight": 0.0348,
                    "rating": 6.6
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 1.0,
                  "creative_index": 0.6413,
                  "totalShots": 0.2317,
                  "expectedGoals": 0.0364,
                  "expectedAssists": 0.1241,
                  "onTargetScoringAttempt": 0.0979
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 1.7437912225723267,
                    "model_output": 1.7438,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1647
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1377
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0663
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0524
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0316
                      }
                    ],
                    "decomposition": {
                      "base": 0.8945,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1202
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.1237
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.1218
                        },
                        {
                          "name": "totalCross",
                          "contribution": 0.0814
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0807
                        }
                      ],
                      "others": 0.3215,
                      "total": 1.7438,
                      "log_link": true,
                      "margin_base": -0.111507,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.126076
                        },
                        {
                          "name": "creative_index",
                          "margin": 0.114998
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.101614
                        },
                        {
                          "name": "totalCross",
                          "margin": 0.062583
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.058429
                        }
                      ],
                      "others_margin": 0.203869
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.15817424654960632,
                    "model_output": 0.1582,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1545
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1048
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.1021
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0476
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0472
                      }
                    ],
                    "decomposition": {
                      "base": 0.0859,
                      "items": [
                        {
                          "name": "totalCross",
                          "contribution": 0.0132
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0115
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0082
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0072
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0067
                        }
                      ],
                      "others": 0.0255,
                      "total": 0.1582,
                      "log_link": true,
                      "margin_base": -2.454719,
                      "item_margins": [
                        {
                          "name": "totalCross",
                          "margin": 0.14294
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.110209
                        },
                        {
                          "name": "creative_index",
                          "margin": 0.071114
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.059189
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.051517
                        }
                      ],
                      "others_margin": 0.175693
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.13220354914665222,
                    "model_output": 0.1322,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.0619
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0395
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0343
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0335
                      }
                    ],
                    "decomposition": {
                      "base": 0.0874,
                      "items": [
                        {
                          "name": "totalCross",
                          "contribution": 0.0098
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0109
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0089
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0089
                        },
                        {
                          "name": "goalAssist",
                          "contribution": -0.006
                        }
                      ],
                      "others": 0.0123,
                      "total": 0.1322,
                      "log_link": true,
                      "margin_base": -2.437263,
                      "item_margins": [
                        {
                          "name": "totalCross",
                          "margin": 0.106329
                        },
                        {
                          "name": "creative_index",
                          "margin": 0.106257
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.07895
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.073236
                        },
                        {
                          "name": "goalAssist",
                          "margin": -0.048439
                        }
                      ],
                      "others_margin": 0.097516
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.0811668112874031,
                    "model_output": 0.0812,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedGoals",
                        "importance": 0.134
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.074
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0705
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.039
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0273
                      }
                    ],
                    "decomposition": {
                      "base": 0.094,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.02
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0123
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.009
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0081
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0037
                        }
                      ],
                      "others": -0.0023,
                      "total": 0.0812,
                      "log_link": true,
                      "margin_base": -2.364919,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.239109
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.154281
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.099347
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.088513
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.043423
                        }
                      ],
                      "others_margin": -0.028913
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.09666595607995987,
                    "model_output": 0.0967,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0974
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0527
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0513
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0365
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.03
                      }
                    ],
                    "decomposition": {
                      "base": 0.0993,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0139
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0131
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": 0.0127
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0101
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0048
                        }
                      ],
                      "others": -0.0092,
                      "total": 0.0967,
                      "log_link": true,
                      "margin_base": -2.309444,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.151293
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.142363
                        },
                        {
                          "name": "interceptionWon",
                          "margin": 0.120935
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.095805
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.046049
                        }
                      ],
                      "others_margin": -0.089297
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.3270736336708069,
                    "model_output": 0.3271,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1106
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0885
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0762
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0292
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0279
                      }
                    ],
                    "decomposition": {
                      "base": 0.326,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.081
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0403
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0258
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0166
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": 0.0165
                        }
                      ],
                      "others": 0.0161,
                      "total": 0.3271,
                      "log_link": true,
                      "margin_base": -1.120773,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.285579
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.152421
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.086478
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.054857
                        },
                        {
                          "name": "interceptionWon",
                          "margin": 0.054653
                        }
                      ],
                      "others_margin": 0.050088
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.9173582792282104,
                    "model_output": 0.9174,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1261
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1167
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0633
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0419
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.9969,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.3007
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1489
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0898
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0322
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0231
                        }
                      ],
                      "others": 0.0378,
                      "total": 0.9174,
                      "log_link": false,
                      "margin_base": 0.996896,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.300697
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.148898
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.089777
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.032195
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": -0.023079
                        }
                      ],
                      "others_margin": 0.037759
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.956789970397949,
                    "model_output": 6.9568,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "rating",
                        "importance": 0.0947
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0836
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0491
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0438
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.036
                      }
                    ],
                    "decomposition": {
                      "base": 6.8561,
                      "items": [
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0388
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0367
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0188
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0169
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0144
                        }
                      ],
                      "others": 0.0127,
                      "total": 6.9568,
                      "log_link": false,
                      "margin_base": 6.856052,
                      "item_margins": [
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.038767
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.036708
                        },
                        {
                          "name": "rating",
                          "margin": -0.018823
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.016948
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.014394
                        }
                      ],
                      "others_margin": 0.012745
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 38,
                  "role_matches": 19,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "role_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9976, quality 0.437)",
              "stats": {
                "key_pass": 1.7396,
                "expected_assists": 0.1578,
                "assists": 0.1319,
                "assist_rate": 0.1319,
                "expected_goals": 0.081,
                "goals": 0.0964,
                "goal_rate": 0.0964,
                "shots_on_target": 0.3263,
                "total_shots": 0.9152,
                "rating": 6.9568,
                "minutes": 71.71,
                "total_pass": 30.6707,
                "accurate_pass": 24.9114,
                "duels_won": 3.1055,
                "total_long_balls": 2.6793,
                "accurate_long_balls": 1.0891,
                "total_own_half_passes": 10.8964,
                "accurate_own_half_passes": 9.8482,
                "total_opp_half_passes": 19.7742,
                "accurate_opp_half_passes": 15.0631,
                "crosses_total": 3.7138,
                "crosses_accurate": 1.2264,
                "touches": 44.5832,
                "possession_lost": 11.8563,
                "dispossessed": 0.7016,
                "duels_lost": 4.1192,
                "aerial_won": 0.1102,
                "aerial_lost": 0.4376,
                "interceptions": 0.3758,
                "tackles_won": 0.5792,
                "tackles": 0.9527,
                "clearances": 0.518,
                "total_contest": 1.9492,
                "won_contest": 0.8985,
                "challenges_lost": 1.2398,
                "fouls": 0.6893,
                "fouls_drawn": 1.1441,
                "blocks": 0.0447,
                "big_chances_created": 0.0308,
                "big_chances_missed": 0.1305,
                "xgot": 0.0534,
                "ball_carries": 14.5492,
                "total_progression": 63.1174,
                "progressive_carries": 1.1945,
                "shots_off_target": 0.5889
              },
              "params": {
                "market_value_eur": 1100000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9976,
                "reference_quality": 0.505,
                "history_matches": 38,
                "history_shrink": 0.1163,
                "market_value_known": true
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0060)",
              "stats": {
                "key_pass": 1.7396,
                "expected_assists": 0.1578,
                "assists": 0.1311,
                "assist_rate": 0.1311,
                "expected_goals": 0.081,
                "goals": 0.0958,
                "goal_rate": 0.0958,
                "shots_on_target": 0.3285,
                "total_shots": 0.9138,
                "rating": 6.9568,
                "minutes": 71.71,
                "total_pass": 30.6707,
                "accurate_pass": 24.9114,
                "duels_won": 3.1055,
                "total_long_balls": 2.6793,
                "accurate_long_balls": 1.0891,
                "total_own_half_passes": 10.8964,
                "accurate_own_half_passes": 9.8482,
                "total_opp_half_passes": 19.7742,
                "accurate_opp_half_passes": 15.0631,
                "crosses_total": 3.7476,
                "crosses_accurate": 1.2264,
                "touches": 44.5832,
                "possession_lost": 11.8563,
                "dispossessed": 0.7016,
                "duels_lost": 4.1192,
                "aerial_won": 0.1102,
                "aerial_lost": 0.4376,
                "interceptions": 0.3735,
                "tackles_won": 0.5797,
                "tackles": 0.9527,
                "clearances": 0.518,
                "total_contest": 1.9492,
                "won_contest": 0.8985,
                "challenges_lost": 1.2398,
                "fouls": 0.6972,
                "fouls_drawn": 1.1412,
                "blocks": 0.0447,
                "big_chances_created": 0.0308,
                "big_chances_missed": 0.1305,
                "xgot": 0.0534,
                "ball_carries": 14.5492,
                "total_progression": 63.1174,
                "progressive_carries": 1.1945,
                "shots_off_target": 0.5889
              },
              "params": {
                "blend_weight": 0.006,
                "history_matches": 38,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.7968,
                "prior_reliability": 0.08,
                "competition": "La Liga",
                "squad": "Alavés"
              },
              "changes": [
                {
                  "stat": "totalCross",
                  "before": 3.7138,
                  "after": 3.7476
                },
                {
                  "stat": "fouls",
                  "before": 0.6893,
                  "after": 0.6972
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1.7396,
                "expected_assists": 0.1578,
                "assists": 0.1311,
                "assist_rate": 0.1311,
                "expected_goals": 0.081,
                "goals": 0.0958,
                "goal_rate": 0.0958,
                "shots_on_target": 0.3285,
                "total_shots": 0.9174,
                "rating": 6.9568,
                "minutes": 71.71,
                "total_pass": 30.6707,
                "accurate_pass": 24.9114,
                "duels_won": 3.1055,
                "total_long_balls": 2.6793,
                "accurate_long_balls": 1.0891,
                "total_own_half_passes": 10.8964,
                "accurate_own_half_passes": 9.8482,
                "total_opp_half_passes": 19.7742,
                "accurate_opp_half_passes": 15.0631,
                "crosses_total": 3.7476,
                "crosses_accurate": 1.2264,
                "touches": 44.5832,
                "possession_lost": 11.8563,
                "dispossessed": 0.7016,
                "duels_lost": 4.1192,
                "aerial_won": 0.1102,
                "aerial_lost": 0.4376,
                "interceptions": 0.3735,
                "tackles_won": 0.5797,
                "tackles": 0.9527,
                "clearances": 0.518,
                "total_contest": 1.9492,
                "won_contest": 0.8985,
                "challenges_lost": 1.2398,
                "fouls": 0.6972,
                "fouls_drawn": 1.1412,
                "blocks": 0.0447,
                "big_chances_created": 0.0308,
                "big_chances_missed": 0.1305,
                "xgot": 0.0534,
                "ball_carries": 14.5492,
                "total_progression": 63.1174,
                "progressive_carries": 1.1945,
                "shots_off_target": 0.5889
              },
              "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.7396,
                "expected_assists": 0.1578,
                "assists": 0.1311,
                "assist_rate": 0.1311,
                "expected_goals": 0.081,
                "goals": 0.0958,
                "goal_rate": 0.0958,
                "shots_on_target": 0.3285,
                "total_shots": 0.9174,
                "rating": 6.9568,
                "minutes": 71.71,
                "total_pass": 30.6707,
                "accurate_pass": 24.9114,
                "duels_won": 3.1055,
                "total_long_balls": 2.6793,
                "accurate_long_balls": 1.0891,
                "total_own_half_passes": 10.8964,
                "accurate_own_half_passes": 9.8482,
                "total_opp_half_passes": 19.7742,
                "accurate_opp_half_passes": 15.0631,
                "crosses_total": 3.7476,
                "crosses_accurate": 1.2264,
                "touches": 44.5832,
                "possession_lost": 11.8563,
                "dispossessed": 0.7016,
                "duels_lost": 4.1192,
                "aerial_won": 0.9,
                "aerial_lost": 0.4376,
                "interceptions": 0.3735,
                "tackles_won": 0.5797,
                "tackles": 0.9527,
                "clearances": 0.518,
                "total_contest": 1.9492,
                "won_contest": 0.8985,
                "challenges_lost": 1.2398,
                "fouls": 0.6972,
                "fouls_drawn": 1.1412,
                "blocks": 0.0447,
                "big_chances_created": 0.0308,
                "big_chances_missed": 0.1305,
                "xgot": 0.0534,
                "ball_carries": 14.5492,
                "total_progression": 63.1174,
                "progressive_carries": 1.1945,
                "shots_off_target": 0.5889,
                "duel_xg_multiplier": 1.0,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.42,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Dani Lorenzo",
                "opponent_faced": "Dani Lorenzo",
                "antagonist_source": "attacking_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Dani Lorenzo",
                  "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                  "duel_win_rate": 0.42,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v1",
                  "xg_multiplier": 1.0,
                  "skill_edge": 0.0,
                  "height_edge": 0.0,
                  "attacker_skill": 0.4374,
                  "defender_skill": 0.4374,
                  "attacker_role": "CM",
                  "attacker_mv_price_index": 0.9,
                  "defender_adjusted_parts": [
                    {
                      "player": "Dani Lorenzo",
                      "market_value": 2300000,
                      "role": "CM",
                      "price_index": 0.9,
                      "adjusted_quality": 0.4374
                    }
                  ],
                  "xg_override": 0.081
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.1102,
                  "after": 0.9
                }
              ]
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "key_pass": 1.7396,
                "expected_assists": 0.1578,
                "assist_rate": 0.1311,
                "assists": 0,
                "expected_goals": 0.081,
                "goal_rate": 0.0958,
                "goals": 0,
                "shots_on_target": 0.3285,
                "total_shots": 0.9174,
                "rating": 6.9568,
                "minutes": 71.71,
                "total_pass": 30.6707,
                "accurate_pass": 24.9114,
                "duels_won": 3.1055,
                "total_long_balls": 2.6793,
                "accurate_long_balls": 1.0891,
                "total_own_half_passes": 10.8964,
                "accurate_own_half_passes": 9.8482,
                "total_opp_half_passes": 19.7742,
                "accurate_opp_half_passes": 15.0631,
                "crosses_total": 3.7476,
                "crosses_accurate": 1.2264,
                "touches": 44.5832,
                "possession_lost": 11.8563,
                "dispossessed": 0.7016,
                "duels_lost": 4.1192,
                "aerial_won": 0.9,
                "aerial_lost": 0.4376,
                "interceptions": 0.3735,
                "tackles_won": 0.5797,
                "tackles": 0.9527,
                "clearances": 0.518,
                "total_contest": 1.9492,
                "won_contest": 0.8985,
                "challenges_lost": 1.2398,
                "fouls": 0.6972,
                "fouls_drawn": 1.1412,
                "blocks": 0.0447,
                "big_chances_created": 0.0308,
                "big_chances_missed": 0.1305,
                "xgot": 0.0534,
                "ball_carries": 14.5492,
                "total_progression": 63.1174,
                "progressive_carries": 1.1945,
                "shots_off_target": 0.5889,
                "duel_xg_multiplier": 1.0,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.42,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Dani Lorenzo",
                "opponent_faced": "Dani Lorenzo",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "scoreline_reset": true,
                "team_goals": 1
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.26 (squad xG sum 1.2639, xG scale 0.9946, xA scale 1.0687, team xA 0.82 = 0.65 x lambda)",
              "stats": {
                "key_pass": 1.7396,
                "expected_assists": 0.1686,
                "assist_rate": 0.1311,
                "assists": 0,
                "expected_goals": 0.0806,
                "goal_rate": 0.0958,
                "goals": 0,
                "shots_on_target": 0.3285,
                "total_shots": 0.9174,
                "rating": 6.9568,
                "minutes": 71.71,
                "total_pass": 30.6707,
                "accurate_pass": 24.9114,
                "duels_won": 3.1055,
                "total_long_balls": 2.6793,
                "accurate_long_balls": 1.0891,
                "total_own_half_passes": 10.8964,
                "accurate_own_half_passes": 9.8482,
                "total_opp_half_passes": 19.7742,
                "accurate_opp_half_passes": 15.0631,
                "crosses_total": 3.7476,
                "crosses_accurate": 1.2264,
                "touches": 44.5832,
                "possession_lost": 11.8563,
                "dispossessed": 0.7016,
                "duels_lost": 4.1192,
                "aerial_won": 0.9,
                "aerial_lost": 0.4376,
                "interceptions": 0.3735,
                "tackles_won": 0.5797,
                "tackles": 0.9527,
                "clearances": 0.518,
                "total_contest": 1.9492,
                "won_contest": 0.8985,
                "challenges_lost": 1.2398,
                "fouls": 0.6972,
                "fouls_drawn": 1.1412,
                "blocks": 0.0447,
                "big_chances_created": 0.0308,
                "big_chances_missed": 0.1305,
                "xgot": 0.0531,
                "ball_carries": 14.5492,
                "total_progression": 63.1174,
                "progressive_carries": 1.1945,
                "shots_off_target": 0.5889,
                "duel_xg_multiplier": 1.0,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.42,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Dani Lorenzo",
                "opponent_faced": "Dani Lorenzo",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.113,
                "creation_factor": 0.8715
              },
              "params": {
                "team_lambda": 1.257,
                "squad_xg_sum": 1.2639,
                "squad_xa_sum": 0.7645,
                "team_expected_assists": 0.817,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.9946,
                "xa_scale": 1.0687,
                "opponent_lambda": 0.869,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_assists",
                  "before": 0.1578,
                  "after": 0.1686
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 74.0)",
              "stats": {
                "key_pass": 1.7396,
                "expected_assists": 0.1686,
                "assist_rate": 0.1311,
                "assists": 0,
                "expected_goals": 0.0806,
                "goal_rate": 0.0958,
                "goals": 0,
                "shots_on_target": 0.3285,
                "total_shots": 0.9174,
                "rating": 6.9568,
                "minutes": 71.71,
                "total_pass": 30.6707,
                "accurate_pass": 24.9114,
                "duels_won": 3.1055,
                "total_long_balls": 2.6793,
                "accurate_long_balls": 1.0891,
                "total_own_half_passes": 10.8964,
                "accurate_own_half_passes": 9.8482,
                "total_opp_half_passes": 19.7742,
                "accurate_opp_half_passes": 15.0631,
                "crosses_total": 3.7476,
                "crosses_accurate": 1.2264,
                "touches": 44.5832,
                "possession_lost": 11.8563,
                "dispossessed": 0.7016,
                "duels_lost": 4.1192,
                "aerial_won": 0.9,
                "aerial_lost": 0.4376,
                "interceptions": 0.3735,
                "tackles_won": 0.5797,
                "tackles": 0.9527,
                "clearances": 0.518,
                "total_contest": 1.9492,
                "won_contest": 0.8985,
                "challenges_lost": 1.2398,
                "fouls": 0.6972,
                "fouls_drawn": 1.1412,
                "blocks": 0.0447,
                "big_chances_created": 0.0308,
                "big_chances_missed": 0.1305,
                "xgot": 0.0531,
                "ball_carries": 14.5492,
                "total_progression": 63.1174,
                "progressive_carries": 1.1945,
                "shots_off_target": 0.5889,
                "duel_xg_multiplier": 1.0,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.42,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Dani Lorenzo",
                "opponent_faced": "Dani Lorenzo",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.113,
                "creation_factor": 0.8715,
                "fifa_overall": 74.0
              },
              "params": {
                "match_squad_rank": 2,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3706,
                "fifa_rank": 2878.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 74.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "key_pass": 1.7396,
                "expected_assists": 0.1686,
                "assist_rate": 0.1311,
                "assists": 0,
                "expected_goals": 0.0806,
                "goal_rate": 0.0958,
                "goals": 0,
                "shots_on_target": 0.3285,
                "total_shots": 0.9174,
                "rating": 6.9568,
                "minutes": 71.71,
                "total_pass": 30.6707,
                "accurate_pass": 24.9114,
                "duels_won": 3.1055,
                "total_long_balls": 2.6793,
                "accurate_long_balls": 1.0891,
                "total_own_half_passes": 10.8964,
                "accurate_own_half_passes": 9.8482,
                "total_opp_half_passes": 19.7742,
                "accurate_opp_half_passes": 15.0631,
                "crosses_total": 3.7476,
                "crosses_accurate": 1.2264,
                "touches": 44.5832,
                "possession_lost": 11.8563,
                "dispossessed": 0.7016,
                "duels_lost": 4.1192,
                "aerial_won": 0.9,
                "aerial_lost": 0.4376,
                "interceptions": 0.3735,
                "tackles_won": 0.5797,
                "tackles": 0.9527,
                "clearances": 0.518,
                "total_contest": 1.9492,
                "won_contest": 0.8985,
                "challenges_lost": 1.2398,
                "fouls": 0.6972,
                "fouls_drawn": 1.1412,
                "blocks": 0.0447,
                "big_chances_created": 0.0308,
                "big_chances_missed": 0.1305,
                "xgot": 0.0531,
                "ball_carries": 14.5492,
                "total_progression": 63.1174,
                "progressive_carries": 1.1945,
                "shots_off_target": 0.5889,
                "duel_xg_multiplier": 1.0,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.42,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Dani Lorenzo",
                "opponent_faced": "Dani Lorenzo",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0774,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.113,
                "creation_factor": 0.8715,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0774,
                "goal_rate": 0.0958,
                "scorer_weight": 0.0897,
                "squad_weight_total": 1.3303,
                "weight_share": 0.0674,
                "finishing_factor": 1.113,
                "appearance_weight": 1.0,
                "weight_rank": 5,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lucas Boyé",
                    "weight": 0.3448,
                    "already": 0,
                    "effective_weight": 0.3448,
                    "runner_up": "Mariano Díaz",
                    "runner_up_effective_weight": 0.2151
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "key_pass": 1.7396,
                "expected_assists": 0.1686,
                "assist_rate": 0.1311,
                "assists": 0,
                "expected_goals": 0.0806,
                "goal_rate": 0.0958,
                "goals": 0,
                "shots_on_target": 0.3285,
                "total_shots": 0.9174,
                "rating": 6.9568,
                "minutes": 71.71,
                "total_pass": 30.6707,
                "accurate_pass": 24.9114,
                "duels_won": 3.1055,
                "total_long_balls": 2.6793,
                "accurate_long_balls": 1.0891,
                "total_own_half_passes": 10.8964,
                "accurate_own_half_passes": 9.8482,
                "total_opp_half_passes": 19.7742,
                "accurate_opp_half_passes": 15.0631,
                "crosses_total": 3.7476,
                "crosses_accurate": 1.2264,
                "touches": 44.5832,
                "possession_lost": 11.8563,
                "dispossessed": 0.7016,
                "duels_lost": 4.1192,
                "aerial_won": 0.9,
                "aerial_lost": 0.4376,
                "interceptions": 0.3735,
                "tackles_won": 0.5797,
                "tackles": 0.9527,
                "clearances": 0.518,
                "total_contest": 1.9492,
                "won_contest": 0.8985,
                "challenges_lost": 1.2398,
                "fouls": 0.6972,
                "fouls_drawn": 1.1412,
                "blocks": 0.0447,
                "big_chances_created": 0.0308,
                "big_chances_missed": 0.1305,
                "xgot": 0.0531,
                "ball_carries": 14.5492,
                "total_progression": 63.1174,
                "progressive_carries": 1.1945,
                "shots_off_target": 0.5889,
                "duel_xg_multiplier": 1.0,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.42,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Dani Lorenzo",
                "opponent_faced": "Dani Lorenzo",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0774,
                "projected_assists": 0,
                "assist_probability": 0.1552,
                "finishing_factor": 1.113,
                "creation_factor": 0.8715,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.1552,
                "assist_rate": 0.1311,
                "provider_weight": 0.1469,
                "squad_weight_total": 0.7993,
                "weight_share": 0.1838,
                "creation_factor": 0.8715,
                "appearance_weight": 1.0,
                "weight_rank": 2,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Ángel Pérez",
                    "weight": 0.1707,
                    "already": 0,
                    "effective_weight": 0.1707,
                    "runner_up": "Denis Suárez",
                    "runner_up_effective_weight": 0.1469,
                    "blocked_own_goal": [
                      "Lucas Boyé"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Antonio Blanco": {
          "player_id": 855832,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 8,
          "height": 176,
          "market_value": 9700000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.0757,
            "assist_rate": 0.0728,
            "assists": 0,
            "expected_goals": 0.043,
            "goal_rate": 0.0458,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "rating": 6.8987,
            "minutes": 83,
            "total_pass": 44,
            "accurate_pass": 39,
            "duels_won": 4,
            "total_long_balls": 5,
            "accurate_long_balls": 3,
            "total_own_half_passes": 22,
            "accurate_own_half_passes": 21,
            "total_opp_half_passes": 22,
            "accurate_opp_half_passes": 18,
            "crosses_total": 1,
            "crosses_accurate": 0,
            "touches": 58,
            "possession_lost": 8.7768,
            "dispossessed": 1.0644,
            "duels_lost": 5,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 1,
            "tackles_won": 1,
            "tackles": 2,
            "clearances": 1,
            "total_contest": 1,
            "won_contest": 1,
            "challenges_lost": 1,
            "fouls": 2,
            "fouls_drawn": 1,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0153,
            "ball_carries": 14,
            "total_progression": 25,
            "progressive_carries": 0,
            "shots_off_target": 0,
            "duel_xg_multiplier": 1.0623,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.8,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.462,
            "pressing_faced": "LOW",
            "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
            "numerical_situation": "1v1",
            "opponent_defenders": "Dani Lorenzo",
            "opponent_faced": "Dani Lorenzo",
            "antagonist_source": "attacking_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.0421,
            "projected_assists": 0,
            "assist_probability": 0.0729,
            "finishing_factor": 1.0279,
            "creation_factor": 1.0166,
            "fifa_overall": 78.0
          },
          "latest_10_games": [
            {
              "match_id": 16421069,
              "match_date": "2026-10-18",
              "home_team": "Celta Vigo",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 88,
                "rating": 7.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.4284,
                "total_shots": 0,
                "total_pass": 68,
                "accurate_pass": 62,
                "key_pass": 3,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 1,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 8
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421056,
              "match_date": "2026-10-10",
              "home_team": "Deportivo Alavés",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 64,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0103,
                "total_shots": 0,
                "total_pass": 39,
                "accurate_pass": 36,
                "clearances": 1,
                "duels_won": 3,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416337,
              "match_date": "2026-09-19",
              "home_team": "Athletic Club",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 15,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0022,
                "total_shots": 0,
                "total_pass": 10,
                "accurate_pass": 7,
                "clearances": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416334,
              "match_date": "2026-09-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Valencia",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Valencia",
              "stats": {
                "minutes": 85,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0093,
                "total_shots": 0,
                "total_pass": 37,
                "accurate_pass": 31,
                "tackles": 3,
                "tackles_won": 1,
                "duels_won": 4,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416328,
              "match_date": "2026-09-12",
              "home_team": "Real Racing Club",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 67,
                "rating": 6.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0154,
                "expected_assists": 0.0078,
                "total_shots": 1,
                "total_pass": 32,
                "accurate_pass": 25,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 5,
                "clearances": 1,
                "duels_won": 3,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416318,
              "match_date": "2026-09-06",
              "home_team": "Deportivo Alavés",
              "away_team": "Osasuna",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 90,
                "rating": 7.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0841,
                "expected_assists": 0.0948,
                "total_shots": 2,
                "shots_off_target": 2,
                "total_pass": 58,
                "accurate_pass": 54,
                "tackles": 2,
                "tackles_won": 1,
                "duels_won": 3,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416290,
              "match_date": "2026-08-28",
              "home_team": "Deportivo Alavés",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 90,
                "rating": 7.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0305,
                "expected_assists": 0.089,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 26,
                "accurate_pass": 21,
                "key_pass": 1,
                "tackles": 5,
                "tackles_won": 2,
                "interceptions": 4,
                "clearances": 3,
                "duels_won": 5,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416292,
              "match_date": "2026-08-20",
              "home_team": "Rayo Vallecano",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0154,
                "total_shots": 0,
                "total_pass": 49,
                "accurate_pass": 41,
                "tackles": 3,
                "tackles_won": 1,
                "interceptions": 3,
                "clearances": 2,
                "duels_won": 4,
                "ball_recovery": 8
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421047,
              "match_date": "2026-08-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Getafe",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Getafe",
              "stats": {
                "minutes": 89,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0741,
                "expected_assists": 0.0159,
                "total_shots": 3,
                "shots_off_target": 3,
                "total_pass": 42,
                "accurate_pass": 39,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 1,
                "aerial_won": 2,
                "duels_won": 4,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083706,
              "match_date": "2026-05-23",
              "home_team": "Deportivo Alavés",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.2105,
                "expected_assists": 0.0185,
                "total_shots": 2,
                "shots_on_target": 1,
                "total_pass": 41,
                "accurate_pass": 37,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 2382,
            "combined_rank_score": 863.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 481.0,
            "sofascore_rating": 6.8722,
            "sofascore_appearances": 36.0,
            "fifa_rank": 1245.0,
            "fifa_overall": 78.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 3,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.8987,
            "source_file": "data/player_rankings.csv",
            "player_name": "Antonio Blanco",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Douglas Luiz",
                  "ranking": 2377
                },
                {
                  "player_name": "Bayron Oyarzo",
                  "ranking": 2378
                },
                {
                  "player_name": "Ignacio Mesías",
                  "ranking": 2379
                },
                {
                  "player_name": "Virgiliu Postolachi",
                  "ranking": 2380
                },
                {
                  "player_name": "Jung Se-jun",
                  "ranking": 2381
                }
              ],
              "lower": [
                {
                  "player_name": "Gorka Guruzeta",
                  "ranking": 2383
                },
                {
                  "player_name": "Alfon González",
                  "ranking": 2384
                },
                {
                  "player_name": "Rashid Abubakar",
                  "ranking": 2385
                },
                {
                  "player_name": "Fredrik André Bjørkan",
                  "ranking": 2386
                },
                {
                  "player_name": "Carlos Escobar",
                  "ranking": 2387
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.78,
          "history_matches": 45,
          "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",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "rating",
              "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",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 45,
            "data_confidence": 0.78,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0004,
            "fbref_prior_metrics": {
              "squad": "Alavés",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "minutes": 269.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 1.34,
              "shots_on_target_pct": 0.0,
              "prior_reliability": 0.2
            },
            "rationale": "XGBoost regressor (M_service) evaluated 45 historical appearances across 8 target models; FBref 2026-2027 prior blended (La Liga, Alavés, rel: 0.20, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 0.798,
                "expected_assists": 0.0707,
                "assists": 0.0738,
                "assist_rate": 0.0738,
                "expected_goals": 0.0407,
                "goals": 0.0437,
                "goal_rate": 0.0437,
                "shots_on_target": 0.1741,
                "total_shots": 0.5876,
                "rating": 6.8987,
                "minutes": 83.31,
                "total_pass": 44.1299,
                "accurate_pass": 38.6528,
                "duels_won": 3.912,
                "total_long_balls": 4.8834,
                "accurate_long_balls": 3.3114,
                "total_own_half_passes": 21.8767,
                "accurate_own_half_passes": 20.5842,
                "total_opp_half_passes": 22.2531,
                "accurate_opp_half_passes": 18.0685,
                "crosses_total": 1.1379,
                "crosses_accurate": 0.4555,
                "touches": 57.7537,
                "possession_lost": 8.7733,
                "dispossessed": 1.064,
                "duels_lost": 4.909,
                "aerial_won": 0.3889,
                "aerial_lost": 0.4932,
                "interceptions": 1.3654,
                "tackles_won": 1.0397,
                "tackles": 2.064,
                "clearances": 1.0055,
                "total_contest": 1.0165,
                "won_contest": 0.6487,
                "challenges_lost": 1.2321,
                "fouls": 1.7525,
                "fouls_drawn": 0.8149,
                "blocks": 0.1586,
                "big_chances_created": 0.331,
                "big_chances_missed": 0.0,
                "xgot": 0.0145,
                "ball_carries": 13.6035,
                "total_progression": 24.5002,
                "progressive_carries": 0.2559,
                "shots_off_target": 0.4135
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 7,
                  "trained_at": "2026-10-23T10:05:23.571433+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 903,
                    "rows": 24475
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Celta Vigo",
                    "minutes": 88.0,
                    "is_starting": true,
                    "weight": 0.1501,
                    "rating": 7.6
                  },
                  {
                    "match_date": "2026-10-10",
                    "opponent": "Atlético Madrid",
                    "minutes": 64.0,
                    "is_starting": true,
                    "weight": 0.1276,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Athletic Club",
                    "minutes": 15.0,
                    "is_starting": false,
                    "weight": 0.1084,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-15",
                    "opponent": "Valencia",
                    "minutes": 85.0,
                    "is_starting": true,
                    "weight": 0.0922,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Real Racing Club",
                    "minutes": 67.0,
                    "is_starting": true,
                    "weight": 0.0784,
                    "rating": 6.0
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Osasuna",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0666,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Villarreal",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0566,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-08-20",
                    "opponent": "Rayo Vallecano",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0481,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-08-15",
                    "opponent": "Getafe",
                    "minutes": 89.0,
                    "is_starting": true,
                    "weight": 0.0409,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-05-23",
                    "opponent": "Rayo Vallecano",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0348,
                    "rating": 6.8
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 1.0,
                  "creative_index": 0.353,
                  "totalShots": 0.6459,
                  "expectedGoals": 0.0258,
                  "expectedAssists": 0.0964,
                  "onTargetScoringAttempt": 0.0736
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.7979509830474854,
                    "model_output": 0.798,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1647
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1377
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0663
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0524
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0316
                      }
                    ],
                    "decomposition": {
                      "base": 0.8945,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1201
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0786
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0685
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": -0.049
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0373
                        }
                      ],
                      "others": -0.1202,
                      "total": 0.798,
                      "log_link": true,
                      "margin_base": -0.111507,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.126023
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.080684
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.070673
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": -0.049989
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.03987
                        }
                      ],
                      "others_margin": -0.140355
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.07073096185922623,
                    "model_output": 0.0707,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1545
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1048
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.1021
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0476
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0472
                      }
                    ],
                    "decomposition": {
                      "base": 0.0859,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0124
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0115
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0033
                        },
                        {
                          "name": "aerialWon",
                          "contribution": 0.0031
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.0029
                        }
                      ],
                      "others": -0.013,
                      "total": 0.0707,
                      "log_link": true,
                      "margin_base": -2.454719,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.134563
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.124684
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.039203
                        },
                        {
                          "name": "aerialWon",
                          "margin": 0.037062
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.033892
                        }
                      ],
                      "others_margin": -0.167999
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.07376250624656677,
                    "model_output": 0.0738,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.0619
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0395
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0343
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0335
                      }
                    ],
                    "decomposition": {
                      "base": 0.0874,
                      "items": [
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": -0.0073
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0073
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0066
                        },
                        {
                          "name": "totalCross",
                          "contribution": 0.0047
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0024
                        }
                      ],
                      "others": -0.0141,
                      "total": 0.0738,
                      "log_link": true,
                      "margin_base": -2.437263,
                      "item_margins": [
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": -0.087409
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.086994
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.079032
                        },
                        {
                          "name": "totalCross",
                          "margin": 0.056107
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.028052
                        }
                      ],
                      "others_margin": -0.174352
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.04069330915808678,
                    "model_output": 0.0407,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedGoals",
                        "importance": 0.134
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.074
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0705
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.039
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0273
                      }
                    ],
                    "decomposition": {
                      "base": 0.094,
                      "items": [
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0323
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0088
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0063
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0063
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.003
                        }
                      ],
                      "others": -0.0092,
                      "total": 0.0407,
                      "log_link": true,
                      "margin_base": -2.364919,
                      "item_margins": [
                        {
                          "name": "expectedGoals",
                          "margin": -0.421014
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.154299
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.126537
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.126259
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.057483
                        }
                      ],
                      "others_margin": -0.203696
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.043661292642354965,
                    "model_output": 0.0437,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0974
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0527
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0513
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0365
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.03
                      }
                    ],
                    "decomposition": {
                      "base": 0.0993,
                      "items": [
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0233
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0127
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0078
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0064
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0053
                        }
                      ],
                      "others": -0.0107,
                      "total": 0.0437,
                      "log_link": true,
                      "margin_base": -2.309444,
                      "item_margins": [
                        {
                          "name": "expectedGoals",
                          "margin": -0.266823
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.182676
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.130797
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.121871
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.1017
                        }
                      ],
                      "others_margin": -0.221381
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.17406384646892548,
                    "model_output": 0.1741,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1106
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0885
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0762
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0292
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0279
                      }
                    ],
                    "decomposition": {
                      "base": 0.326,
                      "items": [
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0584
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0394
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0297
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0272
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0269
                        }
                      ],
                      "others": -0.0247,
                      "total": 0.1741,
                      "log_link": true,
                      "margin_base": -1.120773,
                      "item_margins": [
                        {
                          "name": "expectedGoals",
                          "margin": -0.197246
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.159087
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.139211
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.128237
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.126636
                        }
                      ],
                      "others_margin": -0.133616
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.5875895023345947,
                    "model_output": 0.5876,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1261
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1167
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0633
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0419
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.9969,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.2195
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1121
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.053
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0473
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0389
                        }
                      ],
                      "others": -0.1627,
                      "total": 0.5876,
                      "log_link": false,
                      "margin_base": 0.996896,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.219458
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.112135
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.053
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.047301
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.038885
                        }
                      ],
                      "others_margin": -0.162796
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.898660659790039,
                    "model_output": 6.8987,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "rating",
                        "importance": 0.0947
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0836
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0491
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0438
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.036
                      }
                    ],
                    "decomposition": {
                      "base": 6.8561,
                      "items": [
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0683
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0328
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0277
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0209
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0115
                        }
                      ],
                      "others": 0.0016,
                      "total": 6.8987,
                      "log_link": false,
                      "margin_base": 6.856052,
                      "item_margins": [
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.068336
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.032833
                        },
                        {
                          "name": "rating",
                          "margin": -0.027712
                        },
                        {
                          "name": "totalPass",
                          "margin": -0.020942
                        },
                        {
                          "name": "accuratePass",
                          "margin": -0.011487
                        }
                      ],
                      "others_margin": 0.00158
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 45,
                  "role_matches": 44,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "role_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0004, quality 0.519)",
              "stats": {
                "key_pass": 0.7983,
                "expected_assists": 0.0708,
                "assists": 0.0738,
                "assist_rate": 0.0738,
                "expected_goals": 0.0407,
                "goals": 0.0437,
                "goal_rate": 0.0437,
                "shots_on_target": 0.1741,
                "total_shots": 0.5878,
                "rating": 6.8987,
                "minutes": 83.31,
                "total_pass": 44.1476,
                "accurate_pass": 38.6683,
                "duels_won": 3.9136,
                "total_long_balls": 4.8854,
                "accurate_long_balls": 3.3127,
                "total_own_half_passes": 21.8855,
                "accurate_own_half_passes": 20.5924,
                "total_opp_half_passes": 22.262,
                "accurate_opp_half_passes": 18.0757,
                "crosses_total": 1.1384,
                "crosses_accurate": 0.4557,
                "touches": 57.7768,
                "possession_lost": 8.7768,
                "dispossessed": 1.0644,
                "duels_lost": 4.911,
                "aerial_won": 0.3891,
                "aerial_lost": 0.4934,
                "interceptions": 1.3659,
                "tackles_won": 1.0401,
                "tackles": 2.0648,
                "clearances": 1.0059,
                "total_contest": 1.0169,
                "won_contest": 0.649,
                "challenges_lost": 1.2326,
                "fouls": 1.7532,
                "fouls_drawn": 0.8152,
                "blocks": 0.1587,
                "big_chances_created": 0.3311,
                "big_chances_missed": 0.0,
                "xgot": 0.0145,
                "ball_carries": 13.6089,
                "total_progression": 24.51,
                "progressive_carries": 0.256,
                "shots_off_target": 0.4137
              },
              "params": {
                "market_value_eur": 9700000,
                "quality_factor": 0.5189,
                "boost_factor": 1.0004,
                "reference_quality": 0.505,
                "history_matches": 45,
                "history_shrink": 0.1,
                "market_value_known": true
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0130)",
              "stats": {
                "key_pass": 0.7983,
                "expected_assists": 0.0708,
                "assists": 0.0728,
                "assist_rate": 0.0728,
                "expected_goals": 0.0407,
                "goals": 0.0431,
                "goal_rate": 0.0431,
                "shots_on_target": 0.1718,
                "total_shots": 0.5963,
                "rating": 6.8987,
                "minutes": 83.31,
                "total_pass": 44.1476,
                "accurate_pass": 38.6683,
                "duels_won": 3.9136,
                "total_long_balls": 4.8854,
                "accurate_long_balls": 3.3127,
                "total_own_half_passes": 21.8855,
                "accurate_own_half_passes": 20.5924,
                "total_opp_half_passes": 22.262,
                "accurate_opp_half_passes": 18.0757,
                "crosses_total": 1.1437,
                "crosses_accurate": 0.4557,
                "touches": 57.7768,
                "possession_lost": 8.7768,
                "dispossessed": 1.0644,
                "duels_lost": 4.911,
                "aerial_won": 0.3891,
                "aerial_lost": 0.4934,
                "interceptions": 1.3802,
                "tackles_won": 1.0426,
                "tackles": 2.0648,
                "clearances": 1.0059,
                "total_contest": 1.0169,
                "won_contest": 0.649,
                "challenges_lost": 1.2326,
                "fouls": 1.7665,
                "fouls_drawn": 0.8126,
                "blocks": 0.1587,
                "big_chances_created": 0.3311,
                "big_chances_missed": 0.0,
                "xgot": 0.0145,
                "ball_carries": 13.6089,
                "total_progression": 24.51,
                "progressive_carries": 0.256,
                "shots_off_target": 0.4137
              },
              "params": {
                "blend_weight": 0.013,
                "history_matches": 45,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.9257,
                "prior_reliability": 0.2,
                "competition": "La Liga",
                "squad": "Alavés"
              },
              "changes": [
                {
                  "stat": "interceptionWon",
                  "before": 1.3659,
                  "after": 1.3802
                },
                {
                  "stat": "fouls",
                  "before": 1.7532,
                  "after": 1.7665
                },
                {
                  "stat": "totalShots",
                  "before": 0.5878,
                  "after": 0.5963
                },
                {
                  "stat": "totalCross",
                  "before": 1.1384,
                  "after": 1.1437
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0.7983,
                "expected_assists": 0.0708,
                "assists": 0.0728,
                "assist_rate": 0.0728,
                "expected_goals": 0.0407,
                "goals": 0.0431,
                "goal_rate": 0.0431,
                "shots_on_target": 0.1718,
                "total_shots": 0.5963,
                "rating": 6.8987,
                "minutes": 83.31,
                "total_pass": 44.1476,
                "accurate_pass": 38.6683,
                "duels_won": 3.9136,
                "total_long_balls": 4.8854,
                "accurate_long_balls": 3.3127,
                "total_own_half_passes": 21.8855,
                "accurate_own_half_passes": 20.5924,
                "total_opp_half_passes": 22.262,
                "accurate_opp_half_passes": 18.0757,
                "crosses_total": 1.1437,
                "crosses_accurate": 0.4557,
                "touches": 57.7768,
                "possession_lost": 8.7768,
                "dispossessed": 1.0644,
                "duels_lost": 4.911,
                "aerial_won": 0.3891,
                "aerial_lost": 0.4934,
                "interceptions": 1.3802,
                "tackles_won": 1.0426,
                "tackles": 2.0648,
                "clearances": 1.0059,
                "total_contest": 1.0169,
                "won_contest": 0.649,
                "challenges_lost": 1.2326,
                "fouls": 1.7665,
                "fouls_drawn": 0.8126,
                "blocks": 0.1587,
                "big_chances_created": 0.3311,
                "big_chances_missed": 0.0,
                "xgot": 0.0145,
                "ball_carries": 13.6089,
                "total_progression": 24.51,
                "progressive_carries": 0.256,
                "shots_off_target": 0.4137
              },
              "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": 0.7983,
                "expected_assists": 0.0708,
                "assists": 0.0728,
                "assist_rate": 0.0728,
                "expected_goals": 0.0432,
                "goals": 0.0458,
                "goal_rate": 0.0458,
                "shots_on_target": 0.1825,
                "total_shots": 0.6334,
                "rating": 6.8987,
                "minutes": 83.31,
                "total_pass": 44.1476,
                "accurate_pass": 38.6683,
                "duels_won": 3.9136,
                "total_long_balls": 4.8854,
                "accurate_long_balls": 3.3127,
                "total_own_half_passes": 21.8855,
                "accurate_own_half_passes": 20.5924,
                "total_opp_half_passes": 22.262,
                "accurate_opp_half_passes": 18.0757,
                "crosses_total": 1.1437,
                "crosses_accurate": 0.4557,
                "touches": 57.7768,
                "possession_lost": 8.7768,
                "dispossessed": 1.0644,
                "duels_lost": 4.911,
                "aerial_won": 0.9,
                "aerial_lost": 0.4934,
                "interceptions": 1.3802,
                "tackles_won": 1.0426,
                "tackles": 2.0648,
                "clearances": 1.0059,
                "total_contest": 1.0169,
                "won_contest": 0.649,
                "challenges_lost": 1.2326,
                "fouls": 1.7665,
                "fouls_drawn": 0.8126,
                "blocks": 0.1587,
                "big_chances_created": 0.3311,
                "big_chances_missed": 0.0,
                "xgot": 0.0154,
                "ball_carries": 13.6089,
                "total_progression": 24.51,
                "progressive_carries": 0.256,
                "shots_off_target": 0.4395,
                "duel_xg_multiplier": 1.0623,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.462,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Dani Lorenzo",
                "opponent_faced": "Dani Lorenzo",
                "antagonist_source": "attacking_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Dani Lorenzo",
                  "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                  "duel_win_rate": 0.462,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v1",
                  "xg_multiplier": 1.0623,
                  "skill_edge": 0.0424,
                  "height_edge": 0.0,
                  "attacker_skill": 0.5316,
                  "defender_skill": 0.4374,
                  "attacker_role": "CM",
                  "attacker_mv_price_index": 0.9,
                  "defender_adjusted_parts": [
                    {
                      "player": "Dani Lorenzo",
                      "market_value": 2300000,
                      "role": "CM",
                      "price_index": 0.9,
                      "adjusted_quality": 0.4374
                    }
                  ],
                  "xg_override": 0.0432
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.3891,
                  "after": 0.9
                },
                {
                  "stat": "totalShots",
                  "before": 0.5963,
                  "after": 0.6334
                },
                {
                  "stat": "shotOffTarget",
                  "before": 0.4137,
                  "after": 0.4395
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.1718,
                  "after": 0.1825
                }
              ]
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "key_pass": 0.7983,
                "expected_assists": 0.0708,
                "assist_rate": 0.0728,
                "assists": 0,
                "expected_goals": 0.0432,
                "goal_rate": 0.0458,
                "goals": 0,
                "shots_on_target": 0.1825,
                "total_shots": 0.6334,
                "rating": 6.8987,
                "minutes": 83.31,
                "total_pass": 44.1476,
                "accurate_pass": 38.6683,
                "duels_won": 3.9136,
                "total_long_balls": 4.8854,
                "accurate_long_balls": 3.3127,
                "total_own_half_passes": 21.8855,
                "accurate_own_half_passes": 20.5924,
                "total_opp_half_passes": 22.262,
                "accurate_opp_half_passes": 18.0757,
                "crosses_total": 1.1437,
                "crosses_accurate": 0.4557,
                "touches": 57.7768,
                "possession_lost": 8.7768,
                "dispossessed": 1.0644,
                "duels_lost": 4.911,
                "aerial_won": 0.9,
                "aerial_lost": 0.4934,
                "interceptions": 1.3802,
                "tackles_won": 1.0426,
                "tackles": 2.0648,
                "clearances": 1.0059,
                "total_contest": 1.0169,
                "won_contest": 0.649,
                "challenges_lost": 1.2326,
                "fouls": 1.7665,
                "fouls_drawn": 0.8126,
                "blocks": 0.1587,
                "big_chances_created": 0.3311,
                "big_chances_missed": 0.0,
                "xgot": 0.0154,
                "ball_carries": 13.6089,
                "total_progression": 24.51,
                "progressive_carries": 0.256,
                "shots_off_target": 0.4395,
                "duel_xg_multiplier": 1.0623,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.462,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Dani Lorenzo",
                "opponent_faced": "Dani Lorenzo",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "scoreline_reset": true,
                "team_goals": 1
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.26 (squad xG sum 1.2639, xG scale 0.9946, xA scale 1.0687, team xA 0.82 = 0.65 x lambda)",
              "stats": {
                "key_pass": 0.7983,
                "expected_assists": 0.0757,
                "assist_rate": 0.0728,
                "assists": 0,
                "expected_goals": 0.043,
                "goal_rate": 0.0458,
                "goals": 0,
                "shots_on_target": 0.1825,
                "total_shots": 0.6334,
                "rating": 6.8987,
                "minutes": 83.31,
                "total_pass": 44.1476,
                "accurate_pass": 38.6683,
                "duels_won": 3.9136,
                "total_long_balls": 4.8854,
                "accurate_long_balls": 3.3127,
                "total_own_half_passes": 21.8855,
                "accurate_own_half_passes": 20.5924,
                "total_opp_half_passes": 22.262,
                "accurate_opp_half_passes": 18.0757,
                "crosses_total": 1.1437,
                "crosses_accurate": 0.4557,
                "touches": 57.7768,
                "possession_lost": 8.7768,
                "dispossessed": 1.0644,
                "duels_lost": 4.911,
                "aerial_won": 0.9,
                "aerial_lost": 0.4934,
                "interceptions": 1.3802,
                "tackles_won": 1.0426,
                "tackles": 2.0648,
                "clearances": 1.0059,
                "total_contest": 1.0169,
                "won_contest": 0.649,
                "challenges_lost": 1.2326,
                "fouls": 1.7665,
                "fouls_drawn": 0.8126,
                "blocks": 0.1587,
                "big_chances_created": 0.3311,
                "big_chances_missed": 0.0,
                "xgot": 0.0153,
                "ball_carries": 13.6089,
                "total_progression": 24.51,
                "progressive_carries": 0.256,
                "shots_off_target": 0.4395,
                "duel_xg_multiplier": 1.0623,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.462,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Dani Lorenzo",
                "opponent_faced": "Dani Lorenzo",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0279,
                "creation_factor": 1.0166
              },
              "params": {
                "team_lambda": 1.257,
                "squad_xg_sum": 1.2639,
                "squad_xa_sum": 0.7645,
                "team_expected_assists": 0.817,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.9946,
                "xa_scale": 1.0687,
                "opponent_lambda": 0.869,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              }
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 78.0)",
              "stats": {
                "key_pass": 0.7983,
                "expected_assists": 0.0757,
                "assist_rate": 0.0728,
                "assists": 0,
                "expected_goals": 0.043,
                "goal_rate": 0.0458,
                "goals": 0,
                "shots_on_target": 0.1825,
                "total_shots": 0.6334,
                "rating": 6.8987,
                "minutes": 83.31,
                "total_pass": 44.1476,
                "accurate_pass": 38.6683,
                "duels_won": 3.9136,
                "total_long_balls": 4.8854,
                "accurate_long_balls": 3.3127,
                "total_own_half_passes": 21.8855,
                "accurate_own_half_passes": 20.5924,
                "total_opp_half_passes": 22.262,
                "accurate_opp_half_passes": 18.0757,
                "crosses_total": 1.1437,
                "crosses_accurate": 0.4557,
                "touches": 57.7768,
                "possession_lost": 8.7768,
                "dispossessed": 1.0644,
                "duels_lost": 4.911,
                "aerial_won": 0.9,
                "aerial_lost": 0.4934,
                "interceptions": 1.3802,
                "tackles_won": 1.0426,
                "tackles": 2.0648,
                "clearances": 1.0059,
                "total_contest": 1.0169,
                "won_contest": 0.649,
                "challenges_lost": 1.2326,
                "fouls": 1.7665,
                "fouls_drawn": 0.8126,
                "blocks": 0.1587,
                "big_chances_created": 0.3311,
                "big_chances_missed": 0.0,
                "xgot": 0.0153,
                "ball_carries": 13.6089,
                "total_progression": 24.51,
                "progressive_carries": 0.256,
                "shots_off_target": 0.4395,
                "duel_xg_multiplier": 1.0623,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.462,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Dani Lorenzo",
                "opponent_faced": "Dani Lorenzo",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0279,
                "creation_factor": 1.0166,
                "fifa_overall": 78.0
              },
              "params": {
                "match_squad_rank": 3,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 2382,
                "fifa_rank": 1245.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 78.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "key_pass": 0.7983,
                "expected_assists": 0.0757,
                "assist_rate": 0.0728,
                "assists": 0,
                "expected_goals": 0.043,
                "goal_rate": 0.0458,
                "goals": 0,
                "shots_on_target": 0.1825,
                "total_shots": 0.6334,
                "rating": 6.8987,
                "minutes": 83.31,
                "total_pass": 44.1476,
                "accurate_pass": 38.6683,
                "duels_won": 3.9136,
                "total_long_balls": 4.8854,
                "accurate_long_balls": 3.3127,
                "total_own_half_passes": 21.8855,
                "accurate_own_half_passes": 20.5924,
                "total_opp_half_passes": 22.262,
                "accurate_opp_half_passes": 18.0757,
                "crosses_total": 1.1437,
                "crosses_accurate": 0.4557,
                "touches": 57.7768,
                "possession_lost": 8.7768,
                "dispossessed": 1.0644,
                "duels_lost": 4.911,
                "aerial_won": 0.9,
                "aerial_lost": 0.4934,
                "interceptions": 1.3802,
                "tackles_won": 1.0426,
                "tackles": 2.0648,
                "clearances": 1.0059,
                "total_contest": 1.0169,
                "won_contest": 0.649,
                "challenges_lost": 1.2326,
                "fouls": 1.7665,
                "fouls_drawn": 0.8126,
                "blocks": 0.1587,
                "big_chances_created": 0.3311,
                "big_chances_missed": 0.0,
                "xgot": 0.0153,
                "ball_carries": 13.6089,
                "total_progression": 24.51,
                "progressive_carries": 0.256,
                "shots_off_target": 0.4395,
                "duel_xg_multiplier": 1.0623,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.462,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Dani Lorenzo",
                "opponent_faced": "Dani Lorenzo",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0421,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0279,
                "creation_factor": 1.0166,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0421,
                "goal_rate": 0.0458,
                "scorer_weight": 0.0442,
                "squad_weight_total": 1.3303,
                "weight_share": 0.0332,
                "finishing_factor": 1.0279,
                "appearance_weight": 1.0,
                "weight_rank": 10,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lucas Boyé",
                    "weight": 0.3448,
                    "already": 0,
                    "effective_weight": 0.3448,
                    "runner_up": "Mariano Díaz",
                    "runner_up_effective_weight": 0.2151
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "key_pass": 0.7983,
                "expected_assists": 0.0757,
                "assist_rate": 0.0728,
                "assists": 0,
                "expected_goals": 0.043,
                "goal_rate": 0.0458,
                "goals": 0,
                "shots_on_target": 0.1825,
                "total_shots": 0.6334,
                "rating": 6.8987,
                "minutes": 83.31,
                "total_pass": 44.1476,
                "accurate_pass": 38.6683,
                "duels_won": 3.9136,
                "total_long_balls": 4.8854,
                "accurate_long_balls": 3.3127,
                "total_own_half_passes": 21.8855,
                "accurate_own_half_passes": 20.5924,
                "total_opp_half_passes": 22.262,
                "accurate_opp_half_passes": 18.0757,
                "crosses_total": 1.1437,
                "crosses_accurate": 0.4557,
                "touches": 57.7768,
                "possession_lost": 8.7768,
                "dispossessed": 1.0644,
                "duels_lost": 4.911,
                "aerial_won": 0.9,
                "aerial_lost": 0.4934,
                "interceptions": 1.3802,
                "tackles_won": 1.0426,
                "tackles": 2.0648,
                "clearances": 1.0059,
                "total_contest": 1.0169,
                "won_contest": 0.649,
                "challenges_lost": 1.2326,
                "fouls": 1.7665,
                "fouls_drawn": 0.8126,
                "blocks": 0.1587,
                "big_chances_created": 0.3311,
                "big_chances_missed": 0.0,
                "xgot": 0.0153,
                "ball_carries": 13.6089,
                "total_progression": 24.51,
                "progressive_carries": 0.256,
                "shots_off_target": 0.4395,
                "duel_xg_multiplier": 1.0623,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.462,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Dani Lorenzo",
                "opponent_faced": "Dani Lorenzo",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0421,
                "projected_assists": 0,
                "assist_probability": 0.0729,
                "finishing_factor": 1.0279,
                "creation_factor": 1.0166,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0729,
                "assist_rate": 0.0728,
                "provider_weight": 0.077,
                "squad_weight_total": 0.7993,
                "weight_share": 0.0963,
                "creation_factor": 1.0166,
                "appearance_weight": 1.0,
                "weight_rank": 4,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Ángel Pérez",
                    "weight": 0.1707,
                    "already": 0,
                    "effective_weight": 0.1707,
                    "runner_up": "Denis Suárez",
                    "runner_up_effective_weight": 0.1469,
                    "blocked_own_goal": [
                      "Lucas Boyé"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Pablo Ibáñez": {
          "player_id": 1084381,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 19,
          "height": 179,
          "market_value": 4099999,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.0731,
            "assist_rate": 0.087,
            "assists": 0,
            "expected_goals": 0.0709,
            "goal_rate": 0.0765,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "rating": 6.8534,
            "minutes": 81,
            "total_pass": 29,
            "accurate_pass": 24,
            "duels_won": 6,
            "total_long_balls": 2,
            "accurate_long_balls": 1,
            "total_own_half_passes": 12,
            "accurate_own_half_passes": 10,
            "total_opp_half_passes": 18,
            "accurate_opp_half_passes": 14,
            "crosses_total": 1,
            "crosses_accurate": 0,
            "touches": 47,
            "possession_lost": 10.1903,
            "dispossessed": 1.3398,
            "duels_lost": 5,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 2,
            "tackles_won": 1,
            "tackles": 2,
            "clearances": 1,
            "total_contest": 2,
            "won_contest": 1,
            "challenges_lost": 1,
            "fouls": 2,
            "fouls_drawn": 2,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0959,
            "ball_carries": 17,
            "total_progression": 73,
            "progressive_carries": 2,
            "shots_off_target": 1,
            "opponent_faced": "Dani Lorenzo, Carlos Dotor",
            "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
            "antagonist_source": "defensive_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.0684,
            "projected_assists": 0,
            "assist_probability": 0.0705,
            "finishing_factor": 1.0429,
            "creation_factor": 1.1571,
            "fifa_overall": 73.0
          },
          "latest_10_games": [
            {
              "match_id": 16421069,
              "match_date": "2026-10-18",
              "home_team": "Celta Vigo",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 90,
                "rating": 7.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0644,
                "expected_assists": 0.177,
                "total_shots": 2,
                "shots_off_target": 1,
                "total_pass": 40,
                "accurate_pass": 35,
                "key_pass": 2,
                "interceptions": 4,
                "aerial_won": 2,
                "duels_won": 8,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421056,
              "match_date": "2026-10-10",
              "home_team": "Deportivo Alavés",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0104,
                "total_shots": 0,
                "total_pass": 21,
                "accurate_pass": 19,
                "tackles": 6,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 1,
                "duels_won": 9,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416337,
              "match_date": "2026-09-19",
              "home_team": "Athletic Club",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 85,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0079,
                "total_shots": 0,
                "total_pass": 27,
                "accurate_pass": 23,
                "key_pass": 1,
                "tackles": 1,
                "interceptions": 2,
                "clearances": 4,
                "aerial_won": 1,
                "duels_won": 6,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416334,
              "match_date": "2026-09-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Valencia",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Valencia",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.3934,
                "expected_assists": 0.0358,
                "total_shots": 3,
                "shots_off_target": 3,
                "total_pass": 34,
                "accurate_pass": 24,
                "key_pass": 1,
                "tackles": 5,
                "tackles_won": 3,
                "interceptions": 1,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 8,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416328,
              "match_date": "2026-09-12",
              "home_team": "Real Racing Club",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 45,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0012,
                "total_shots": 0,
                "total_pass": 12,
                "accurate_pass": 7,
                "clearances": 1,
                "duels_won": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416318,
              "match_date": "2026-09-06",
              "home_team": "Deportivo Alavés",
              "away_team": "Osasuna",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 90,
                "rating": 7.6,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.2584,
                "expected_assists": 0.0132,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 40,
                "accurate_pass": 35,
                "tackles": 1,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 6,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416290,
              "match_date": "2026-08-28",
              "home_team": "Deportivo Alavés",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0312,
                "expected_assists": 0.0078,
                "total_shots": 2,
                "shots_off_target": 2,
                "total_pass": 21,
                "accurate_pass": 17,
                "tackles": 1,
                "interceptions": 2,
                "clearances": 2,
                "duels_won": 1,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416292,
              "match_date": "2026-08-20",
              "home_team": "Rayo Vallecano",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 90,
                "rating": 7.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.066,
                "expected_assists": 0.0519,
                "total_shots": 3,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 40,
                "accurate_pass": 32,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 1,
                "clearances": 1,
                "aerial_won": 2,
                "duels_won": 9,
                "ball_recovery": 9
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421047,
              "match_date": "2026-08-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Getafe",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Getafe",
              "stats": {
                "minutes": 90,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0061,
                "total_shots": 0,
                "total_pass": 30,
                "accurate_pass": 23,
                "interceptions": 2,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083706,
              "match_date": "2026-05-23",
              "home_team": "Deportivo Alavés",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 74,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.2479,
                "expected_assists": 0.0201,
                "total_shots": 2,
                "shots_on_target": 1,
                "total_pass": 19,
                "accurate_pass": 14,
                "tackles": 3,
                "tackles_won": 3,
                "duels_won": 5,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 3981,
            "combined_rank_score": 1953.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 391.0,
            "sofascore_rating": 6.95,
            "sofascore_appearances": 2.0,
            "fifa_rank": 3516.0,
            "fifa_overall": 73.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 5,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.8534,
            "source_file": "data/player_rankings.csv",
            "player_name": "Pablo Ibáñez",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Patrick Sequeira",
                  "ranking": 3976
                },
                {
                  "player_name": "Javi Rueda",
                  "ranking": 3977
                },
                {
                  "player_name": "Freddie Potts",
                  "ranking": 3978
                },
                {
                  "player_name": "Chupe",
                  "ranking": 3979
                },
                {
                  "player_name": "Bigas",
                  "ranking": 3980
                }
              ],
              "lower": [
                {
                  "player_name": "Jonny",
                  "ranking": 3982
                },
                {
                  "player_name": "Mohamed Belloumi",
                  "ranking": 3983
                },
                {
                  "player_name": "Jack Hendry",
                  "ranking": 3984
                },
                {
                  "player_name": "Areso",
                  "ranking": 3985
                },
                {
                  "player_name": "Gorosabel",
                  "ranking": 3986
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.78,
          "history_matches": 46,
          "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",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "rating",
              "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",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 46,
            "data_confidence": 0.78,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.9984,
            "fbref_prior_metrics": {
              "squad": "Alavés",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "minutes": 270.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 1.67,
              "shots_on_target_pct": 20.0,
              "prior_reliability": 0.2
            },
            "rationale": "XGBoost regressor (M_service) evaluated 46 historical appearances across 8 target models; FBref 2026-2027 prior blended (La Liga, Alavés, rel: 0.20, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 0.8363,
                "expected_assists": 0.0685,
                "assists": 0.0883,
                "assist_rate": 0.0883,
                "expected_goals": 0.0714,
                "goals": 0.0776,
                "goal_rate": 0.0776,
                "shots_on_target": 0.2849,
                "total_shots": 0.9653,
                "rating": 6.8534,
                "minutes": 81.49,
                "total_pass": 29.1706,
                "accurate_pass": 24.1842,
                "duels_won": 6.1038,
                "total_long_balls": 2.05,
                "accurate_long_balls": 0.7059,
                "total_own_half_passes": 11.5866,
                "accurate_own_half_passes": 10.2044,
                "total_opp_half_passes": 17.5841,
                "accurate_opp_half_passes": 13.9799,
                "crosses_total": 1.3088,
                "crosses_accurate": 0.3711,
                "touches": 47.4239,
                "possession_lost": 10.2066,
                "dispossessed": 1.3419,
                "duels_lost": 5.1622,
                "aerial_won": 0.9294,
                "aerial_lost": 0.4763,
                "interceptions": 1.506,
                "tackles_won": 0.7786,
                "tackles": 1.926,
                "clearances": 1.1903,
                "total_contest": 1.7308,
                "won_contest": 1.1523,
                "challenges_lost": 1.0066,
                "fouls": 1.7598,
                "fouls_drawn": 2.2464,
                "blocks": 0.3926,
                "big_chances_created": 0.0056,
                "big_chances_missed": 0.1174,
                "xgot": 0.0966,
                "ball_carries": 16.7788,
                "total_progression": 73.0336,
                "progressive_carries": 1.753,
                "shots_off_target": 0.6804
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 7,
                  "trained_at": "2026-10-23T10:05:23.571433+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 903,
                    "rows": 24475
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Celta Vigo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1501,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-10-10",
                    "opponent": "Atlético Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1276,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Athletic Club",
                    "minutes": 85.0,
                    "is_starting": true,
                    "weight": 0.1084,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-15",
                    "opponent": "Valencia",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0922,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Real Racing Club",
                    "minutes": 45.0,
                    "is_starting": true,
                    "weight": 0.0783,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Osasuna",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0666,
                    "rating": 7.6
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Villarreal",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0566,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-08-20",
                    "opponent": "Rayo Vallecano",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0481,
                    "rating": 7.6
                  },
                  {
                    "match_date": "2026-08-15",
                    "opponent": "Getafe",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0409,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-05-23",
                    "opponent": "Rayo Vallecano",
                    "minutes": 74.0,
                    "is_starting": true,
                    "weight": 0.0348,
                    "rating": 7.1
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 1.0,
                  "creative_index": 0.2604,
                  "totalShots": 1.114,
                  "expectedGoals": 0.0866,
                  "expectedAssists": 0.0411,
                  "onTargetScoringAttempt": 0.1827
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.8363475799560547,
                    "model_output": 0.8363,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1647
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1377
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0663
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0524
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0316
                      }
                    ],
                    "decomposition": {
                      "base": 0.8945,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1186
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0744
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0611
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": -0.0386
                        },
                        {
                          "name": "totalCross",
                          "contribution": 0.0364
                        }
                      ],
                      "others": -0.0391,
                      "total": 0.8363,
                      "log_link": true,
                      "margin_base": -0.111507,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.124552
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.076233
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.067356
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": -0.045037
                        },
                        {
                          "name": "totalCross",
                          "margin": 0.042456
                        }
                      ],
                      "others_margin": -0.045586
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.06854655593633652,
                    "model_output": 0.0685,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1545
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1048
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.1021
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0476
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0472
                      }
                    ],
                    "decomposition": {
                      "base": 0.0859,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0126
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0095
                        },
                        {
                          "name": "totalCross",
                          "contribution": 0.0056
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0048
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0036
                        }
                      ],
                      "others": -0.0187,
                      "total": 0.0685,
                      "log_link": true,
                      "margin_base": -2.454719,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": -0.158583
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.121877
                        },
                        {
                          "name": "totalCross",
                          "margin": 0.06546
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.056228
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.042325
                        }
                      ],
                      "others_margin": -0.240375
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.08825940638780594,
                    "model_output": 0.0883,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.0619
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0395
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0343
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0335
                      }
                    ],
                    "decomposition": {
                      "base": 0.0874,
                      "items": [
                        {
                          "name": "creative_index",
                          "contribution": -0.0084
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.007
                        },
                        {
                          "name": "totalCross",
                          "contribution": 0.0071
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": 0.007
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0042
                        }
                      ],
                      "others": -0.0076,
                      "total": 0.0883,
                      "log_link": true,
                      "margin_base": -2.437263,
                      "item_margins": [
                        {
                          "name": "creative_index",
                          "margin": -0.100869
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.084787
                        },
                        {
                          "name": "totalCross",
                          "margin": 0.079093
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": 0.072256
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.04237
                        }
                      ],
                      "others_margin": -0.083109
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.07139371335506439,
                    "model_output": 0.0714,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedGoals",
                        "importance": 0.134
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.074
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0705
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.039
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0273
                      }
                    ],
                    "decomposition": {
                      "base": 0.094,
                      "items": [
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0144
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0106
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0068
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0049
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0028
                        }
                      ],
                      "others": -0.0043,
                      "total": 0.0714,
                      "log_link": true,
                      "margin_base": -2.364919,
                      "item_margins": [
                        {
                          "name": "interceptionWon",
                          "margin": -0.165957
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.125259
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.078866
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.060524
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.036862
                        }
                      ],
                      "others_margin": -0.057675
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.0775832012295723,
                    "model_output": 0.0776,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0974
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0527
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0513
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0365
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.03
                      }
                    ],
                    "decomposition": {
                      "base": 0.0993,
                      "items": [
                        {
                          "name": "interceptionWon",
                          "contribution": -0.017
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0085
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0084
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0075
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.006
                        }
                      ],
                      "others": -0.0063,
                      "total": 0.0776,
                      "log_link": true,
                      "margin_base": -2.309444,
                      "item_margins": [
                        {
                          "name": "interceptionWon",
                          "margin": -0.187943
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.098311
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.097656
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.086786
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.068739
                        }
                      ],
                      "others_margin": -0.077718
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.2848549485206604,
                    "model_output": 0.2849,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1106
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0885
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0762
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0292
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0279
                      }
                    ],
                    "decomposition": {
                      "base": 0.326,
                      "items": [
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0422
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0421
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0179
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0148
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0147
                        }
                      ],
                      "others": -0.0232,
                      "total": 0.2849,
                      "log_link": true,
                      "margin_base": -1.120773,
                      "item_margins": [
                        {
                          "name": "interceptionWon",
                          "margin": -0.138636
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.138364
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.056545
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.046927
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.046662
                        }
                      ],
                      "others_margin": -0.078449
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.9652503132820129,
                    "model_output": 0.9653,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1261
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1167
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0633
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0419
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.9969,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1445
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0638
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0386
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0253
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": -0.0247
                        }
                      ],
                      "others": -0.0237,
                      "total": 0.9653,
                      "log_link": false,
                      "margin_base": 0.996896,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.144547
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.063841
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.03865
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.02527
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "margin": -0.024656
                        }
                      ],
                      "others_margin": -0.023775
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.8534464836120605,
                    "model_output": 6.8534,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "rating",
                        "importance": 0.0947
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0836
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0491
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0438
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.036
                      }
                    ],
                    "decomposition": {
                      "base": 6.8561,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0359
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0133
                        },
                        {
                          "name": "rating",
                          "contribution": -0.012
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0085
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0059
                        }
                      ],
                      "others": -0.0107,
                      "total": 6.8534,
                      "log_link": false,
                      "margin_base": 6.856052,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.035853
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.01329
                        },
                        {
                          "name": "rating",
                          "margin": -0.01198
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.008481
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.005865
                        }
                      ],
                      "others_margin": -0.01057
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 46,
                  "role_matches": 37,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "role_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9984, quality 0.451)",
              "stats": {
                "key_pass": 0.835,
                "expected_assists": 0.0684,
                "assists": 0.0881,
                "assist_rate": 0.0881,
                "expected_goals": 0.0713,
                "goals": 0.0775,
                "goal_rate": 0.0775,
                "shots_on_target": 0.2844,
                "total_shots": 0.9637,
                "rating": 6.8534,
                "minutes": 81.49,
                "total_pass": 29.1239,
                "accurate_pass": 24.1455,
                "duels_won": 6.094,
                "total_long_balls": 2.0467,
                "accurate_long_balls": 0.7048,
                "total_own_half_passes": 11.5681,
                "accurate_own_half_passes": 10.1881,
                "total_opp_half_passes": 17.556,
                "accurate_opp_half_passes": 13.9575,
                "crosses_total": 1.3067,
                "crosses_accurate": 0.3705,
                "touches": 47.348,
                "possession_lost": 10.1903,
                "dispossessed": 1.3398,
                "duels_lost": 5.1539,
                "aerial_won": 0.9279,
                "aerial_lost": 0.4755,
                "interceptions": 1.5036,
                "tackles_won": 0.7774,
                "tackles": 1.9229,
                "clearances": 1.1884,
                "total_contest": 1.728,
                "won_contest": 1.1505,
                "challenges_lost": 1.005,
                "fouls": 1.757,
                "fouls_drawn": 2.2428,
                "blocks": 0.392,
                "big_chances_created": 0.0056,
                "big_chances_missed": 0.1172,
                "xgot": 0.0964,
                "ball_carries": 16.752,
                "total_progression": 72.9167,
                "progressive_carries": 1.7502,
                "shots_off_target": 0.6793
              },
              "params": {
                "market_value_eur": 4099999,
                "quality_factor": 0.4511,
                "boost_factor": 0.9984,
                "reference_quality": 0.505,
                "history_matches": 46,
                "history_shrink": 0.098,
                "market_value_known": true
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0127)",
              "stats": {
                "key_pass": 0.835,
                "expected_assists": 0.0684,
                "assists": 0.087,
                "assist_rate": 0.087,
                "expected_goals": 0.0713,
                "goals": 0.0765,
                "goal_rate": 0.0765,
                "shots_on_target": 0.2846,
                "total_shots": 0.9707,
                "rating": 6.8534,
                "minutes": 81.49,
                "total_pass": 29.1239,
                "accurate_pass": 24.1455,
                "duels_won": 6.094,
                "total_long_balls": 2.0467,
                "accurate_long_balls": 0.7048,
                "total_own_half_passes": 11.5681,
                "accurate_own_half_passes": 10.1881,
                "total_opp_half_passes": 17.556,
                "accurate_opp_half_passes": 13.9575,
                "crosses_total": 1.2977,
                "crosses_accurate": 0.3705,
                "touches": 47.348,
                "possession_lost": 10.1903,
                "dispossessed": 1.3398,
                "duels_lost": 5.1539,
                "aerial_won": 0.9279,
                "aerial_lost": 0.4755,
                "interceptions": 1.5037,
                "tackles_won": 0.7752,
                "tackles": 1.9229,
                "clearances": 1.1884,
                "total_contest": 1.728,
                "won_contest": 1.1505,
                "challenges_lost": 1.005,
                "fouls": 1.75,
                "fouls_drawn": 2.2334,
                "blocks": 0.392,
                "big_chances_created": 0.0056,
                "big_chances_missed": 0.1172,
                "xgot": 0.0964,
                "ball_carries": 16.752,
                "total_progression": 72.9167,
                "progressive_carries": 1.7502,
                "shots_off_target": 0.6793
              },
              "params": {
                "blend_weight": 0.0127,
                "history_matches": 46,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.9054,
                "prior_reliability": 0.2,
                "competition": "La Liga",
                "squad": "Alavés"
              },
              "changes": [
                {
                  "stat": "wasFouled",
                  "before": 2.2428,
                  "after": 2.2334
                },
                {
                  "stat": "totalCross",
                  "before": 1.3067,
                  "after": 1.2977
                },
                {
                  "stat": "totalShots",
                  "before": 0.9637,
                  "after": 0.9707
                },
                {
                  "stat": "fouls",
                  "before": 1.757,
                  "after": 1.75
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0.835,
                "expected_assists": 0.0684,
                "assists": 0.087,
                "assist_rate": 0.087,
                "expected_goals": 0.0713,
                "goals": 0.0765,
                "goal_rate": 0.0765,
                "shots_on_target": 0.2846,
                "total_shots": 0.9707,
                "rating": 6.8534,
                "minutes": 81.49,
                "total_pass": 29.1239,
                "accurate_pass": 24.1455,
                "duels_won": 6.094,
                "total_long_balls": 2.0467,
                "accurate_long_balls": 0.7048,
                "total_own_half_passes": 11.5681,
                "accurate_own_half_passes": 10.1881,
                "total_opp_half_passes": 17.556,
                "accurate_opp_half_passes": 13.9575,
                "crosses_total": 1.2977,
                "crosses_accurate": 0.3705,
                "touches": 47.348,
                "possession_lost": 10.1903,
                "dispossessed": 1.3398,
                "duels_lost": 5.1539,
                "aerial_won": 0.9279,
                "aerial_lost": 0.4755,
                "interceptions": 1.5037,
                "tackles_won": 0.7752,
                "tackles": 1.9229,
                "clearances": 1.1884,
                "total_contest": 1.728,
                "won_contest": 1.1505,
                "challenges_lost": 1.005,
                "fouls": 1.75,
                "fouls_drawn": 2.2334,
                "blocks": 0.392,
                "big_chances_created": 0.0056,
                "big_chances_missed": 0.1172,
                "xgot": 0.0964,
                "ball_carries": 16.752,
                "total_progression": 72.9167,
                "progressive_carries": 1.7502,
                "shots_off_target": 0.6793
              },
              "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": 0.835,
                "expected_assists": 0.0684,
                "assists": 0.087,
                "assist_rate": 0.087,
                "expected_goals": 0.0713,
                "goals": 0.0765,
                "goal_rate": 0.0765,
                "shots_on_target": 0.2846,
                "total_shots": 0.9707,
                "rating": 6.8534,
                "minutes": 81.49,
                "total_pass": 29.1239,
                "accurate_pass": 24.1455,
                "duels_won": 6.094,
                "total_long_balls": 2.0467,
                "accurate_long_balls": 0.7048,
                "total_own_half_passes": 11.5681,
                "accurate_own_half_passes": 10.1881,
                "total_opp_half_passes": 17.556,
                "accurate_opp_half_passes": 13.9575,
                "crosses_total": 1.2977,
                "crosses_accurate": 0.3705,
                "touches": 47.348,
                "possession_lost": 10.1903,
                "dispossessed": 1.3398,
                "duels_lost": 5.1539,
                "aerial_won": 0.9279,
                "aerial_lost": 0.4755,
                "interceptions": 1.5037,
                "tackles_won": 0.7752,
                "tackles": 1.9229,
                "clearances": 1.1884,
                "total_contest": 1.728,
                "won_contest": 1.1505,
                "challenges_lost": 1.005,
                "fouls": 1.75,
                "fouls_drawn": 2.2334,
                "blocks": 0.392,
                "big_chances_created": 0.0056,
                "big_chances_missed": 0.1172,
                "xgot": 0.0964,
                "ball_carries": 16.752,
                "total_progression": 72.9167,
                "progressive_carries": 1.7502,
                "shots_off_target": 0.6793,
                "opponent_faced": "Dani Lorenzo, Carlos Dotor",
                "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": "Dani Lorenzo, Carlos Dotor",
                  "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel"
                }
              }
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "key_pass": 0.835,
                "expected_assists": 0.0684,
                "assist_rate": 0.087,
                "assists": 0,
                "expected_goals": 0.0713,
                "goal_rate": 0.0765,
                "goals": 0,
                "shots_on_target": 0.2846,
                "total_shots": 0.9707,
                "rating": 6.8534,
                "minutes": 81.49,
                "total_pass": 29.1239,
                "accurate_pass": 24.1455,
                "duels_won": 6.094,
                "total_long_balls": 2.0467,
                "accurate_long_balls": 0.7048,
                "total_own_half_passes": 11.5681,
                "accurate_own_half_passes": 10.1881,
                "total_opp_half_passes": 17.556,
                "accurate_opp_half_passes": 13.9575,
                "crosses_total": 1.2977,
                "crosses_accurate": 0.3705,
                "touches": 47.348,
                "possession_lost": 10.1903,
                "dispossessed": 1.3398,
                "duels_lost": 5.1539,
                "aerial_won": 0.9279,
                "aerial_lost": 0.4755,
                "interceptions": 1.5037,
                "tackles_won": 0.7752,
                "tackles": 1.9229,
                "clearances": 1.1884,
                "total_contest": 1.728,
                "won_contest": 1.1505,
                "challenges_lost": 1.005,
                "fouls": 1.75,
                "fouls_drawn": 2.2334,
                "blocks": 0.392,
                "big_chances_created": 0.0056,
                "big_chances_missed": 0.1172,
                "xgot": 0.0964,
                "ball_carries": 16.752,
                "total_progression": 72.9167,
                "progressive_carries": 1.7502,
                "shots_off_target": 0.6793,
                "opponent_faced": "Dani Lorenzo, Carlos Dotor",
                "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": {
                "scoreline_reset": true,
                "team_goals": 1
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.26 (squad xG sum 1.2639, xG scale 0.9946, xA scale 1.0687, team xA 0.82 = 0.65 x lambda)",
              "stats": {
                "key_pass": 0.835,
                "expected_assists": 0.0731,
                "assist_rate": 0.087,
                "assists": 0,
                "expected_goals": 0.0709,
                "goal_rate": 0.0765,
                "goals": 0,
                "shots_on_target": 0.2846,
                "total_shots": 0.9707,
                "rating": 6.8534,
                "minutes": 81.49,
                "total_pass": 29.1239,
                "accurate_pass": 24.1455,
                "duels_won": 6.094,
                "total_long_balls": 2.0467,
                "accurate_long_balls": 0.7048,
                "total_own_half_passes": 11.5681,
                "accurate_own_half_passes": 10.1881,
                "total_opp_half_passes": 17.556,
                "accurate_opp_half_passes": 13.9575,
                "crosses_total": 1.2977,
                "crosses_accurate": 0.3705,
                "touches": 47.348,
                "possession_lost": 10.1903,
                "dispossessed": 1.3398,
                "duels_lost": 5.1539,
                "aerial_won": 0.9279,
                "aerial_lost": 0.4755,
                "interceptions": 1.5037,
                "tackles_won": 0.7752,
                "tackles": 1.9229,
                "clearances": 1.1884,
                "total_contest": 1.728,
                "won_contest": 1.1505,
                "challenges_lost": 1.005,
                "fouls": 1.75,
                "fouls_drawn": 2.2334,
                "blocks": 0.392,
                "big_chances_created": 0.0056,
                "big_chances_missed": 0.1172,
                "xgot": 0.0959,
                "ball_carries": 16.752,
                "total_progression": 72.9167,
                "progressive_carries": 1.7502,
                "shots_off_target": 0.6793,
                "opponent_faced": "Dani Lorenzo, Carlos Dotor",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "antagonist_source": "defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0429,
                "creation_factor": 1.1571
              },
              "params": {
                "team_lambda": 1.257,
                "squad_xg_sum": 1.2639,
                "squad_xa_sum": 0.7645,
                "team_expected_assists": 0.817,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.9946,
                "xa_scale": 1.0687,
                "opponent_lambda": 0.869,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              }
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 73.0)",
              "stats": {
                "key_pass": 0.835,
                "expected_assists": 0.0731,
                "assist_rate": 0.087,
                "assists": 0,
                "expected_goals": 0.0709,
                "goal_rate": 0.0765,
                "goals": 0,
                "shots_on_target": 0.2846,
                "total_shots": 0.9707,
                "rating": 6.8534,
                "minutes": 81.49,
                "total_pass": 29.1239,
                "accurate_pass": 24.1455,
                "duels_won": 6.094,
                "total_long_balls": 2.0467,
                "accurate_long_balls": 0.7048,
                "total_own_half_passes": 11.5681,
                "accurate_own_half_passes": 10.1881,
                "total_opp_half_passes": 17.556,
                "accurate_opp_half_passes": 13.9575,
                "crosses_total": 1.2977,
                "crosses_accurate": 0.3705,
                "touches": 47.348,
                "possession_lost": 10.1903,
                "dispossessed": 1.3398,
                "duels_lost": 5.1539,
                "aerial_won": 0.9279,
                "aerial_lost": 0.4755,
                "interceptions": 1.5037,
                "tackles_won": 0.7752,
                "tackles": 1.9229,
                "clearances": 1.1884,
                "total_contest": 1.728,
                "won_contest": 1.1505,
                "challenges_lost": 1.005,
                "fouls": 1.75,
                "fouls_drawn": 2.2334,
                "blocks": 0.392,
                "big_chances_created": 0.0056,
                "big_chances_missed": 0.1172,
                "xgot": 0.0959,
                "ball_carries": 16.752,
                "total_progression": 72.9167,
                "progressive_carries": 1.7502,
                "shots_off_target": 0.6793,
                "opponent_faced": "Dani Lorenzo, Carlos Dotor",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "antagonist_source": "defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0429,
                "creation_factor": 1.1571,
                "fifa_overall": 73.0
              },
              "params": {
                "match_squad_rank": 5,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3981,
                "fifa_rank": 3516.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 73.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "key_pass": 0.835,
                "expected_assists": 0.0731,
                "assist_rate": 0.087,
                "assists": 0,
                "expected_goals": 0.0709,
                "goal_rate": 0.0765,
                "goals": 0,
                "shots_on_target": 0.2846,
                "total_shots": 0.9707,
                "rating": 6.8534,
                "minutes": 81.49,
                "total_pass": 29.1239,
                "accurate_pass": 24.1455,
                "duels_won": 6.094,
                "total_long_balls": 2.0467,
                "accurate_long_balls": 0.7048,
                "total_own_half_passes": 11.5681,
                "accurate_own_half_passes": 10.1881,
                "total_opp_half_passes": 17.556,
                "accurate_opp_half_passes": 13.9575,
                "crosses_total": 1.2977,
                "crosses_accurate": 0.3705,
                "touches": 47.348,
                "possession_lost": 10.1903,
                "dispossessed": 1.3398,
                "duels_lost": 5.1539,
                "aerial_won": 0.9279,
                "aerial_lost": 0.4755,
                "interceptions": 1.5037,
                "tackles_won": 0.7752,
                "tackles": 1.9229,
                "clearances": 1.1884,
                "total_contest": 1.728,
                "won_contest": 1.1505,
                "challenges_lost": 1.005,
                "fouls": 1.75,
                "fouls_drawn": 2.2334,
                "blocks": 0.392,
                "big_chances_created": 0.0056,
                "big_chances_missed": 0.1172,
                "xgot": 0.0959,
                "ball_carries": 16.752,
                "total_progression": 72.9167,
                "progressive_carries": 1.7502,
                "shots_off_target": 0.6793,
                "opponent_faced": "Dani Lorenzo, Carlos Dotor",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "antagonist_source": "defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0684,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0429,
                "creation_factor": 1.1571,
                "fifa_overall": 73.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0684,
                "goal_rate": 0.0765,
                "scorer_weight": 0.0739,
                "squad_weight_total": 1.3303,
                "weight_share": 0.0556,
                "finishing_factor": 1.0429,
                "appearance_weight": 1.0,
                "weight_rank": 7,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lucas Boyé",
                    "weight": 0.3448,
                    "already": 0,
                    "effective_weight": 0.3448,
                    "runner_up": "Mariano Díaz",
                    "runner_up_effective_weight": 0.2151
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "key_pass": 0.835,
                "expected_assists": 0.0731,
                "assist_rate": 0.087,
                "assists": 0,
                "expected_goals": 0.0709,
                "goal_rate": 0.0765,
                "goals": 0,
                "shots_on_target": 0.2846,
                "total_shots": 0.9707,
                "rating": 6.8534,
                "minutes": 81.49,
                "total_pass": 29.1239,
                "accurate_pass": 24.1455,
                "duels_won": 6.094,
                "total_long_balls": 2.0467,
                "accurate_long_balls": 0.7048,
                "total_own_half_passes": 11.5681,
                "accurate_own_half_passes": 10.1881,
                "total_opp_half_passes": 17.556,
                "accurate_opp_half_passes": 13.9575,
                "crosses_total": 1.2977,
                "crosses_accurate": 0.3705,
                "touches": 47.348,
                "possession_lost": 10.1903,
                "dispossessed": 1.3398,
                "duels_lost": 5.1539,
                "aerial_won": 0.9279,
                "aerial_lost": 0.4755,
                "interceptions": 1.5037,
                "tackles_won": 0.7752,
                "tackles": 1.9229,
                "clearances": 1.1884,
                "total_contest": 1.728,
                "won_contest": 1.1505,
                "challenges_lost": 1.005,
                "fouls": 1.75,
                "fouls_drawn": 2.2334,
                "blocks": 0.392,
                "big_chances_created": 0.0056,
                "big_chances_missed": 0.1172,
                "xgot": 0.0959,
                "ball_carries": 16.752,
                "total_progression": 72.9167,
                "progressive_carries": 1.7502,
                "shots_off_target": 0.6793,
                "opponent_faced": "Dani Lorenzo, Carlos Dotor",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "antagonist_source": "defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0684,
                "projected_assists": 0,
                "assist_probability": 0.0705,
                "finishing_factor": 1.0429,
                "creation_factor": 1.1571,
                "fifa_overall": 73.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0705,
                "assist_rate": 0.087,
                "provider_weight": 0.0846,
                "squad_weight_total": 0.7993,
                "weight_share": 0.1058,
                "creation_factor": 1.1571,
                "appearance_weight": 1.0,
                "weight_rank": 3,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Ángel Pérez",
                    "weight": 0.1707,
                    "already": 0,
                    "effective_weight": 0.1707,
                    "runner_up": "Denis Suárez",
                    "runner_up_effective_weight": 0.1469,
                    "blocked_own_goal": [
                      "Lucas Boyé"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Abderrahman Rebbach": {
          "player_id": 1082968,
          "position": "F",
          "position_depth": "F",
          "is_starter": true,
          "shirt_number": 21,
          "height": 176,
          "market_value": 2400000,
          "stats": {
            "expected_goals": 0.0768,
            "goal_rate": 0.0899,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "expected_assists": 0.0828,
            "key_pass": 1,
            "rating": 6.817,
            "minutes": 81,
            "total_pass": 24,
            "accurate_pass": 19,
            "duels_won": 5,
            "total_long_balls": 2,
            "accurate_long_balls": 1,
            "total_opp_half_passes": 13,
            "accurate_opp_half_passes": 9,
            "crosses_total": 4,
            "crosses_accurate": 1,
            "touches": 47,
            "possession_lost": 12.8025,
            "dispossessed": 0.2977,
            "duels_lost": 5,
            "aerial_lost": 1,
            "total_contest": 2,
            "won_contest": 1,
            "ball_recovery": 4,
            "challenges_lost": 1,
            "fouls": 1,
            "fouls_drawn": 1,
            "assist_rate": 0.0643,
            "assists": 0,
            "interceptions": 1,
            "tackles_won": 1,
            "tackles": 2,
            "clearances": 1,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0393,
            "offsides": 0,
            "ball_carries": 14,
            "total_progression": 85,
            "progressive_carries": 3,
            "shots_off_target": 1,
            "duel_xg_multiplier": 0.953,
            "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": "Ángel Recio, Fernando Calero",
            "opponent_faced": "Ángel Recio, Fernando Calero",
            "antagonist_source": "attacking_duel",
            "projected_goals": 0,
            "goal_probability": 0.0739,
            "projected_assists": 0,
            "assist_probability": 0.0795,
            "finishing_factor": 1.0998,
            "creation_factor": 0.8965,
            "fifa_overall": 78.0
          },
          "latest_10_games": [
            {
              "match_id": 16421069,
              "match_date": "2026-10-18",
              "home_team": "Celta Vigo",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 88,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0447,
                "expected_assists": 0.1004,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 33,
                "accurate_pass": 24,
                "key_pass": 1,
                "interceptions": 1,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 5,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421056,
              "match_date": "2026-10-10",
              "home_team": "Deportivo Alavés",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0164,
                "expected_assists": 0.0036,
                "total_shots": 1,
                "total_pass": 18,
                "accurate_pass": 16,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 1,
                "duels_won": 2,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416337,
              "match_date": "2026-09-19",
              "home_team": "Athletic Club",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 65,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.009,
                "total_shots": 0,
                "total_pass": 25,
                "accurate_pass": 19,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 2,
                "aerial_won": 1,
                "duels_won": 5,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416334,
              "match_date": "2026-09-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Valencia",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Valencia",
              "stats": {
                "minutes": 85,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0607,
                "expected_assists": 0.0566,
                "total_shots": 1,
                "total_pass": 27,
                "accurate_pass": 22,
                "interceptions": 1,
                "clearances": 2,
                "duels_won": 2,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416328,
              "match_date": "2026-09-12",
              "home_team": "Real Racing Club",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 90,
                "rating": 7.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0643,
                "expected_assists": 0.0109,
                "total_shots": 2,
                "shots_on_target": 2,
                "total_pass": 23,
                "accurate_pass": 22,
                "tackles": 5,
                "tackles_won": 3,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 10,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416318,
              "match_date": "2026-09-06",
              "home_team": "Deportivo Alavés",
              "away_team": "Osasuna",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 71,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0098,
                "total_shots": 0,
                "total_pass": 18,
                "accurate_pass": 15,
                "tackles": 3,
                "tackles_won": 2,
                "interceptions": 4,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416290,
              "match_date": "2026-08-28",
              "home_team": "Deportivo Alavés",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 71,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0062,
                "total_shots": 0,
                "total_pass": 24,
                "accurate_pass": 17,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 1,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416292,
              "match_date": "2026-08-20",
              "home_team": "Rayo Vallecano",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0189,
                "expected_assists": 0.0275,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 32,
                "accurate_pass": 27,
                "interceptions": 1,
                "clearances": 3,
                "aerial_won": 1,
                "duels_won": 5,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421047,
              "match_date": "2026-08-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Getafe",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Getafe",
              "stats": {
                "minutes": 89,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.017,
                "expected_assists": 0.0004,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 16,
                "accurate_pass": 8,
                "tackles": 5,
                "tackles_won": 1,
                "interceptions": 2,
                "aerial_won": 2,
                "duels_won": 8,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083706,
              "match_date": "2026-05-23",
              "home_team": "Deportivo Alavés",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.039,
                "expected_assists": 0.1277,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 34,
                "accurate_pass": 31,
                "key_pass": 2,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 1,
                "duels_won": 5,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 1659,
            "combined_rank_score": 944.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 673.0,
            "sofascore_rating": 6.7241,
            "sofascore_appearances": 30.0,
            "fifa_rank": 1216.0,
            "fifa_overall": 78.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 8,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.817,
            "source_file": "data/player_rankings.csv",
            "player_name": "Abderrahman Rebbach",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Khumoyun Sherbutaev",
                  "ranking": 1654
                },
                {
                  "player_name": "Kuvonchbek Khushvaktov",
                  "ranking": 1655
                },
                {
                  "player_name": "Florian Grillitsch",
                  "ranking": 1656
                },
                {
                  "player_name": "Zakaria Labyad",
                  "ranking": 1657
                },
                {
                  "player_name": "Rodrigo Odriozola",
                  "ranking": 1658
                }
              ],
              "lower": [
                {
                  "player_name": "Petar Sučić",
                  "ranking": 1660
                },
                {
                  "player_name": "Giacomo Raspadori",
                  "ranking": 1661
                },
                {
                  "player_name": "Wataru Endo",
                  "ranking": 1662
                },
                {
                  "player_name": "Barış Alper Yılmaz",
                  "ranking": 1663
                },
                {
                  "player_name": "Carlos Soler",
                  "ranking": 1664
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.75,
          "history_matches": 39,
          "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",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "expectedGoals",
              "goals",
              "rating",
              "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",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 39,
            "data_confidence": 0.75,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 0.9977,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (F_service) evaluated 39 historical appearances across 7 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.0812,
                "goals": 0.0946,
                "goal_rate": 0.0946,
                "shots_on_target": 0.3466,
                "total_shots": 0.9553,
                "expected_assists": 0.0777,
                "key_pass": 0.7563,
                "rating": 6.817,
                "minutes": 81.21,
                "total_pass": 24.0409,
                "accurate_pass": 19.0421,
                "duels_won": 4.7766,
                "total_long_balls": 2.216,
                "accurate_long_balls": 1.2648,
                "total_opp_half_passes": 12.809,
                "accurate_opp_half_passes": 9.4133,
                "crosses_total": 3.986,
                "crosses_accurate": 0.5442,
                "touches": 47.5479,
                "possession_lost": 12.832,
                "dispossessed": 0.2984,
                "duels_lost": 4.5153,
                "aerial_lost": 0.7794,
                "total_contest": 1.9556,
                "won_contest": 1.0071,
                "ball_recovery": 3.5518,
                "challenges_lost": 1.118,
                "fouls": 1.495,
                "fouls_drawn": 1.3733,
                "assists": 0.0644,
                "assist_rate": 0.0644,
                "interceptions": 1.0814,
                "tackles_won": 1.0355,
                "tackles": 1.7161,
                "clearances": 1.1753,
                "blocks": 0.1106,
                "big_chances_created": 0.1041,
                "big_chances_missed": 0.0044,
                "xgot": 0.0416,
                "offsides": 0.0672,
                "ball_carries": 14.214,
                "total_progression": 85.0246,
                "progressive_carries": 2.6565,
                "shots_off_target": 0.6087
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 6,
                  "trained_at": "2026-10-23T10:05:54.625928+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 611,
                    "rows": 16533
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Celta Vigo",
                    "minutes": 88.0,
                    "is_starting": true,
                    "weight": 0.1503,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-10-10",
                    "opponent": "Atlético Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1277,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Athletic Club",
                    "minutes": 65.0,
                    "is_starting": true,
                    "weight": 0.1086,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-09-15",
                    "opponent": "Valencia",
                    "minutes": 85.0,
                    "is_starting": true,
                    "weight": 0.0923,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Real Racing Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0784,
                    "rating": 7.4
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Osasuna",
                    "minutes": 71.0,
                    "is_starting": true,
                    "weight": 0.0667,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Villarreal",
                    "minutes": 71.0,
                    "is_starting": true,
                    "weight": 0.0567,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-20",
                    "opponent": "Rayo Vallecano",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0482,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-15",
                    "opponent": "Getafe",
                    "minutes": 89.0,
                    "is_starting": true,
                    "weight": 0.0409,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-05-23",
                    "opponent": "Rayo Vallecano",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0348,
                    "rating": 6.6
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 1.0,
                  "expectedGoals": 0.0348,
                  "totalOppositionHalfPasses": 12.3293,
                  "accurateOppositionHalfPasses": 9.0737,
                  "accuratePass": 18.4755,
                  "totalShots": 0.815
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.08121969550848007,
                    "model_output": 0.0812,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2858
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0881
                      },
                      {
                        "name": "goals",
                        "importance": 0.0357
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0272
                      },
                      {
                        "name": "bigChanceMissed",
                        "importance": 0.0231
                      }
                    ],
                    "decomposition": {
                      "base": 0.1979,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0584
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0561
                        },
                        {
                          "name": "goals",
                          "contribution": -0.0245
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0154
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": -0.0139
                        }
                      ],
                      "others": -0.0652,
                      "total": 0.0812,
                      "log_link": true,
                      "margin_base": -1.619934,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.258436
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.247208
                        },
                        {
                          "name": "goals",
                          "margin": -0.130795
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": -0.092007
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": -0.09096
                        }
                      ],
                      "others_margin": -0.58813
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.09455179423093796,
                    "model_output": 0.0946,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1497
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0696
                      },
                      {
                        "name": "goals",
                        "importance": 0.0577
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0307
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0286
                      }
                    ],
                    "decomposition": {
                      "base": 0.2023,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0468
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0463
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": -0.0283
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0211
                        },
                        {
                          "name": "goals",
                          "contribution": -0.015
                        }
                      ],
                      "others": -0.0438,
                      "total": 0.0946,
                      "log_link": true,
                      "margin_base": -1.597983,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.208133
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.205478
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": -0.150195
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": -0.128592
                        },
                        {
                          "name": "goals",
                          "margin": -0.102814
                        }
                      ],
                      "others_margin": -0.381679
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.3466007113456726,
                    "model_output": 0.3466,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2171
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0661
                      },
                      {
                        "name": "goals",
                        "importance": 0.0553
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0475
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0308
                      }
                    ],
                    "decomposition": {
                      "base": 0.5362,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1483
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0809
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0606
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0434
                        },
                        {
                          "name": "goals",
                          "contribution": -0.0379
                        }
                      ],
                      "others": -0.1151,
                      "total": 0.3466,
                      "log_link": true,
                      "margin_base": -0.623262,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.2442
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.125848
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.105808
                        },
                        {
                          "name": "ballRecovery",
                          "margin": -0.083359
                        },
                        {
                          "name": "goals",
                          "margin": -0.078984
                        }
                      ],
                      "others_margin": -0.28652
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.955289900302887,
                    "model_output": 0.9553,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2864
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0656
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.051
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.031
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0298
                      }
                    ],
                    "decomposition": {
                      "base": 1.3807,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.3586
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.228
                        },
                        {
                          "name": "goals",
                          "contribution": -0.0807
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0797
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": -0.0636
                        }
                      ],
                      "others": -0.332,
                      "total": 0.9553,
                      "log_link": false,
                      "margin_base": 1.380749,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.358555
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.228016
                        },
                        {
                          "name": "goals",
                          "margin": -0.080714
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.079697
                        },
                        {
                          "name": "totalShots_p90",
                          "margin": -0.06363
                        }
                      ],
                      "others_margin": -0.331957
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.07769648730754852,
                    "model_output": 0.0777,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.1157
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0645
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0607
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0558
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 0.0644,
                      "items": [
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": 0.0111
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.011
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0106
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.0028
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0026
                        }
                      ],
                      "others": 0.002,
                      "total": 0.0777,
                      "log_link": true,
                      "margin_base": -2.741965,
                      "item_margins": [
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": 0.158443
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.136192
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.13052
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.038013
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.034537
                        }
                      ],
                      "others_margin": 0.026381
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.7563487887382507,
                    "model_output": 0.7563,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1481
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1244
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.1112
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.052
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0395
                      }
                    ],
                    "decomposition": {
                      "base": 0.6805,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1402
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.0655
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": 0.0648
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0547
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0386
                        }
                      ],
                      "others": -0.0476,
                      "total": 0.7563,
                      "log_link": true,
                      "margin_base": -0.384987,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.187364
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.083215
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": 0.082351
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.068989
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.049163
                        }
                      ],
                      "others_margin": -0.060939
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.817019462585449,
                    "model_output": 6.817,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.059
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0483
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0421
                      },
                      {
                        "name": "rating",
                        "importance": 0.0418
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0415
                      }
                    ],
                    "decomposition": {
                      "base": 6.7683,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0482
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.0184
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": 0.016
                        },
                        {
                          "name": "touches",
                          "contribution": 0.0114
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0093
                        }
                      ],
                      "others": -0.036,
                      "total": 6.817,
                      "log_link": false,
                      "margin_base": 6.768281,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.048226
                        },
                        {
                          "name": "totalPass",
                          "margin": 0.018397
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": 0.015978
                        },
                        {
                          "name": "touches",
                          "margin": 0.011383
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.009311
                        }
                      ],
                      "others_margin": -0.035932
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 39,
                  "role_matches": 24,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "role_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9977, quality 0.437)",
              "stats": {
                "expected_goals": 0.081,
                "goals": 0.0943,
                "goal_rate": 0.0943,
                "shots_on_target": 0.3458,
                "total_shots": 0.9531,
                "expected_assists": 0.0775,
                "key_pass": 0.7546,
                "rating": 6.817,
                "minutes": 81.21,
                "total_pass": 23.9856,
                "accurate_pass": 18.9983,
                "duels_won": 4.7656,
                "total_long_balls": 2.2109,
                "accurate_long_balls": 1.2619,
                "total_opp_half_passes": 12.7795,
                "accurate_opp_half_passes": 9.3916,
                "crosses_total": 3.9768,
                "crosses_accurate": 0.5429,
                "touches": 47.4385,
                "possession_lost": 12.8025,
                "dispossessed": 0.2977,
                "duels_lost": 4.5049,
                "aerial_lost": 0.7776,
                "total_contest": 1.9511,
                "won_contest": 1.0048,
                "ball_recovery": 3.5436,
                "challenges_lost": 1.1154,
                "fouls": 1.4916,
                "fouls_drawn": 1.3701,
                "assists": 0.0643,
                "assist_rate": 0.0643,
                "interceptions": 1.0789,
                "tackles_won": 1.0331,
                "tackles": 1.7122,
                "clearances": 1.1726,
                "blocks": 0.1103,
                "big_chances_created": 0.1039,
                "big_chances_missed": 0.0044,
                "xgot": 0.0415,
                "offsides": 0.067,
                "ball_carries": 14.1813,
                "total_progression": 84.829,
                "progressive_carries": 2.6504,
                "shots_off_target": 0.6073
              },
              "params": {
                "market_value_eur": 2400000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9977,
                "reference_quality": 0.505,
                "history_matches": 39,
                "history_shrink": 0.1136,
                "market_value_known": true
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.081,
                "goals": 0.0943,
                "goal_rate": 0.0943,
                "shots_on_target": 0.3458,
                "total_shots": 0.9531,
                "expected_assists": 0.0775,
                "key_pass": 0.7546,
                "rating": 6.817,
                "minutes": 81.21,
                "total_pass": 23.9856,
                "accurate_pass": 18.9983,
                "duels_won": 4.7656,
                "total_long_balls": 2.2109,
                "accurate_long_balls": 1.2619,
                "total_opp_half_passes": 12.7795,
                "accurate_opp_half_passes": 9.3916,
                "crosses_total": 3.9768,
                "crosses_accurate": 0.5429,
                "touches": 47.4385,
                "possession_lost": 12.8025,
                "dispossessed": 0.2977,
                "duels_lost": 4.5049,
                "aerial_lost": 0.7776,
                "total_contest": 1.9511,
                "won_contest": 1.0048,
                "ball_recovery": 3.5436,
                "challenges_lost": 1.1154,
                "fouls": 1.4916,
                "fouls_drawn": 1.3701,
                "assists": 0.0643,
                "assist_rate": 0.0643,
                "interceptions": 1.0789,
                "tackles_won": 1.0331,
                "tackles": 1.7122,
                "clearances": 1.1726,
                "blocks": 0.1103,
                "big_chances_created": 0.1039,
                "big_chances_missed": 0.0044,
                "xgot": 0.0415,
                "offsides": 0.067,
                "ball_carries": 14.1813,
                "total_progression": 84.829,
                "progressive_carries": 2.6504,
                "shots_off_target": 0.6073
              },
              "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.0772,
                "goals": 0.0899,
                "goal_rate": 0.0899,
                "shots_on_target": 0.3295,
                "total_shots": 0.9083,
                "expected_assists": 0.0775,
                "key_pass": 0.7546,
                "rating": 6.817,
                "minutes": 81.21,
                "total_pass": 23.9856,
                "accurate_pass": 18.9983,
                "duels_won": 4.7656,
                "total_long_balls": 2.2109,
                "accurate_long_balls": 1.2619,
                "total_opp_half_passes": 12.7795,
                "accurate_opp_half_passes": 9.3916,
                "crosses_total": 3.9768,
                "crosses_accurate": 0.5429,
                "touches": 47.4385,
                "possession_lost": 12.8025,
                "dispossessed": 0.2977,
                "duels_lost": 4.5049,
                "aerial_lost": 0.7776,
                "total_contest": 1.9511,
                "won_contest": 1.0048,
                "ball_recovery": 3.5436,
                "challenges_lost": 1.1154,
                "fouls": 1.4916,
                "fouls_drawn": 1.3701,
                "assists": 0.0643,
                "assist_rate": 0.0643,
                "interceptions": 1.0789,
                "tackles_won": 1.0331,
                "tackles": 1.7122,
                "clearances": 1.1726,
                "blocks": 0.1103,
                "big_chances_created": 0.1039,
                "big_chances_missed": 0.0042,
                "xgot": 0.0395,
                "offsides": 0.067,
                "ball_carries": 14.1813,
                "total_progression": 84.829,
                "progressive_carries": 2.6504,
                "shots_off_target": 0.5788,
                "duel_xg_multiplier": 0.953,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.4,
                "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": "Ángel Recio, Fernando Calero",
                "opponent_faced": "Ángel Recio, Fernando Calero",
                "antagonist_source": "attacking_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Ángel Recio, Fernando Calero",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                  "duel_win_rate": 0.18,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v2",
                  "xg_multiplier": 0.953,
                  "skill_edge": 0.0,
                  "height_edge": -0.032,
                  "attacker_skill": 0.4374,
                  "defender_skill": 0.4374,
                  "attacker_role": "ST",
                  "attacker_mv_price_index": 1.0,
                  "defender_adjusted_parts": [
                    {
                      "player": "Ángel Recio",
                      "market_value": 1000000,
                      "role": "CB",
                      "price_index": 0.75,
                      "adjusted_quality": 0.4374
                    },
                    {
                      "player": "Fernando Calero",
                      "market_value": 2100000,
                      "role": "CB",
                      "price_index": 0.75,
                      "adjusted_quality": 0.4374
                    }
                  ],
                  "xg_override": 0.0772
                }
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 0.9531,
                  "after": 0.9083
                },
                {
                  "stat": "shotOffTarget",
                  "before": 0.6073,
                  "after": 0.5788
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.3458,
                  "after": 0.3295
                }
              ]
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "expected_goals": 0.0772,
                "goal_rate": 0.0899,
                "goals": 0,
                "shots_on_target": 0.3295,
                "total_shots": 0.9083,
                "expected_assists": 0.0775,
                "key_pass": 0.7546,
                "rating": 6.817,
                "minutes": 81.21,
                "total_pass": 23.9856,
                "accurate_pass": 18.9983,
                "duels_won": 4.7656,
                "total_long_balls": 2.2109,
                "accurate_long_balls": 1.2619,
                "total_opp_half_passes": 12.7795,
                "accurate_opp_half_passes": 9.3916,
                "crosses_total": 3.9768,
                "crosses_accurate": 0.5429,
                "touches": 47.4385,
                "possession_lost": 12.8025,
                "dispossessed": 0.2977,
                "duels_lost": 4.5049,
                "aerial_lost": 0.7776,
                "total_contest": 1.9511,
                "won_contest": 1.0048,
                "ball_recovery": 3.5436,
                "challenges_lost": 1.1154,
                "fouls": 1.4916,
                "fouls_drawn": 1.3701,
                "assist_rate": 0.0643,
                "assists": 0,
                "interceptions": 1.0789,
                "tackles_won": 1.0331,
                "tackles": 1.7122,
                "clearances": 1.1726,
                "blocks": 0.1103,
                "big_chances_created": 0.1039,
                "big_chances_missed": 0.0042,
                "xgot": 0.0395,
                "offsides": 0.067,
                "ball_carries": 14.1813,
                "total_progression": 84.829,
                "progressive_carries": 2.6504,
                "shots_off_target": 0.5788,
                "duel_xg_multiplier": 0.953,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.4,
                "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": "Ángel Recio, Fernando Calero",
                "opponent_faced": "Ángel Recio, Fernando Calero",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "scoreline_reset": true,
                "team_goals": 1
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.26 (squad xG sum 1.2639, xG scale 0.9946, xA scale 1.0687, team xA 0.82 = 0.65 x lambda)",
              "stats": {
                "expected_goals": 0.0768,
                "goal_rate": 0.0899,
                "goals": 0,
                "shots_on_target": 0.3295,
                "total_shots": 0.9083,
                "expected_assists": 0.0828,
                "key_pass": 0.7546,
                "rating": 6.817,
                "minutes": 81.21,
                "total_pass": 23.9856,
                "accurate_pass": 18.9983,
                "duels_won": 4.7656,
                "total_long_balls": 2.2109,
                "accurate_long_balls": 1.2619,
                "total_opp_half_passes": 12.7795,
                "accurate_opp_half_passes": 9.3916,
                "crosses_total": 3.9768,
                "crosses_accurate": 0.5429,
                "touches": 47.4385,
                "possession_lost": 12.8025,
                "dispossessed": 0.2977,
                "duels_lost": 4.5049,
                "aerial_lost": 0.7776,
                "total_contest": 1.9511,
                "won_contest": 1.0048,
                "ball_recovery": 3.5436,
                "challenges_lost": 1.1154,
                "fouls": 1.4916,
                "fouls_drawn": 1.3701,
                "assist_rate": 0.0643,
                "assists": 0,
                "interceptions": 1.0789,
                "tackles_won": 1.0331,
                "tackles": 1.7122,
                "clearances": 1.1726,
                "blocks": 0.1103,
                "big_chances_created": 0.1039,
                "big_chances_missed": 0.0042,
                "xgot": 0.0393,
                "offsides": 0.067,
                "ball_carries": 14.1813,
                "total_progression": 84.829,
                "progressive_carries": 2.6504,
                "shots_off_target": 0.5788,
                "duel_xg_multiplier": 0.953,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.4,
                "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": "Ángel Recio, Fernando Calero",
                "opponent_faced": "Ángel Recio, Fernando Calero",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0998,
                "creation_factor": 0.8965
              },
              "params": {
                "team_lambda": 1.257,
                "squad_xg_sum": 1.2639,
                "squad_xa_sum": 0.7645,
                "team_expected_assists": 0.817,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.9946,
                "xa_scale": 1.0687,
                "opponent_lambda": 0.869,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_assists",
                  "before": 0.0775,
                  "after": 0.0828
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 78.0)",
              "stats": {
                "expected_goals": 0.0768,
                "goal_rate": 0.0899,
                "goals": 0,
                "shots_on_target": 0.3295,
                "total_shots": 0.9083,
                "expected_assists": 0.0828,
                "key_pass": 0.7546,
                "rating": 6.817,
                "minutes": 81.21,
                "total_pass": 23.9856,
                "accurate_pass": 18.9983,
                "duels_won": 4.7656,
                "total_long_balls": 2.2109,
                "accurate_long_balls": 1.2619,
                "total_opp_half_passes": 12.7795,
                "accurate_opp_half_passes": 9.3916,
                "crosses_total": 3.9768,
                "crosses_accurate": 0.5429,
                "touches": 47.4385,
                "possession_lost": 12.8025,
                "dispossessed": 0.2977,
                "duels_lost": 4.5049,
                "aerial_lost": 0.7776,
                "total_contest": 1.9511,
                "won_contest": 1.0048,
                "ball_recovery": 3.5436,
                "challenges_lost": 1.1154,
                "fouls": 1.4916,
                "fouls_drawn": 1.3701,
                "assist_rate": 0.0643,
                "assists": 0,
                "interceptions": 1.0789,
                "tackles_won": 1.0331,
                "tackles": 1.7122,
                "clearances": 1.1726,
                "blocks": 0.1103,
                "big_chances_created": 0.1039,
                "big_chances_missed": 0.0042,
                "xgot": 0.0393,
                "offsides": 0.067,
                "ball_carries": 14.1813,
                "total_progression": 84.829,
                "progressive_carries": 2.6504,
                "shots_off_target": 0.5788,
                "duel_xg_multiplier": 0.953,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.4,
                "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": "Ángel Recio, Fernando Calero",
                "opponent_faced": "Ángel Recio, Fernando Calero",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0998,
                "creation_factor": 0.8965,
                "fifa_overall": 78.0
              },
              "params": {
                "match_squad_rank": 8,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 1659,
                "fifa_rank": 1216.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 78.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "expected_goals": 0.0768,
                "goal_rate": 0.0899,
                "goals": 0,
                "shots_on_target": 0.3295,
                "total_shots": 0.9083,
                "expected_assists": 0.0828,
                "key_pass": 0.7546,
                "rating": 6.817,
                "minutes": 81.21,
                "total_pass": 23.9856,
                "accurate_pass": 18.9983,
                "duels_won": 4.7656,
                "total_long_balls": 2.2109,
                "accurate_long_balls": 1.2619,
                "total_opp_half_passes": 12.7795,
                "accurate_opp_half_passes": 9.3916,
                "crosses_total": 3.9768,
                "crosses_accurate": 0.5429,
                "touches": 47.4385,
                "possession_lost": 12.8025,
                "dispossessed": 0.2977,
                "duels_lost": 4.5049,
                "aerial_lost": 0.7776,
                "total_contest": 1.9511,
                "won_contest": 1.0048,
                "ball_recovery": 3.5436,
                "challenges_lost": 1.1154,
                "fouls": 1.4916,
                "fouls_drawn": 1.3701,
                "assist_rate": 0.0643,
                "assists": 0,
                "interceptions": 1.0789,
                "tackles_won": 1.0331,
                "tackles": 1.7122,
                "clearances": 1.1726,
                "blocks": 0.1103,
                "big_chances_created": 0.1039,
                "big_chances_missed": 0.0042,
                "xgot": 0.0393,
                "offsides": 0.067,
                "ball_carries": 14.1813,
                "total_progression": 84.829,
                "progressive_carries": 2.6504,
                "shots_off_target": 0.5788,
                "duel_xg_multiplier": 0.953,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.4,
                "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": "Ángel Recio, Fernando Calero",
                "opponent_faced": "Ángel Recio, Fernando Calero",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0739,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0998,
                "creation_factor": 0.8965,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0739,
                "goal_rate": 0.0899,
                "scorer_weight": 0.0845,
                "squad_weight_total": 1.3303,
                "weight_share": 0.0635,
                "finishing_factor": 1.0998,
                "appearance_weight": 1.0,
                "weight_rank": 6,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lucas Boyé",
                    "weight": 0.3448,
                    "already": 0,
                    "effective_weight": 0.3448,
                    "runner_up": "Mariano Díaz",
                    "runner_up_effective_weight": 0.2151
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "expected_goals": 0.0768,
                "goal_rate": 0.0899,
                "goals": 0,
                "shots_on_target": 0.3295,
                "total_shots": 0.9083,
                "expected_assists": 0.0828,
                "key_pass": 0.7546,
                "rating": 6.817,
                "minutes": 81.21,
                "total_pass": 23.9856,
                "accurate_pass": 18.9983,
                "duels_won": 4.7656,
                "total_long_balls": 2.2109,
                "accurate_long_balls": 1.2619,
                "total_opp_half_passes": 12.7795,
                "accurate_opp_half_passes": 9.3916,
                "crosses_total": 3.9768,
                "crosses_accurate": 0.5429,
                "touches": 47.4385,
                "possession_lost": 12.8025,
                "dispossessed": 0.2977,
                "duels_lost": 4.5049,
                "aerial_lost": 0.7776,
                "total_contest": 1.9511,
                "won_contest": 1.0048,
                "ball_recovery": 3.5436,
                "challenges_lost": 1.1154,
                "fouls": 1.4916,
                "fouls_drawn": 1.3701,
                "assist_rate": 0.0643,
                "assists": 0,
                "interceptions": 1.0789,
                "tackles_won": 1.0331,
                "tackles": 1.7122,
                "clearances": 1.1726,
                "blocks": 0.1103,
                "big_chances_created": 0.1039,
                "big_chances_missed": 0.0042,
                "xgot": 0.0393,
                "offsides": 0.067,
                "ball_carries": 14.1813,
                "total_progression": 84.829,
                "progressive_carries": 2.6504,
                "shots_off_target": 0.5788,
                "duel_xg_multiplier": 0.953,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.4,
                "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": "Ángel Recio, Fernando Calero",
                "opponent_faced": "Ángel Recio, Fernando Calero",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0739,
                "projected_assists": 0,
                "assist_probability": 0.0795,
                "finishing_factor": 1.0998,
                "creation_factor": 0.8965,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0795,
                "assist_rate": 0.0643,
                "provider_weight": 0.0742,
                "squad_weight_total": 0.7993,
                "weight_share": 0.0929,
                "creation_factor": 0.8965,
                "appearance_weight": 1.0,
                "weight_rank": 5,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Ángel Pérez",
                    "weight": 0.1707,
                    "already": 0,
                    "effective_weight": 0.1707,
                    "runner_up": "Denis Suárez",
                    "runner_up_effective_weight": 0.1469,
                    "blocked_own_goal": [
                      "Lucas Boyé"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Nicolás Valentini": {
          "player_id": 1116570,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 2,
          "height": 184,
          "market_value": 3100000,
          "stats": {
            "interceptions": 1,
            "tackles": 1,
            "tackles_won": 1,
            "clearances": 4,
            "aerial_won": 1,
            "total_shots": 1,
            "rating": 6.8046,
            "minutes": 87,
            "total_pass": 42,
            "accurate_pass": 31,
            "duels_won": 4,
            "total_long_balls": 9,
            "accurate_long_balls": 4,
            "total_own_half_passes": 23,
            "accurate_own_half_passes": 19,
            "total_opp_half_passes": 19,
            "accurate_opp_half_passes": 12,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 55,
            "possession_lost": 13.3077,
            "dispossessed": 0.0,
            "duels_lost": 3,
            "aerial_lost": 1,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 2,
            "challenges_lost": 1,
            "fouls": 1,
            "fouls_drawn": 0,
            "blocks": 1,
            "goal_rate": 0.0,
            "goals": 0,
            "assist_rate": 0.0,
            "assists": 0,
            "expected_goals": 0.0449,
            "expected_assists": 0.0269,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0205,
            "ball_carries": 14,
            "total_progression": 23,
            "progressive_carries": 0,
            "key_pass": 0,
            "shots_off_target": 0,
            "tackles_in_zone": 1.0,
            "tackles_won_in_zone": 0.9,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.6,
            "aerial_duels_won": 0.6,
            "defensive_success_rate": 0.767,
            "opponent_faced": "Chupete",
            "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.0439,
            "projected_assists": 0,
            "assist_probability": 0.0265,
            "finishing_factor": 0.8,
            "creation_factor": 0.8,
            "fifa_overall": 73.0
          },
          "latest_10_games": [
            {
              "match_id": 16421069,
              "match_date": "2026-10-18",
              "home_team": "Celta Vigo",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.145,
                "expected_assists": 0.0319,
                "total_shots": 3,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 59,
                "accurate_pass": 40,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 3,
                "aerial_won": 4,
                "duels_won": 6,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421056,
              "match_date": "2026-10-10",
              "home_team": "Deportivo Alavés",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 71,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0032,
                "total_shots": 0,
                "total_pass": 38,
                "accurate_pass": 32,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416337,
              "match_date": "2026-09-19",
              "home_team": "Athletic Club",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 90,
                "rating": 7.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0007,
                "total_shots": 0,
                "total_pass": 25,
                "accurate_pass": 18,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 1,
                "clearances": 7,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416334,
              "match_date": "2026-09-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Valencia",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Valencia",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0745,
                "total_shots": 0,
                "total_pass": 43,
                "accurate_pass": 31,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 1,
                "duels_won": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416328,
              "match_date": "2026-09-12",
              "home_team": "Real Racing Club",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 45,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0069,
                "total_shots": 0,
                "total_pass": 21,
                "accurate_pass": 14,
                "interceptions": 1,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416292,
              "match_date": "2026-08-20",
              "home_team": "Rayo Vallecano",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 10,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0244,
                "expected_assists": 0.0002,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 5,
                "accurate_pass": 5,
                "aerial_won": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 4138,
            "combined_rank_score": 2135.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 822.0,
            "sofascore_rating": 6.6,
            "sofascore_appearances": 1.0,
            "fifa_rank": 3449.0,
            "fifa_overall": 73.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 9,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.8046,
            "source_file": "data/player_rankings.csv",
            "player_name": "Nicolás Valentini",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Yunus Musah",
                  "ranking": 4133
                },
                {
                  "player_name": "Florent Muslija",
                  "ranking": 4134
                },
                {
                  "player_name": "Darnell Furlong",
                  "ranking": 4135
                },
                {
                  "player_name": "Lucas Noubi",
                  "ranking": 4136
                },
                {
                  "player_name": "Marcão",
                  "ranking": 4137
                }
              ],
              "lower": [
                {
                  "player_name": "Borna Sosa",
                  "ranking": 4139
                },
                {
                  "player_name": "Nathan Broadhead",
                  "ranking": 4140
                },
                {
                  "player_name": "Fábio Cardoso",
                  "ranking": 4141
                },
                {
                  "player_name": "Jorge Sánchez",
                  "ranking": 4142
                },
                {
                  "player_name": "Christos Mouzakitis",
                  "ranking": 4143
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.626,
          "history_matches": 6,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "D_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "totalOppositionHalfPasses",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "ballRecovery",
              "touches",
              "totalClearance",
              "wonTackle",
              "interceptionWon",
              "dispossessed",
              "challengeLost",
              "errorLeadToAShot",
              "errorLeadToAGoal",
              "possessionLostCtrl",
              "passValueNormalized",
              "defensiveValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "totalTackle",
              "totalShots",
              "rating",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "totalShots",
              "rating"
            ],
            "history_matches": 6,
            "data_confidence": 0.626,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.991,
            "fbref_prior_metrics": {
              "squad": "Alavés",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 1.0,
              "starts": 0.0,
              "minutes": 11.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 8.18,
              "shots_on_target_pct": 0.0,
              "prior_reliability": 0.0067
            },
            "rationale": "XGBoost regressor (D_service) evaluated 6 historical appearances across 7 target models; FBref 2026-2027 prior blended (La Liga, Alavés, rel: 0.01, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 7 target models",
              "stats": {
                "interceptions": 0.9041,
                "tackles": 1.4351,
                "tackles_won": 0.9124,
                "clearances": 4.1508,
                "aerial_won": 1.3974,
                "total_shots": 0.7053,
                "rating": 6.8046,
                "minutes": 86.62,
                "total_pass": 42.6062,
                "accurate_pass": 31.1436,
                "duels_won": 3.9414,
                "total_long_balls": 9.0086,
                "accurate_long_balls": 3.8274,
                "total_own_half_passes": 23.0944,
                "accurate_own_half_passes": 19.1799,
                "total_opp_half_passes": 19.5117,
                "accurate_opp_half_passes": 11.9636,
                "crosses_total": 0.3854,
                "crosses_accurate": 0.1927,
                "touches": 55.3841,
                "possession_lost": 13.4286,
                "dispossessed": 0.0,
                "duels_lost": 2.6676,
                "aerial_lost": 1.0871,
                "total_contest": 0.2667,
                "won_contest": 0.0,
                "ball_recovery": 2.2893,
                "challenges_lost": 0.7333,
                "fouls": 0.5806,
                "fouls_drawn": 0.4194,
                "blocks": 0.6522,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0455,
                "expected_assists": 0.0254,
                "shots_on_target": 0.3138,
                "big_chances_created": 0.0,
                "xgot": 0.0208,
                "ball_carries": 13.7937,
                "total_progression": 22.8493,
                "progressive_carries": 0.1927,
                "key_pass": 0.1927,
                "shots_off_target": 0.3915
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 6,
                  "trained_at": "2026-10-23T10:04:32.310343+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 626,
                    "rows": 21426
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Celta Vigo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2408,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-10-10",
                    "opponent": "Atlético Madrid",
                    "minutes": 71.0,
                    "is_starting": true,
                    "weight": 0.2047,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Athletic Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.174,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-09-15",
                    "opponent": "Valencia",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1479,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Real Racing Club",
                    "minutes": 45.0,
                    "is_starting": false,
                    "weight": 0.1257,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-08-20",
                    "opponent": "Rayo Vallecano",
                    "minutes": 10.0,
                    "is_starting": false,
                    "weight": 0.1069,
                    "rating": 6.6
                  }
                ],
                "feature_row": {
                  "history_matches": 6.0,
                  "is_starting_11": 1.0,
                  "totalClearance": 3.3408,
                  "aerialWon": 1.5485,
                  "totalClearance_p90": 3.7018,
                  "totalTackle": 1.387,
                  "defensive_actions": 2.1322
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.9040600061416626,
                    "model_output": 0.9041,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2909
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0422
                      },
                      {
                        "name": "touches",
                        "importance": 0.0304
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0294
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.8603,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1139
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0365
                        },
                        {
                          "name": "interceptionWon_p90",
                          "contribution": -0.0332
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": -0.0192
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.0121
                        }
                      ],
                      "others": 0.0067,
                      "total": 0.9041,
                      "log_link": true,
                      "margin_base": -0.150447,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.124333
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.03819
                        },
                        {
                          "name": "interceptionWon_p90",
                          "margin": -0.036034
                        },
                        {
                          "name": "ballRecovery_p90",
                          "margin": -0.021501
                        },
                        {
                          "name": "totalPass",
                          "margin": 0.013631
                        }
                      ],
                      "others_margin": 0.007348
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.4351450204849243,
                    "model_output": 1.4351,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2494
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0709
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0459
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0405
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 1.3831,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1798
                        },
                        {
                          "name": "totalTackle",
                          "contribution": -0.0485
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0355
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0276
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.0277
                        }
                      ],
                      "others": -0.0991,
                      "total": 1.4351,
                      "log_link": true,
                      "margin_base": 0.324299,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.122198
                        },
                        {
                          "name": "totalTackle",
                          "margin": -0.031558
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.023734
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.018485
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.018194
                        }
                      ],
                      "others_margin": -0.066619
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.9124120473861694,
                    "model_output": 0.9124,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2138
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0741
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0462
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0368
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0292
                      }
                    ],
                    "decomposition": {
                      "base": 0.845,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1126
                        },
                        {
                          "name": "totalTackle",
                          "contribution": -0.0347
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.028
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.0276
                        },
                        {
                          "name": "challengeLost",
                          "contribution": 0.0176
                        }
                      ],
                      "others": -0.0277,
                      "total": 0.9124,
                      "log_link": true,
                      "margin_base": -0.168402,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.125085
                        },
                        {
                          "name": "totalTackle",
                          "margin": -0.036904
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.030779
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.030406
                        },
                        {
                          "name": "challengeLost",
                          "margin": 0.018882
                        }
                      ],
                      "others_margin": -0.029952
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 4.150761127471924,
                    "model_output": 4.1508,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2886
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.1626
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0929
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0369
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.02
                      }
                    ],
                    "decomposition": {
                      "base": 3.4251,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.4489
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": 0.3367
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.2197
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.1698
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.1259
                        }
                      ],
                      "others": 0.1159,
                      "total": 4.1508,
                      "log_link": true,
                      "margin_base": 1.231123,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.123169
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": 0.08334
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.053585
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.041661
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.030732
                        }
                      ],
                      "others_margin": 0.028316
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 1.3974049091339111,
                    "model_output": 1.3974,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "aerialWon",
                        "importance": 0.1614
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1578
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0791
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0413
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0335
                      }
                    ],
                    "decomposition": {
                      "base": 1.3852,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1582
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0551
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0518
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": 0.0315
                        },
                        {
                          "name": "aerialLost",
                          "contribution": -0.0295
                        }
                      ],
                      "others": -0.0411,
                      "total": 1.3974,
                      "log_link": true,
                      "margin_base": 0.325816,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.108125
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.036369
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.035424
                        },
                        {
                          "name": "progressive_carries_p90",
                          "margin": 0.021696
                        },
                        {
                          "name": "aerialLost",
                          "margin": -0.020315
                        }
                      ],
                      "others_margin": -0.028912
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.7052819132804871,
                    "model_output": 0.7053,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0997
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0736
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.034
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0332
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.4749,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.1454
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0577
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": 0.0485
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0138
                        },
                        {
                          "name": "rating",
                          "contribution": 0.0075
                        }
                      ],
                      "others": -0.0425,
                      "total": 0.7053,
                      "log_link": false,
                      "margin_base": 0.47494,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.14538
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.057706
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": 0.048452
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.013839
                        },
                        {
                          "name": "rating",
                          "margin": 0.007536
                        }
                      ],
                      "others_margin": -0.042572
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.804559707641602,
                    "model_output": 6.8046,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "totalPass",
                        "importance": 0.0694
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0576
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.055
                      },
                      {
                        "name": "touches",
                        "importance": 0.0384
                      },
                      {
                        "name": "rating",
                        "importance": 0.0296
                      }
                    ],
                    "decomposition": {
                      "base": 6.7904,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0191
                        },
                        {
                          "name": "rating",
                          "contribution": 0.013
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.013
                        },
                        {
                          "name": "errorLeadToAShot",
                          "contribution": 0.0112
                        },
                        {
                          "name": "touches",
                          "contribution": 0.0101
                        }
                      ],
                      "others": -0.0262,
                      "total": 6.8046,
                      "log_link": false,
                      "margin_base": 6.790384,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.019143
                        },
                        {
                          "name": "rating",
                          "margin": 0.013043
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.012984
                        },
                        {
                          "name": "errorLeadToAShot",
                          "margin": 0.011219
                        },
                        {
                          "name": "touches",
                          "margin": 0.010097
                        }
                      ],
                      "others_margin": -0.02634
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 6,
                  "role_matches": 4,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "role_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9910, quality 0.439)",
              "stats": {
                "interceptions": 0.8959,
                "tackles": 1.4222,
                "tackles_won": 0.9042,
                "clearances": 4.1134,
                "aerial_won": 1.3848,
                "total_shots": 0.699,
                "rating": 6.8046,
                "minutes": 86.62,
                "total_pass": 42.2227,
                "accurate_pass": 30.8633,
                "duels_won": 3.9059,
                "total_long_balls": 8.9275,
                "accurate_long_balls": 3.793,
                "total_own_half_passes": 22.8866,
                "accurate_own_half_passes": 19.0073,
                "total_opp_half_passes": 19.3361,
                "accurate_opp_half_passes": 11.8559,
                "crosses_total": 0.3819,
                "crosses_accurate": 0.191,
                "touches": 54.8856,
                "possession_lost": 13.3077,
                "dispossessed": 0.0,
                "duels_lost": 2.6436,
                "aerial_lost": 1.0773,
                "total_contest": 0.2643,
                "won_contest": 0.0,
                "ball_recovery": 2.2687,
                "challenges_lost": 0.7267,
                "fouls": 0.5754,
                "fouls_drawn": 0.4156,
                "blocks": 0.6463,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0451,
                "expected_assists": 0.0252,
                "shots_on_target": 0.311,
                "big_chances_created": 0.0,
                "xgot": 0.0206,
                "ball_carries": 13.6696,
                "total_progression": 22.6437,
                "progressive_carries": 0.191,
                "key_pass": 0.191,
                "shots_off_target": 0.388
              },
              "params": {
                "market_value_eur": 3100000,
                "quality_factor": 0.4387,
                "boost_factor": 0.991,
                "reference_quality": 0.505,
                "history_matches": 6,
                "history_shrink": 0.4545,
                "market_value_known": true
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0020)",
              "stats": {
                "interceptions": 0.8941,
                "tackles": 1.4222,
                "tackles_won": 0.9024,
                "clearances": 4.1134,
                "aerial_won": 1.3848,
                "total_shots": 0.7132,
                "rating": 6.8046,
                "minutes": 86.62,
                "total_pass": 42.2227,
                "accurate_pass": 30.8633,
                "duels_won": 3.9059,
                "total_long_balls": 8.9275,
                "accurate_long_balls": 3.793,
                "total_own_half_passes": 22.8866,
                "accurate_own_half_passes": 19.0073,
                "total_opp_half_passes": 19.3361,
                "accurate_opp_half_passes": 11.8559,
                "crosses_total": 0.3811,
                "crosses_accurate": 0.191,
                "touches": 54.8856,
                "possession_lost": 13.3077,
                "dispossessed": 0.0,
                "duels_lost": 2.6436,
                "aerial_lost": 1.0773,
                "total_contest": 0.2643,
                "won_contest": 0.0,
                "ball_recovery": 2.2687,
                "challenges_lost": 0.7267,
                "fouls": 0.5933,
                "fouls_drawn": 0.4148,
                "blocks": 0.6463,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0451,
                "expected_assists": 0.0252,
                "shots_on_target": 0.3104,
                "big_chances_created": 0.0,
                "xgot": 0.0206,
                "ball_carries": 13.6696,
                "total_progression": 22.6437,
                "progressive_carries": 0.191,
                "key_pass": 0.191,
                "shots_off_target": 0.388
              },
              "params": {
                "blend_weight": 0.002,
                "history_matches": 6,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.9624,
                "prior_reliability": 0.0067,
                "competition": "La Liga",
                "squad": "Alavés"
              },
              "changes": [
                {
                  "stat": "fouls",
                  "before": 0.5754,
                  "after": 0.5933
                },
                {
                  "stat": "totalShots",
                  "before": 0.699,
                  "after": 0.7132
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 0.8941,
                "tackles": 1.4222,
                "tackles_won": 0.9024,
                "clearances": 4.1134,
                "aerial_won": 1.3848,
                "total_shots": 0.7132,
                "rating": 6.8046,
                "minutes": 86.62,
                "total_pass": 42.2227,
                "accurate_pass": 30.8633,
                "duels_won": 3.9059,
                "total_long_balls": 8.9275,
                "accurate_long_balls": 3.793,
                "total_own_half_passes": 22.8866,
                "accurate_own_half_passes": 19.0073,
                "total_opp_half_passes": 19.3361,
                "accurate_opp_half_passes": 11.8559,
                "crosses_total": 0.3811,
                "crosses_accurate": 0.191,
                "touches": 54.8856,
                "possession_lost": 13.3077,
                "dispossessed": 0.0,
                "duels_lost": 2.6436,
                "aerial_lost": 1.0773,
                "total_contest": 0.2643,
                "won_contest": 0.0,
                "ball_recovery": 2.2687,
                "challenges_lost": 0.7267,
                "fouls": 0.5933,
                "fouls_drawn": 0.4148,
                "blocks": 0.6463,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0451,
                "expected_assists": 0.0252,
                "shots_on_target": 0.3104,
                "big_chances_created": 0.0,
                "xgot": 0.0206,
                "ball_carries": 13.6696,
                "total_progression": 22.6437,
                "progressive_carries": 0.191,
                "key_pass": 0.191,
                "shots_off_target": 0.388
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "interceptions": 0.8941,
                "tackles": 1.4222,
                "tackles_won": 0.9024,
                "clearances": 4.1134,
                "aerial_won": 1.3848,
                "total_shots": 0.7132,
                "rating": 6.8046,
                "minutes": 86.62,
                "total_pass": 42.2227,
                "accurate_pass": 30.8633,
                "duels_won": 3.9059,
                "total_long_balls": 8.9275,
                "accurate_long_balls": 3.793,
                "total_own_half_passes": 22.8866,
                "accurate_own_half_passes": 19.0073,
                "total_opp_half_passes": 19.3361,
                "accurate_opp_half_passes": 11.8559,
                "crosses_total": 0.3811,
                "crosses_accurate": 0.191,
                "touches": 54.8856,
                "possession_lost": 13.3077,
                "dispossessed": 0.0,
                "duels_lost": 2.6436,
                "aerial_lost": 1.0773,
                "total_contest": 0.2643,
                "won_contest": 0.0,
                "ball_recovery": 2.2687,
                "challenges_lost": 0.7267,
                "fouls": 0.5933,
                "fouls_drawn": 0.4148,
                "blocks": 0.6463,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0451,
                "expected_assists": 0.0252,
                "shots_on_target": 0.3104,
                "big_chances_created": 0.0,
                "xgot": 0.0206,
                "ball_carries": 13.6696,
                "total_progression": 22.6437,
                "progressive_carries": 0.191,
                "key_pass": 0.191,
                "shots_off_target": 0.388,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.9,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.6,
                "defensive_success_rate": 0.767,
                "opponent_faced": "Chupete",
                "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": "Chupete",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle"
                }
              }
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "interceptions": 0.8941,
                "tackles": 1.4222,
                "tackles_won": 0.9024,
                "clearances": 4.1134,
                "aerial_won": 1.3848,
                "total_shots": 0.7132,
                "rating": 6.8046,
                "minutes": 86.62,
                "total_pass": 42.2227,
                "accurate_pass": 30.8633,
                "duels_won": 3.9059,
                "total_long_balls": 8.9275,
                "accurate_long_balls": 3.793,
                "total_own_half_passes": 22.8866,
                "accurate_own_half_passes": 19.0073,
                "total_opp_half_passes": 19.3361,
                "accurate_opp_half_passes": 11.8559,
                "crosses_total": 0.3811,
                "crosses_accurate": 0.191,
                "touches": 54.8856,
                "possession_lost": 13.3077,
                "dispossessed": 0.0,
                "duels_lost": 2.6436,
                "aerial_lost": 1.0773,
                "total_contest": 0.2643,
                "won_contest": 0.0,
                "ball_recovery": 2.2687,
                "challenges_lost": 0.7267,
                "fouls": 0.5933,
                "fouls_drawn": 0.4148,
                "blocks": 0.6463,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0451,
                "expected_assists": 0.0252,
                "shots_on_target": 0.3104,
                "big_chances_created": 0.0,
                "xgot": 0.0206,
                "ball_carries": 13.6696,
                "total_progression": 22.6437,
                "progressive_carries": 0.191,
                "key_pass": 0.191,
                "shots_off_target": 0.388,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.9,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.6,
                "defensive_success_rate": 0.767,
                "opponent_faced": "Chupete",
                "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": {
                "scoreline_reset": true,
                "team_goals": 1
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.26 (squad xG sum 1.2639, xG scale 0.9946, xA scale 1.0687, team xA 0.82 = 0.65 x lambda)",
              "stats": {
                "interceptions": 0.8941,
                "tackles": 1.4222,
                "tackles_won": 0.9024,
                "clearances": 4.1134,
                "aerial_won": 1.3848,
                "total_shots": 0.7132,
                "rating": 6.8046,
                "minutes": 86.62,
                "total_pass": 42.2227,
                "accurate_pass": 30.8633,
                "duels_won": 3.9059,
                "total_long_balls": 8.9275,
                "accurate_long_balls": 3.793,
                "total_own_half_passes": 22.8866,
                "accurate_own_half_passes": 19.0073,
                "total_opp_half_passes": 19.3361,
                "accurate_opp_half_passes": 11.8559,
                "crosses_total": 0.3811,
                "crosses_accurate": 0.191,
                "touches": 54.8856,
                "possession_lost": 13.3077,
                "dispossessed": 0.0,
                "duels_lost": 2.6436,
                "aerial_lost": 1.0773,
                "total_contest": 0.2643,
                "won_contest": 0.0,
                "ball_recovery": 2.2687,
                "challenges_lost": 0.7267,
                "fouls": 0.5933,
                "fouls_drawn": 0.4148,
                "blocks": 0.6463,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0449,
                "expected_assists": 0.0269,
                "shots_on_target": 0.3104,
                "big_chances_created": 0.0,
                "xgot": 0.0205,
                "ball_carries": 13.6696,
                "total_progression": 22.6437,
                "progressive_carries": 0.191,
                "key_pass": 0.191,
                "shots_off_target": 0.388,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.9,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.6,
                "defensive_success_rate": 0.767,
                "opponent_faced": "Chupete",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 1.257,
                "squad_xg_sum": 1.2639,
                "squad_xa_sum": 0.7645,
                "team_expected_assists": 0.817,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.9946,
                "xa_scale": 1.0687,
                "opponent_lambda": 0.869,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              }
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 73.0)",
              "stats": {
                "interceptions": 0.8941,
                "tackles": 1.4222,
                "tackles_won": 0.9024,
                "clearances": 4.1134,
                "aerial_won": 1.3848,
                "total_shots": 0.7132,
                "rating": 6.8046,
                "minutes": 86.62,
                "total_pass": 42.2227,
                "accurate_pass": 30.8633,
                "duels_won": 3.9059,
                "total_long_balls": 8.9275,
                "accurate_long_balls": 3.793,
                "total_own_half_passes": 22.8866,
                "accurate_own_half_passes": 19.0073,
                "total_opp_half_passes": 19.3361,
                "accurate_opp_half_passes": 11.8559,
                "crosses_total": 0.3811,
                "crosses_accurate": 0.191,
                "touches": 54.8856,
                "possession_lost": 13.3077,
                "dispossessed": 0.0,
                "duels_lost": 2.6436,
                "aerial_lost": 1.0773,
                "total_contest": 0.2643,
                "won_contest": 0.0,
                "ball_recovery": 2.2687,
                "challenges_lost": 0.7267,
                "fouls": 0.5933,
                "fouls_drawn": 0.4148,
                "blocks": 0.6463,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0449,
                "expected_assists": 0.0269,
                "shots_on_target": 0.3104,
                "big_chances_created": 0.0,
                "xgot": 0.0205,
                "ball_carries": 13.6696,
                "total_progression": 22.6437,
                "progressive_carries": 0.191,
                "key_pass": 0.191,
                "shots_off_target": 0.388,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.9,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.6,
                "defensive_success_rate": 0.767,
                "opponent_faced": "Chupete",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 0.8,
                "fifa_overall": 73.0
              },
              "params": {
                "match_squad_rank": 9,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 4138,
                "fifa_rank": 3449.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 73.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "interceptions": 0.8941,
                "tackles": 1.4222,
                "tackles_won": 0.9024,
                "clearances": 4.1134,
                "aerial_won": 1.3848,
                "total_shots": 0.7132,
                "rating": 6.8046,
                "minutes": 86.62,
                "total_pass": 42.2227,
                "accurate_pass": 30.8633,
                "duels_won": 3.9059,
                "total_long_balls": 8.9275,
                "accurate_long_balls": 3.793,
                "total_own_half_passes": 22.8866,
                "accurate_own_half_passes": 19.0073,
                "total_opp_half_passes": 19.3361,
                "accurate_opp_half_passes": 11.8559,
                "crosses_total": 0.3811,
                "crosses_accurate": 0.191,
                "touches": 54.8856,
                "possession_lost": 13.3077,
                "dispossessed": 0.0,
                "duels_lost": 2.6436,
                "aerial_lost": 1.0773,
                "total_contest": 0.2643,
                "won_contest": 0.0,
                "ball_recovery": 2.2687,
                "challenges_lost": 0.7267,
                "fouls": 0.5933,
                "fouls_drawn": 0.4148,
                "blocks": 0.6463,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0449,
                "expected_assists": 0.0269,
                "shots_on_target": 0.3104,
                "big_chances_created": 0.0,
                "xgot": 0.0205,
                "ball_carries": 13.6696,
                "total_progression": 22.6437,
                "progressive_carries": 0.191,
                "key_pass": 0.191,
                "shots_off_target": 0.388,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.9,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.6,
                "defensive_success_rate": 0.767,
                "opponent_faced": "Chupete",
                "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.0439,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 0.8,
                "fifa_overall": 73.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0439,
                "goal_rate": 0.0,
                "scorer_weight": 0.0359,
                "squad_weight_total": 1.3303,
                "weight_share": 0.027,
                "finishing_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 11,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lucas Boyé",
                    "weight": 0.3448,
                    "already": 0,
                    "effective_weight": 0.3448,
                    "runner_up": "Mariano Díaz",
                    "runner_up_effective_weight": 0.2151
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "interceptions": 0.8941,
                "tackles": 1.4222,
                "tackles_won": 0.9024,
                "clearances": 4.1134,
                "aerial_won": 1.3848,
                "total_shots": 0.7132,
                "rating": 6.8046,
                "minutes": 86.62,
                "total_pass": 42.2227,
                "accurate_pass": 30.8633,
                "duels_won": 3.9059,
                "total_long_balls": 8.9275,
                "accurate_long_balls": 3.793,
                "total_own_half_passes": 22.8866,
                "accurate_own_half_passes": 19.0073,
                "total_opp_half_passes": 19.3361,
                "accurate_opp_half_passes": 11.8559,
                "crosses_total": 0.3811,
                "crosses_accurate": 0.191,
                "touches": 54.8856,
                "possession_lost": 13.3077,
                "dispossessed": 0.0,
                "duels_lost": 2.6436,
                "aerial_lost": 1.0773,
                "total_contest": 0.2643,
                "won_contest": 0.0,
                "ball_recovery": 2.2687,
                "challenges_lost": 0.7267,
                "fouls": 0.5933,
                "fouls_drawn": 0.4148,
                "blocks": 0.6463,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0449,
                "expected_assists": 0.0269,
                "shots_on_target": 0.3104,
                "big_chances_created": 0.0,
                "xgot": 0.0205,
                "ball_carries": 13.6696,
                "total_progression": 22.6437,
                "progressive_carries": 0.191,
                "key_pass": 0.191,
                "shots_off_target": 0.388,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.9,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.6,
                "defensive_success_rate": 0.767,
                "opponent_faced": "Chupete",
                "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.0439,
                "projected_assists": 0,
                "assist_probability": 0.0265,
                "finishing_factor": 0.8,
                "creation_factor": 0.8,
                "fifa_overall": 73.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0265,
                "assist_rate": 0.0,
                "provider_weight": 0.0215,
                "squad_weight_total": 0.7993,
                "weight_share": 0.0269,
                "creation_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 10,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Ángel Pérez",
                    "weight": 0.1707,
                    "already": 0,
                    "effective_weight": 0.1707,
                    "runner_up": "Denis Suárez",
                    "runner_up_effective_weight": 0.1469,
                    "blocked_own_goal": [
                      "Lucas Boyé"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Ville Koski": {
          "player_id": 999178,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 16,
          "height": 185,
          "market_value": 4300000,
          "stats": {
            "interceptions": 1,
            "tackles": 1,
            "tackles_won": 1,
            "clearances": 6,
            "aerial_won": 2,
            "total_shots": 0,
            "rating": 6.7639,
            "minutes": 89,
            "total_pass": 33,
            "accurate_pass": 29,
            "duels_won": 3,
            "total_long_balls": 3,
            "accurate_long_balls": 1,
            "total_own_half_passes": 22,
            "accurate_own_half_passes": 22,
            "total_opp_half_passes": 11,
            "accurate_opp_half_passes": 7,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 46,
            "possession_lost": 4.947,
            "dispossessed": 0.0,
            "duels_lost": 3,
            "aerial_lost": 1,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 2,
            "challenges_lost": 0,
            "fouls": 1,
            "fouls_drawn": 0,
            "blocks": 1,
            "goal_rate": 0.1258,
            "goals": 0,
            "assist_rate": 0.0,
            "assists": 0,
            "expected_goals": 0.1033,
            "expected_assists": 0.0142,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0952,
            "ball_carries": 9,
            "total_progression": 20,
            "progressive_carries": 0,
            "key_pass": 0,
            "shots_off_target": 0,
            "tackles_in_zone": 1.9,
            "tackles_won_in_zone": 1.6,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 0.9,
            "defensive_success_rate": 0.605,
            "opponent_faced": "Pablo Martínez",
            "pressing_zone": "LM vs CB",
            "matchup_zone": "LM vs CB",
            "antagonist_source": "defensive_duel",
            "projected_goals": 0,
            "goal_probability": 0.0981,
            "projected_assists": 0,
            "assist_probability": 0.0141,
            "finishing_factor": 1.1423,
            "creation_factor": 0.8,
            "fifa_overall": 68.0
          },
          "latest_10_games": [
            {
              "match_id": 16421069,
              "match_date": "2026-10-18",
              "home_team": "Celta Vigo",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0045,
                "total_shots": 0,
                "total_pass": 52,
                "accurate_pass": 46,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 3,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421056,
              "match_date": "2026-10-10",
              "home_team": "Deportivo Alavés",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 19,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0014,
                "total_shots": 0,
                "total_pass": 10,
                "accurate_pass": 9,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416337,
              "match_date": "2026-09-19",
              "home_team": "Athletic Club",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 90,
                "rating": 7.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0011,
                "total_shots": 0,
                "total_pass": 23,
                "accurate_pass": 19,
                "tackles": 1,
                "interceptions": 2,
                "clearances": 7,
                "aerial_won": 2,
                "duels_won": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416334,
              "match_date": "2026-09-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Valencia",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Valencia",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1336,
                "expected_assists": 0.008,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 42,
                "accurate_pass": 37,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 6,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416328,
              "match_date": "2026-09-12",
              "home_team": "Real Racing Club",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.7752,
                "expected_assists": 0.0052,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 30,
                "accurate_pass": 25,
                "clearances": 8,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416318,
              "match_date": "2026-09-06",
              "home_team": "Deportivo Alavés",
              "away_team": "Osasuna",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 90,
                "rating": 5.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.001,
                "total_shots": 0,
                "total_pass": 38,
                "accurate_pass": 34,
                "interceptions": 2,
                "clearances": 6,
                "aerial_won": 2,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416290,
              "match_date": "2026-08-28",
              "home_team": "Deportivo Alavés",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 90,
                "rating": 7.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0002,
                "total_shots": 0,
                "total_pass": 7,
                "accurate_pass": 5,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 12,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416292,
              "match_date": "2026-08-20",
              "home_team": "Rayo Vallecano",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 80,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0038,
                "total_shots": 0,
                "total_pass": 26,
                "accurate_pass": 23,
                "tackles": 1,
                "interceptions": 2,
                "clearances": 5,
                "aerial_won": 2,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421047,
              "match_date": "2026-08-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Getafe",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Getafe",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0026,
                "total_shots": 0,
                "total_pass": 54,
                "accurate_pass": 49,
                "clearances": 3,
                "aerial_won": 1,
                "duels_won": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083706,
              "match_date": "2026-05-23",
              "home_team": "Deportivo Alavés",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0228,
                "expected_assists": 0.2091,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 33,
                "accurate_pass": 29,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 3,
                "duels_won": 4,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 6009,
            "combined_rank_score": 4273.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 409.0,
            "sofascore_rating": 6.9333,
            "sofascore_appearances": 3.0,
            "fifa_rank": 8138.0,
            "fifa_overall": 68.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 11,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.7639,
            "source_file": "data/player_rankings.csv",
            "player_name": "Ville Koski",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Carracedo",
                  "ranking": 6004
                },
                {
                  "player_name": "Andrés Fernández",
                  "ranking": 6005
                },
                {
                  "player_name": "Nick D'Agostino",
                  "ranking": 6006
                },
                {
                  "player_name": "Jesé",
                  "ranking": 6007
                },
                {
                  "player_name": "Alberto Jiménez",
                  "ranking": 6008
                }
              ],
              "lower": [
                {
                  "player_name": "Vallejo",
                  "ranking": 6010
                },
                {
                  "player_name": "Mauro Pittón",
                  "ranking": 6011
                },
                {
                  "player_name": "Iñigo Córdoba",
                  "ranking": 6012
                },
                {
                  "player_name": "Rubén Alcaraz",
                  "ranking": 6013
                },
                {
                  "player_name": "Nolaskoain",
                  "ranking": 6014
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.779,
          "history_matches": 14,
          "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",
              "totalTackle",
              "totalShots",
              "rating",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "totalShots",
              "rating"
            ],
            "history_matches": 14,
            "data_confidence": 0.779,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.9959,
            "fbref_prior_metrics": {
              "squad": "Alavés",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "minutes": 259.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.0,
              "prior_reliability": 0.1933
            },
            "rationale": "XGBoost regressor (D_service) evaluated 14 historical appearances across 7 target models; FBref 2026-2027 prior blended (La Liga, Alavés, rel: 0.19, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 7 target models",
              "stats": {
                "interceptions": 1.1147,
                "tackles": 1.3039,
                "tackles_won": 0.717,
                "clearances": 5.8529,
                "aerial_won": 1.7941,
                "total_shots": 0.3655,
                "rating": 6.7639,
                "minutes": 89.43,
                "total_pass": 33.5437,
                "accurate_pass": 29.1544,
                "duels_won": 2.6609,
                "total_long_balls": 3.3382,
                "accurate_long_balls": 1.2449,
                "total_own_half_passes": 22.4851,
                "accurate_own_half_passes": 21.764,
                "total_opp_half_passes": 11.0586,
                "accurate_opp_half_passes": 7.3904,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 45.8811,
                "possession_lost": 4.9674,
                "dispossessed": 0.0,
                "duels_lost": 2.6853,
                "aerial_lost": 1.4035,
                "total_contest": 0.0578,
                "won_contest": 0.0578,
                "ball_recovery": 2.2663,
                "challenges_lost": 0.094,
                "fouls": 1.2818,
                "fouls_drawn": 0.3103,
                "blocks": 0.8694,
                "goals": 0.1306,
                "goal_rate": 0.1306,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.1043,
                "expected_assists": 0.0134,
                "shots_on_target": 0.2899,
                "big_chances_created": 0.0,
                "xgot": 0.0961,
                "ball_carries": 8.6138,
                "total_progression": 20.2788,
                "progressive_carries": 0.2379,
                "key_pass": 0.0491,
                "shots_off_target": 0.0756
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 6,
                  "trained_at": "2026-10-23T10:04:32.310343+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 626,
                    "rows": 21426
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Celta Vigo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1672,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-10-10",
                    "opponent": "Atlético Madrid",
                    "minutes": 19.0,
                    "is_starting": false,
                    "weight": 0.1421,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Athletic Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1208,
                    "rating": 7.5
                  },
                  {
                    "match_date": "2026-09-15",
                    "opponent": "Valencia",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1027,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Real Racing Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0873,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Osasuna",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0742,
                    "rating": 5.6
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Villarreal",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0631,
                    "rating": 7.4
                  },
                  {
                    "match_date": "2026-08-20",
                    "opponent": "Rayo Vallecano",
                    "minutes": 80.0,
                    "is_starting": true,
                    "weight": 0.0536,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-15",
                    "opponent": "Getafe",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0456,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-05-23",
                    "opponent": "Rayo Vallecano",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0387,
                    "rating": 6.8
                  }
                ],
                "feature_row": {
                  "history_matches": 14.0,
                  "is_starting_11": 1.0,
                  "totalClearance": 5.4101,
                  "aerialWon": 1.102,
                  "totalClearance_p90": 9.8458,
                  "totalTackle": 0.9882,
                  "defensive_actions": 2.098
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 1.1146633625030518,
                    "model_output": 1.1147,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2909
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0422
                      },
                      {
                        "name": "touches",
                        "importance": 0.0304
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0294
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.8603,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1171
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": 0.0842
                        },
                        {
                          "name": "interceptionWon_p90",
                          "contribution": 0.0611
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0287
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": -0.0266
                        }
                      ],
                      "others": -0.0101,
                      "total": 1.1147,
                      "log_link": true,
                      "margin_base": -0.150447,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.127579
                        },
                        {
                          "name": "interceptionWon",
                          "margin": 0.082592
                        },
                        {
                          "name": "interceptionWon_p90",
                          "margin": 0.055983
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.025228
                        },
                        {
                          "name": "ballRecovery_p90",
                          "margin": -0.023414
                        }
                      ],
                      "others_margin": -0.008971
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.303882122039795,
                    "model_output": 1.3039,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2494
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0709
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0459
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0405
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 1.3831,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1946
                        },
                        {
                          "name": "press_vulnerability",
                          "contribution": -0.1086
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.0841
                        },
                        {
                          "name": "challengeLost",
                          "contribution": -0.0707
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0426
                        }
                      ],
                      "others": -0.136,
                      "total": 1.3039,
                      "log_link": true,
                      "margin_base": 0.324299,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.131663
                        },
                        {
                          "name": "press_vulnerability",
                          "margin": -0.071338
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.055638
                        },
                        {
                          "name": "challengeLost",
                          "margin": -0.046614
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.029177
                        }
                      ],
                      "others_margin": -0.099126
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.716956377029419,
                    "model_output": 0.717,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2138
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0741
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0462
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0368
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0292
                      }
                    ],
                    "decomposition": {
                      "base": 0.845,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1148
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0537
                        },
                        {
                          "name": "challengeLost",
                          "contribution": -0.0379
                        },
                        {
                          "name": "press_vulnerability",
                          "contribution": -0.0343
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.032
                        }
                      ],
                      "others": -0.0849,
                      "total": 0.717,
                      "log_link": true,
                      "margin_base": -0.168402,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.127434
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.057624
                        },
                        {
                          "name": "challengeLost",
                          "margin": -0.042696
                        },
                        {
                          "name": "press_vulnerability",
                          "margin": -0.040303
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.039165
                        }
                      ],
                      "others_margin": -0.111985
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 5.8529253005981445,
                    "model_output": 5.8529,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2886
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.1626
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0929
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0369
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.02
                      }
                    ],
                    "decomposition": {
                      "base": 3.4251,
                      "items": [
                        {
                          "name": "totalClearance",
                          "contribution": 0.7541
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.5617
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.386
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.4158
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.1513
                        }
                      ],
                      "others": 0.1589,
                      "total": 5.8529,
                      "log_link": true,
                      "margin_base": 1.231123,
                      "item_margins": [
                        {
                          "name": "totalClearance",
                          "margin": 0.198994
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.126103
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.078277
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.077974
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.026938
                        }
                      ],
                      "others_margin": 0.027532
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 1.7941333055496216,
                    "model_output": 1.7941,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "aerialWon",
                        "importance": 0.1614
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1578
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0791
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0413
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0335
                      }
                    ],
                    "decomposition": {
                      "base": 1.3852,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": -0.2024
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1629
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.1611
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.1256
                        },
                        {
                          "name": "totalClearance",
                          "contribution": 0.1223
                        }
                      ],
                      "others": 0.0394,
                      "total": 1.7941,
                      "log_link": true,
                      "margin_base": 0.325816,
                      "item_margins": [
                        {
                          "name": "aerialWon",
                          "margin": -0.157995
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.12907
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.113061
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.080059
                        },
                        {
                          "name": "totalClearance",
                          "margin": 0.072262
                        }
                      ],
                      "others_margin": 0.02225
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.3654608726501465,
                    "model_output": 0.3655,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0997
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0736
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.034
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0332
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.4749,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.1031
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0473
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0182
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0167
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0131
                        }
                      ],
                      "others": -0.039,
                      "total": 0.3655,
                      "log_link": false,
                      "margin_base": 0.47494,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.103122
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.047278
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.01824
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": 0.016692
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.013073
                        }
                      ],
                      "others_margin": -0.039014
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.76391077041626,
                    "model_output": 6.7639,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "totalPass",
                        "importance": 0.0694
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0576
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.055
                      },
                      {
                        "name": "touches",
                        "importance": 0.0384
                      },
                      {
                        "name": "rating",
                        "importance": 0.0296
                      }
                    ],
                    "decomposition": {
                      "base": 6.7904,
                      "items": [
                        {
                          "name": "totalPass",
                          "contribution": -0.0117
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0114
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0111
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0103
                        },
                        {
                          "name": "touches",
                          "contribution": -0.0102
                        }
                      ],
                      "others": 0.006,
                      "total": 6.7639,
                      "log_link": false,
                      "margin_base": 6.790384,
                      "item_margins": [
                        {
                          "name": "totalPass",
                          "margin": -0.011732
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.01143
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.011107
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.010312
                        },
                        {
                          "name": "touches",
                          "margin": -0.01021
                        }
                      ],
                      "others_margin": 0.006106
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 14,
                  "role_matches": 11,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "role_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9959, quality 0.454)",
              "stats": {
                "interceptions": 1.1101,
                "tackles": 1.2985,
                "tackles_won": 0.714,
                "clearances": 5.8289,
                "aerial_won": 1.7868,
                "total_shots": 0.364,
                "rating": 6.7639,
                "minutes": 89.43,
                "total_pass": 33.4062,
                "accurate_pass": 29.0349,
                "duels_won": 2.65,
                "total_long_balls": 3.3245,
                "accurate_long_balls": 1.2398,
                "total_own_half_passes": 22.3929,
                "accurate_own_half_passes": 21.6748,
                "total_opp_half_passes": 11.0133,
                "accurate_opp_half_passes": 7.3601,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 45.693,
                "possession_lost": 4.947,
                "dispossessed": 0.0,
                "duels_lost": 2.6743,
                "aerial_lost": 1.3977,
                "total_contest": 0.0576,
                "won_contest": 0.0576,
                "ball_recovery": 2.257,
                "challenges_lost": 0.0936,
                "fouls": 1.2765,
                "fouls_drawn": 0.309,
                "blocks": 0.8658,
                "goals": 0.1301,
                "goal_rate": 0.1301,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.1039,
                "expected_assists": 0.0133,
                "shots_on_target": 0.2887,
                "big_chances_created": 0.0,
                "xgot": 0.0957,
                "ball_carries": 8.5785,
                "total_progression": 20.1957,
                "progressive_carries": 0.2369,
                "key_pass": 0.0489,
                "shots_off_target": 0.0753
              },
              "params": {
                "market_value_eur": 4300000,
                "quality_factor": 0.4535,
                "boost_factor": 0.9959,
                "reference_quality": 0.505,
                "history_matches": 14,
                "history_shrink": 0.2632,
                "market_value_known": true
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0331)",
              "stats": {
                "interceptions": 1.1074,
                "tackles": 1.2985,
                "tackles_won": 0.7017,
                "clearances": 5.8289,
                "aerial_won": 1.7868,
                "total_shots": 0.352,
                "rating": 6.7639,
                "minutes": 89.43,
                "total_pass": 33.4062,
                "accurate_pass": 29.0349,
                "duels_won": 2.65,
                "total_long_balls": 3.3245,
                "accurate_long_balls": 1.2398,
                "total_own_half_passes": 22.3929,
                "accurate_own_half_passes": 21.6748,
                "total_opp_half_passes": 11.0133,
                "accurate_opp_half_passes": 7.3601,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 45.693,
                "possession_lost": 4.947,
                "dispossessed": 0.0,
                "duels_lost": 2.6743,
                "aerial_lost": 1.3977,
                "total_contest": 0.0576,
                "won_contest": 0.0576,
                "ball_recovery": 2.257,
                "challenges_lost": 0.0936,
                "fouls": 1.2343,
                "fouls_drawn": 0.2988,
                "blocks": 0.8658,
                "goals": 0.1258,
                "goal_rate": 0.1258,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.1039,
                "expected_assists": 0.0133,
                "shots_on_target": 0.2792,
                "big_chances_created": 0.0,
                "xgot": 0.0957,
                "ball_carries": 8.5785,
                "total_progression": 20.1957,
                "progressive_carries": 0.2369,
                "key_pass": 0.0489,
                "shots_off_target": 0.0753
              },
              "params": {
                "blend_weight": 0.0331,
                "history_matches": 14,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.9937,
                "prior_reliability": 0.1933,
                "competition": "La Liga",
                "squad": "Alavés"
              },
              "changes": [
                {
                  "stat": "fouls",
                  "before": 1.2765,
                  "after": 1.2343
                },
                {
                  "stat": "wonTackle",
                  "before": 0.714,
                  "after": 0.7017
                },
                {
                  "stat": "totalShots",
                  "before": 0.364,
                  "after": 0.352
                },
                {
                  "stat": "wasFouled",
                  "before": 0.309,
                  "after": 0.2988
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.2887,
                  "after": 0.2792
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 1.1074,
                "tackles": 1.2985,
                "tackles_won": 0.7017,
                "clearances": 5.8289,
                "aerial_won": 1.7868,
                "total_shots": 0.3545,
                "rating": 6.7639,
                "minutes": 89.43,
                "total_pass": 33.4062,
                "accurate_pass": 29.0349,
                "duels_won": 2.65,
                "total_long_balls": 3.3245,
                "accurate_long_balls": 1.2398,
                "total_own_half_passes": 22.3929,
                "accurate_own_half_passes": 21.6748,
                "total_opp_half_passes": 11.0133,
                "accurate_opp_half_passes": 7.3601,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 45.693,
                "possession_lost": 4.947,
                "dispossessed": 0.0,
                "duels_lost": 2.6743,
                "aerial_lost": 1.3977,
                "total_contest": 0.0576,
                "won_contest": 0.0576,
                "ball_recovery": 2.257,
                "challenges_lost": 0.0936,
                "fouls": 1.2343,
                "fouls_drawn": 0.2988,
                "blocks": 0.8658,
                "goals": 0.1258,
                "goal_rate": 0.1258,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.1039,
                "expected_assists": 0.0133,
                "shots_on_target": 0.2792,
                "big_chances_created": 0.0,
                "xgot": 0.0957,
                "ball_carries": 8.5785,
                "total_progression": 20.1957,
                "progressive_carries": 0.2369,
                "key_pass": 0.0489,
                "shots_off_target": 0.0753
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": true
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "interceptions": 1.1074,
                "tackles": 1.2985,
                "tackles_won": 0.7017,
                "clearances": 5.8289,
                "aerial_won": 1.7868,
                "total_shots": 0.3545,
                "rating": 6.7639,
                "minutes": 89.43,
                "total_pass": 33.4062,
                "accurate_pass": 29.0349,
                "duels_won": 2.65,
                "total_long_balls": 3.3245,
                "accurate_long_balls": 1.2398,
                "total_own_half_passes": 22.3929,
                "accurate_own_half_passes": 21.6748,
                "total_opp_half_passes": 11.0133,
                "accurate_opp_half_passes": 7.3601,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 45.693,
                "possession_lost": 4.947,
                "dispossessed": 0.0,
                "duels_lost": 2.6743,
                "aerial_lost": 1.3977,
                "total_contest": 0.0576,
                "won_contest": 0.0576,
                "ball_recovery": 2.257,
                "challenges_lost": 0.0936,
                "fouls": 1.2343,
                "fouls_drawn": 0.2988,
                "blocks": 0.8658,
                "goals": 0.1258,
                "goal_rate": 0.1258,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.1039,
                "expected_assists": 0.0133,
                "shots_on_target": 0.2792,
                "big_chances_created": 0.0,
                "xgot": 0.0957,
                "ball_carries": 8.5785,
                "total_progression": 20.1957,
                "progressive_carries": 0.2369,
                "key_pass": 0.0489,
                "shots_off_target": 0.0753,
                "tackles_in_zone": 1.9,
                "tackles_won_in_zone": 1.6,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.9,
                "defensive_success_rate": 0.605,
                "opponent_faced": "Pablo Martínez",
                "pressing_zone": "LM vs CB",
                "matchup_zone": "LM vs CB",
                "antagonist_source": "defensive_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Pablo Martínez",
                  "matchup_zone": "LM vs CB"
                }
              }
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "interceptions": 1.1074,
                "tackles": 1.2985,
                "tackles_won": 0.7017,
                "clearances": 5.8289,
                "aerial_won": 1.7868,
                "total_shots": 0.3545,
                "rating": 6.7639,
                "minutes": 89.43,
                "total_pass": 33.4062,
                "accurate_pass": 29.0349,
                "duels_won": 2.65,
                "total_long_balls": 3.3245,
                "accurate_long_balls": 1.2398,
                "total_own_half_passes": 22.3929,
                "accurate_own_half_passes": 21.6748,
                "total_opp_half_passes": 11.0133,
                "accurate_opp_half_passes": 7.3601,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 45.693,
                "possession_lost": 4.947,
                "dispossessed": 0.0,
                "duels_lost": 2.6743,
                "aerial_lost": 1.3977,
                "total_contest": 0.0576,
                "won_contest": 0.0576,
                "ball_recovery": 2.257,
                "challenges_lost": 0.0936,
                "fouls": 1.2343,
                "fouls_drawn": 0.2988,
                "blocks": 0.8658,
                "goal_rate": 0.1258,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1039,
                "expected_assists": 0.0133,
                "shots_on_target": 0.2792,
                "big_chances_created": 0.0,
                "xgot": 0.0957,
                "ball_carries": 8.5785,
                "total_progression": 20.1957,
                "progressive_carries": 0.2369,
                "key_pass": 0.0489,
                "shots_off_target": 0.0753,
                "tackles_in_zone": 1.9,
                "tackles_won_in_zone": 1.6,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.9,
                "defensive_success_rate": 0.605,
                "opponent_faced": "Pablo Martínez",
                "pressing_zone": "LM vs CB",
                "matchup_zone": "LM vs CB",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "scoreline_reset": true,
                "team_goals": 1
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.26 (squad xG sum 1.2639, xG scale 0.9946, xA scale 1.0687, team xA 0.82 = 0.65 x lambda)",
              "stats": {
                "interceptions": 1.1074,
                "tackles": 1.2985,
                "tackles_won": 0.7017,
                "clearances": 5.8289,
                "aerial_won": 1.7868,
                "total_shots": 0.3545,
                "rating": 6.7639,
                "minutes": 89.43,
                "total_pass": 33.4062,
                "accurate_pass": 29.0349,
                "duels_won": 2.65,
                "total_long_balls": 3.3245,
                "accurate_long_balls": 1.2398,
                "total_own_half_passes": 22.3929,
                "accurate_own_half_passes": 21.6748,
                "total_opp_half_passes": 11.0133,
                "accurate_opp_half_passes": 7.3601,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 45.693,
                "possession_lost": 4.947,
                "dispossessed": 0.0,
                "duels_lost": 2.6743,
                "aerial_lost": 1.3977,
                "total_contest": 0.0576,
                "won_contest": 0.0576,
                "ball_recovery": 2.257,
                "challenges_lost": 0.0936,
                "fouls": 1.2343,
                "fouls_drawn": 0.2988,
                "blocks": 0.8658,
                "goal_rate": 0.1258,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1033,
                "expected_assists": 0.0142,
                "shots_on_target": 0.2792,
                "big_chances_created": 0.0,
                "xgot": 0.0952,
                "ball_carries": 8.5785,
                "total_progression": 20.1957,
                "progressive_carries": 0.2369,
                "key_pass": 0.0489,
                "shots_off_target": 0.0753,
                "tackles_in_zone": 1.9,
                "tackles_won_in_zone": 1.6,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.9,
                "defensive_success_rate": 0.605,
                "opponent_faced": "Pablo Martínez",
                "pressing_zone": "LM vs CB",
                "matchup_zone": "LM vs CB",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.1423,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 1.257,
                "squad_xg_sum": 1.2639,
                "squad_xa_sum": 0.7645,
                "team_expected_assists": 0.817,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.9946,
                "xa_scale": 1.0687,
                "opponent_lambda": 0.869,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              }
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 68.0)",
              "stats": {
                "interceptions": 1.1074,
                "tackles": 1.2985,
                "tackles_won": 0.7017,
                "clearances": 5.8289,
                "aerial_won": 1.7868,
                "total_shots": 0.3545,
                "rating": 6.7639,
                "minutes": 89.43,
                "total_pass": 33.4062,
                "accurate_pass": 29.0349,
                "duels_won": 2.65,
                "total_long_balls": 3.3245,
                "accurate_long_balls": 1.2398,
                "total_own_half_passes": 22.3929,
                "accurate_own_half_passes": 21.6748,
                "total_opp_half_passes": 11.0133,
                "accurate_opp_half_passes": 7.3601,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 45.693,
                "possession_lost": 4.947,
                "dispossessed": 0.0,
                "duels_lost": 2.6743,
                "aerial_lost": 1.3977,
                "total_contest": 0.0576,
                "won_contest": 0.0576,
                "ball_recovery": 2.257,
                "challenges_lost": 0.0936,
                "fouls": 1.2343,
                "fouls_drawn": 0.2988,
                "blocks": 0.8658,
                "goal_rate": 0.1258,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1033,
                "expected_assists": 0.0142,
                "shots_on_target": 0.2792,
                "big_chances_created": 0.0,
                "xgot": 0.0952,
                "ball_carries": 8.5785,
                "total_progression": 20.1957,
                "progressive_carries": 0.2369,
                "key_pass": 0.0489,
                "shots_off_target": 0.0753,
                "tackles_in_zone": 1.9,
                "tackles_won_in_zone": 1.6,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.9,
                "defensive_success_rate": 0.605,
                "opponent_faced": "Pablo Martínez",
                "pressing_zone": "LM vs CB",
                "matchup_zone": "LM vs CB",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.1423,
                "creation_factor": 0.8,
                "fifa_overall": 68.0
              },
              "params": {
                "match_squad_rank": 11,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 6009,
                "fifa_rank": 8138.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 68.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "interceptions": 1.1074,
                "tackles": 1.2985,
                "tackles_won": 0.7017,
                "clearances": 5.8289,
                "aerial_won": 1.7868,
                "total_shots": 0.3545,
                "rating": 6.7639,
                "minutes": 89.43,
                "total_pass": 33.4062,
                "accurate_pass": 29.0349,
                "duels_won": 2.65,
                "total_long_balls": 3.3245,
                "accurate_long_balls": 1.2398,
                "total_own_half_passes": 22.3929,
                "accurate_own_half_passes": 21.6748,
                "total_opp_half_passes": 11.0133,
                "accurate_opp_half_passes": 7.3601,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 45.693,
                "possession_lost": 4.947,
                "dispossessed": 0.0,
                "duels_lost": 2.6743,
                "aerial_lost": 1.3977,
                "total_contest": 0.0576,
                "won_contest": 0.0576,
                "ball_recovery": 2.257,
                "challenges_lost": 0.0936,
                "fouls": 1.2343,
                "fouls_drawn": 0.2988,
                "blocks": 0.8658,
                "goal_rate": 0.1258,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1033,
                "expected_assists": 0.0142,
                "shots_on_target": 0.2792,
                "big_chances_created": 0.0,
                "xgot": 0.0952,
                "ball_carries": 8.5785,
                "total_progression": 20.1957,
                "progressive_carries": 0.2369,
                "key_pass": 0.0489,
                "shots_off_target": 0.0753,
                "tackles_in_zone": 1.9,
                "tackles_won_in_zone": 1.6,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.9,
                "defensive_success_rate": 0.605,
                "opponent_faced": "Pablo Martínez",
                "pressing_zone": "LM vs CB",
                "matchup_zone": "LM vs CB",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0981,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.1423,
                "creation_factor": 0.8,
                "fifa_overall": 68.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0981,
                "goal_rate": 0.1258,
                "scorer_weight": 0.118,
                "squad_weight_total": 1.3303,
                "weight_share": 0.0887,
                "finishing_factor": 1.1423,
                "appearance_weight": 1.0,
                "weight_rank": 4,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lucas Boyé",
                    "weight": 0.3448,
                    "already": 0,
                    "effective_weight": 0.3448,
                    "runner_up": "Mariano Díaz",
                    "runner_up_effective_weight": 0.2151
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "interceptions": 1.1074,
                "tackles": 1.2985,
                "tackles_won": 0.7017,
                "clearances": 5.8289,
                "aerial_won": 1.7868,
                "total_shots": 0.3545,
                "rating": 6.7639,
                "minutes": 89.43,
                "total_pass": 33.4062,
                "accurate_pass": 29.0349,
                "duels_won": 2.65,
                "total_long_balls": 3.3245,
                "accurate_long_balls": 1.2398,
                "total_own_half_passes": 22.3929,
                "accurate_own_half_passes": 21.6748,
                "total_opp_half_passes": 11.0133,
                "accurate_opp_half_passes": 7.3601,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 45.693,
                "possession_lost": 4.947,
                "dispossessed": 0.0,
                "duels_lost": 2.6743,
                "aerial_lost": 1.3977,
                "total_contest": 0.0576,
                "won_contest": 0.0576,
                "ball_recovery": 2.257,
                "challenges_lost": 0.0936,
                "fouls": 1.2343,
                "fouls_drawn": 0.2988,
                "blocks": 0.8658,
                "goal_rate": 0.1258,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1033,
                "expected_assists": 0.0142,
                "shots_on_target": 0.2792,
                "big_chances_created": 0.0,
                "xgot": 0.0952,
                "ball_carries": 8.5785,
                "total_progression": 20.1957,
                "progressive_carries": 0.2369,
                "key_pass": 0.0489,
                "shots_off_target": 0.0753,
                "tackles_in_zone": 1.9,
                "tackles_won_in_zone": 1.6,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.9,
                "defensive_success_rate": 0.605,
                "opponent_faced": "Pablo Martínez",
                "pressing_zone": "LM vs CB",
                "matchup_zone": "LM vs CB",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0981,
                "projected_assists": 0,
                "assist_probability": 0.0141,
                "finishing_factor": 1.1423,
                "creation_factor": 0.8,
                "fifa_overall": 68.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0141,
                "assist_rate": 0.0,
                "provider_weight": 0.0114,
                "squad_weight_total": 0.7993,
                "weight_share": 0.0142,
                "creation_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 13,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Ángel Pérez",
                    "weight": 0.1707,
                    "already": 0,
                    "effective_weight": 0.1707,
                    "runner_up": "Denis Suárez",
                    "runner_up_effective_weight": 0.1469,
                    "blocked_own_goal": [
                      "Lucas Boyé"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Nahuel Tenaglia": {
          "player_id": 896073,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 14,
          "height": 182,
          "market_value": 3200000,
          "stats": {
            "interceptions": 1,
            "tackles": 2,
            "tackles_won": 1,
            "clearances": 3,
            "aerial_won": 1,
            "total_shots": 1,
            "rating": 6.8212,
            "minutes": 87,
            "total_pass": 32,
            "accurate_pass": 26,
            "duels_won": 5,
            "total_long_balls": 4,
            "accurate_long_balls": 2,
            "total_own_half_passes": 17,
            "accurate_own_half_passes": 15,
            "total_opp_half_passes": 16,
            "accurate_opp_half_passes": 11,
            "crosses_total": 1,
            "crosses_accurate": 0,
            "touches": 52,
            "possession_lost": 10.0274,
            "dispossessed": 0.5687,
            "duels_lost": 4,
            "aerial_lost": 1,
            "total_contest": 1,
            "won_contest": 0,
            "ball_recovery": 4,
            "challenges_lost": 1,
            "fouls": 1,
            "fouls_drawn": 1,
            "blocks": 1,
            "goal_rate": 0.0696,
            "goals": 0,
            "assist_rate": 0.0,
            "assists": 0,
            "expected_goals": 0.0432,
            "expected_assists": 0.0403,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0487,
            "ball_carries": 12,
            "total_progression": 50,
            "progressive_carries": 1,
            "key_pass": 0,
            "shots_off_target": 0,
            "opponent_faced": "Rafa Garrido",
            "matchup_zone": "Left Wingback vs Right Back — Overlapping Run",
            "antagonist_source": "attacking_duel",
            "projected_goals": 0,
            "goal_probability": 0.0423,
            "projected_assists": 0,
            "assist_probability": 0.0395,
            "finishing_factor": 1.25,
            "creation_factor": 0.8,
            "fifa_overall": 77.0
          },
          "latest_10_games": [
            {
              "match_id": 16421069,
              "match_date": "2026-10-18",
              "home_team": "Celta Vigo",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 90,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0886,
                "expected_assists": 0.0586,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 44,
                "accurate_pass": 36,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 1,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421056,
              "match_date": "2026-10-10",
              "home_team": "Deportivo Alavés",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 90,
                "rating": 7.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0028,
                "total_shots": 0,
                "total_pass": 40,
                "accurate_pass": 32,
                "tackles": 6,
                "tackles_won": 5,
                "interceptions": 3,
                "clearances": 1,
                "duels_won": 8,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416337,
              "match_date": "2026-09-19",
              "home_team": "Athletic Club",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 90,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0039,
                "total_shots": 0,
                "total_pass": 22,
                "accurate_pass": 17,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 3,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 5,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416334,
              "match_date": "2026-09-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Valencia",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Valencia",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0166,
                "total_shots": 0,
                "total_pass": 27,
                "accurate_pass": 19,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 1,
                "duels_won": 2,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416328,
              "match_date": "2026-09-12",
              "home_team": "Real Racing Club",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 45,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.2619,
                "total_shots": 0,
                "total_pass": 13,
                "accurate_pass": 12,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416318,
              "match_date": "2026-09-06",
              "home_team": "Deportivo Alavés",
              "away_team": "Osasuna",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 90,
                "rating": 6.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0533,
                "expected_assists": 0.0113,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 39,
                "accurate_pass": 35,
                "tackles": 1,
                "interceptions": 1,
                "clearances": 5,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416290,
              "match_date": "2026-08-28",
              "home_team": "Deportivo Alavés",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 90,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0021,
                "total_shots": 0,
                "total_pass": 11,
                "accurate_pass": 8,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 3,
                "clearances": 5,
                "aerial_won": 2,
                "duels_won": 5,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416292,
              "match_date": "2026-08-20",
              "home_team": "Rayo Vallecano",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0147,
                "expected_assists": 0.0129,
                "total_shots": 1,
                "total_pass": 29,
                "accurate_pass": 21,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 7,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421047,
              "match_date": "2026-08-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Getafe",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Getafe",
              "stats": {
                "minutes": 90,
                "rating": 8.6,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.3096,
                "expected_assists": 0.0325,
                "total_shots": 3,
                "shots_on_target": 1,
                "total_pass": 61,
                "accurate_pass": 52,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 6,
                "aerial_won": 2,
                "duels_won": 7,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083706,
              "match_date": "2026-05-23",
              "home_team": "Deportivo Alavés",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 90,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0566,
                "expected_assists": 0.0429,
                "total_shots": 2,
                "shots_on_target": 1,
                "total_pass": 37,
                "accurate_pass": 30,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 3,
                "duels_won": 2,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 2146,
            "combined_rank_score": 809.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 62.0,
            "sofascore_rating": 7.65,
            "sofascore_appearances": 2.0,
            "fifa_rank": 1557.0,
            "fifa_overall": 77.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 7,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.8212,
            "source_file": "data/player_rankings.csv",
            "player_name": "Nahuel Tenaglia",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Kaito Taniguchi",
                  "ranking": 2141
                },
                {
                  "player_name": "Seok-jun Hong",
                  "ranking": 2142
                },
                {
                  "player_name": "Álvaro Valles",
                  "ranking": 2143
                },
                {
                  "player_name": "Lazar Samardžić",
                  "ranking": 2144
                },
                {
                  "player_name": "Giovanny Avalos",
                  "ranking": 2145
                }
              ],
              "lower": [
                {
                  "player_name": "Breel Embolo",
                  "ranking": 2147
                },
                {
                  "player_name": "Sergi Cardona",
                  "ranking": 2148
                },
                {
                  "player_name": "Kim Geon-oh",
                  "ranking": 2149
                },
                {
                  "player_name": "Ben Chilwell",
                  "ranking": 2150
                },
                {
                  "player_name": "Nicholas Duarte",
                  "ranking": 2151
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.78,
          "history_matches": 45,
          "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",
              "totalTackle",
              "totalShots",
              "rating",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "totalShots",
              "rating"
            ],
            "history_matches": 45,
            "data_confidence": 0.78,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.998,
            "fbref_prior_metrics": {
              "squad": "Alavés",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "minutes": 270.0,
              "goals_per90": 0.3333333333333333,
              "assists_per90": 0.0,
              "shots_per90": 1.33,
              "shots_on_target_pct": 25.0,
              "prior_reliability": 0.2
            },
            "rationale": "XGBoost regressor (D_service) evaluated 45 historical appearances across 7 target models; FBref 2026-2027 prior blended (La Liga, Alavés, rel: 0.20, gls/90: 0.3333333333333333, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 7 target models",
              "stats": {
                "interceptions": 1.0921,
                "tackles": 2.138,
                "tackles_won": 1.3895,
                "clearances": 2.9889,
                "aerial_won": 0.9577,
                "total_shots": 0.5982,
                "rating": 6.8212,
                "minutes": 86.62,
                "total_pass": 32.1237,
                "accurate_pass": 26.2349,
                "duels_won": 4.8081,
                "total_long_balls": 4.3237,
                "accurate_long_balls": 1.5635,
                "total_own_half_passes": 16.5447,
                "accurate_own_half_passes": 14.883,
                "total_opp_half_passes": 15.579,
                "accurate_opp_half_passes": 11.3519,
                "crosses_total": 1.4158,
                "crosses_accurate": 0.2437,
                "touches": 52.5296,
                "possession_lost": 10.0475,
                "dispossessed": 0.5698,
                "duels_lost": 3.8043,
                "aerial_lost": 1.0932,
                "total_contest": 1.127,
                "won_contest": 0.3135,
                "ball_recovery": 3.9365,
                "challenges_lost": 0.5401,
                "fouls": 0.8173,
                "fouls_drawn": 1.307,
                "blocks": 0.5298,
                "goals": 0.0664,
                "goal_rate": 0.0664,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0435,
                "expected_assists": 0.0378,
                "shots_on_target": 0.3612,
                "big_chances_created": 0.0919,
                "xgot": 0.0491,
                "ball_carries": 12.1424,
                "total_progression": 49.9254,
                "progressive_carries": 1.183,
                "key_pass": 0.2198,
                "shots_off_target": 0.237
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 6,
                  "trained_at": "2026-10-23T10:04:32.310343+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 626,
                    "rows": 21426
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Celta Vigo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1501,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-10-10",
                    "opponent": "Atlético Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1276,
                    "rating": 7.4
                  },
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Athletic Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1084,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-15",
                    "opponent": "Valencia",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0922,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Real Racing Club",
                    "minutes": 45.0,
                    "is_starting": true,
                    "weight": 0.0784,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Osasuna",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0666,
                    "rating": 6.1
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Villarreal",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0566,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-08-20",
                    "opponent": "Rayo Vallecano",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0481,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-08-15",
                    "opponent": "Getafe",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0409,
                    "rating": 8.6
                  },
                  {
                    "match_date": "2026-05-23",
                    "opponent": "Rayo Vallecano",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0348,
                    "rating": 6.3
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 1.0,
                  "totalClearance": 3.433,
                  "aerialWon": 0.8823,
                  "totalClearance_p90": 3.7467,
                  "totalTackle": 2.4137,
                  "defensive_actions": 4.0609
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 1.0920870304107666,
                    "model_output": 1.0921,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2909
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0422
                      },
                      {
                        "name": "touches",
                        "importance": 0.0304
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0294
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.8603,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1066
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": 0.079
                        },
                        {
                          "name": "interceptionWon_p90",
                          "contribution": 0.0343
                        },
                        {
                          "name": "wonTackle",
                          "contribution": -0.0197
                        },
                        {
                          "name": "errorLeadToAGoal",
                          "contribution": -0.0187
                        }
                      ],
                      "others": 0.0503,
                      "total": 1.0921,
                      "log_link": true,
                      "margin_base": -0.150447,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.116814
                        },
                        {
                          "name": "interceptionWon",
                          "margin": 0.078552
                        },
                        {
                          "name": "interceptionWon_p90",
                          "margin": 0.032236
                        },
                        {
                          "name": "wonTackle",
                          "margin": -0.018437
                        },
                        {
                          "name": "errorLeadToAGoal",
                          "margin": -0.017759
                        }
                      ],
                      "others_margin": 0.047131
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 2.1379709243774414,
                    "model_output": 2.138,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2494
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0709
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0459
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0405
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 1.3831,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1993
                        },
                        {
                          "name": "totalTackle",
                          "contribution": 0.1138
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": 0.1219
                        },
                        {
                          "name": "press_vulnerability",
                          "contribution": 0.0827
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.0821
                        }
                      ],
                      "others": 0.1551,
                      "total": 2.138,
                      "log_link": true,
                      "margin_base": 0.324299,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.13465
                        },
                        {
                          "name": "totalTackle",
                          "margin": 0.069431
                        },
                        {
                          "name": "defensive_actions",
                          "margin": 0.069379
                        },
                        {
                          "name": "press_vulnerability",
                          "margin": 0.044502
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.042295
                        }
                      ],
                      "others_margin": 0.075302
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 1.3895231485366821,
                    "model_output": 1.3895,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2138
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0741
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0462
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0368
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0292
                      }
                    ],
                    "decomposition": {
                      "base": 0.845,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1266
                        },
                        {
                          "name": "totalTackle",
                          "contribution": 0.099
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": 0.0794
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.0572
                        },
                        {
                          "name": "press_vulnerability",
                          "contribution": 0.0359
                        }
                      ],
                      "others": 0.1464,
                      "total": 1.3895,
                      "log_link": true,
                      "margin_base": -0.168402,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.139564
                        },
                        {
                          "name": "totalTackle",
                          "margin": 0.097002
                        },
                        {
                          "name": "defensive_actions",
                          "margin": 0.071521
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.048571
                        },
                        {
                          "name": "press_vulnerability",
                          "margin": 0.029333
                        }
                      ],
                      "others_margin": 0.11137
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 2.988887310028076,
                    "model_output": 2.9889,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2886
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.1626
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0929
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0369
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.02
                      }
                    ],
                    "decomposition": {
                      "base": 3.4251,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.4266
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.3074
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.2072
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.1309
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": -0.0781
                        }
                      ],
                      "others": -0.1392,
                      "total": 2.9889,
                      "log_link": true,
                      "margin_base": 1.231123,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.11738
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.083168
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.060232
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.040012
                        },
                        {
                          "name": "ballRecovery_p90",
                          "margin": -0.02465
                        }
                      ],
                      "others_margin": -0.045539
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.9577237367630005,
                    "model_output": 0.9577,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "aerialWon",
                        "importance": 0.1614
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1578
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0791
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0413
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0335
                      }
                    ],
                    "decomposition": {
                      "base": 1.3852,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": -0.2848
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1455
                        },
                        {
                          "name": "dispossessed",
                          "contribution": -0.0484
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0395
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": -0.0379
                        }
                      ],
                      "others": -0.1624,
                      "total": 0.9577,
                      "log_link": true,
                      "margin_base": 0.325816,
                      "item_margins": [
                        {
                          "name": "aerialWon",
                          "margin": -0.230218
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.124227
                        },
                        {
                          "name": "dispossessed",
                          "margin": -0.039646
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.03357
                        },
                        {
                          "name": "progressive_carries_p90",
                          "margin": -0.033307
                        }
                      ],
                      "others_margin": -0.156498
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.5981994867324829,
                    "model_output": 0.5982,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0997
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0736
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.034
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0332
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.4749,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0636
                        },
                        {
                          "name": "duelWon",
                          "contribution": 0.0181
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0172
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0125
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": 0.0112
                        }
                      ],
                      "others": 0.0007,
                      "total": 0.5982,
                      "log_link": false,
                      "margin_base": 0.47494,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.06357
                        },
                        {
                          "name": "duelWon",
                          "margin": 0.018112
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.017233
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.012533
                        },
                        {
                          "name": "progressive_carries_p90",
                          "margin": 0.011216
                        }
                      ],
                      "others_margin": 0.000594
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.821198463439941,
                    "model_output": 6.8212,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "totalPass",
                        "importance": 0.0694
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0576
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.055
                      },
                      {
                        "name": "touches",
                        "importance": 0.0384
                      },
                      {
                        "name": "rating",
                        "importance": 0.0296
                      }
                    ],
                    "decomposition": {
                      "base": 6.7904,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0255
                        },
                        {
                          "name": "touches",
                          "contribution": 0.0232
                        },
                        {
                          "name": "rating",
                          "contribution": 0.0168
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0148
                        },
                        {
                          "name": "interceptionWon_p90",
                          "contribution": 0.0105
                        }
                      ],
                      "others": -0.0304,
                      "total": 6.8212,
                      "log_link": false,
                      "margin_base": 6.790384,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.02545
                        },
                        {
                          "name": "touches",
                          "margin": 0.023182
                        },
                        {
                          "name": "rating",
                          "margin": 0.016758
                        },
                        {
                          "name": "totalPass",
                          "margin": -0.014843
                        },
                        {
                          "name": "interceptionWon_p90",
                          "margin": 0.010472
                        }
                      ],
                      "others_margin": -0.0302
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 45,
                  "role_matches": 45,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "role_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9980, quality 0.440)",
              "stats": {
                "interceptions": 1.0899,
                "tackles": 2.1337,
                "tackles_won": 1.3867,
                "clearances": 2.9829,
                "aerial_won": 0.9558,
                "total_shots": 0.597,
                "rating": 6.8212,
                "minutes": 86.62,
                "total_pass": 32.0595,
                "accurate_pass": 26.1824,
                "duels_won": 4.7985,
                "total_long_balls": 4.3151,
                "accurate_long_balls": 1.5604,
                "total_own_half_passes": 16.5116,
                "accurate_own_half_passes": 14.8532,
                "total_opp_half_passes": 15.5478,
                "accurate_opp_half_passes": 11.3292,
                "crosses_total": 1.413,
                "crosses_accurate": 0.2432,
                "touches": 52.4245,
                "possession_lost": 10.0274,
                "dispossessed": 0.5687,
                "duels_lost": 3.7967,
                "aerial_lost": 1.091,
                "total_contest": 1.1247,
                "won_contest": 0.3129,
                "ball_recovery": 3.9286,
                "challenges_lost": 0.539,
                "fouls": 0.8157,
                "fouls_drawn": 1.3044,
                "blocks": 0.5287,
                "goals": 0.0663,
                "goal_rate": 0.0663,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0434,
                "expected_assists": 0.0377,
                "shots_on_target": 0.3605,
                "big_chances_created": 0.0917,
                "xgot": 0.049,
                "ball_carries": 12.1181,
                "total_progression": 49.8255,
                "progressive_carries": 1.1806,
                "key_pass": 0.2194,
                "shots_off_target": 0.2365
              },
              "params": {
                "market_value_eur": 3200000,
                "quality_factor": 0.4399,
                "boost_factor": 0.998,
                "reference_quality": 0.505,
                "history_matches": 45,
                "history_shrink": 0.1,
                "market_value_known": true
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0130)",
              "stats": {
                "interceptions": 1.0966,
                "tackles": 2.1337,
                "tackles_won": 1.3854,
                "clearances": 2.9829,
                "aerial_won": 0.9558,
                "total_shots": 0.6059,
                "rating": 6.8212,
                "minutes": 86.62,
                "total_pass": 32.0595,
                "accurate_pass": 26.1824,
                "duels_won": 4.7985,
                "total_long_balls": 4.3151,
                "accurate_long_balls": 1.5604,
                "total_own_half_passes": 16.5116,
                "accurate_own_half_passes": 14.8532,
                "total_opp_half_passes": 15.5478,
                "accurate_opp_half_passes": 11.3292,
                "crosses_total": 1.403,
                "crosses_accurate": 0.2432,
                "touches": 52.4245,
                "possession_lost": 10.0274,
                "dispossessed": 0.5687,
                "duels_lost": 3.7967,
                "aerial_lost": 1.091,
                "total_contest": 1.1247,
                "won_contest": 0.3129,
                "ball_recovery": 3.9286,
                "challenges_lost": 0.539,
                "fouls": 0.8218,
                "fouls_drawn": 1.3,
                "blocks": 0.5287,
                "goals": 0.0696,
                "goal_rate": 0.0696,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0434,
                "expected_assists": 0.0377,
                "shots_on_target": 0.3599,
                "big_chances_created": 0.0917,
                "xgot": 0.049,
                "ball_carries": 12.1181,
                "total_progression": 49.8255,
                "progressive_carries": 1.1806,
                "key_pass": 0.2194,
                "shots_off_target": 0.2365
              },
              "params": {
                "blend_weight": 0.013,
                "history_matches": 45,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.9624,
                "prior_reliability": 0.2,
                "competition": "La Liga",
                "squad": "Alavés"
              },
              "changes": [
                {
                  "stat": "totalCross",
                  "before": 1.413,
                  "after": 1.403
                },
                {
                  "stat": "totalShots",
                  "before": 0.597,
                  "after": 0.6059
                },
                {
                  "stat": "interceptionWon",
                  "before": 1.0899,
                  "after": 1.0966
                },
                {
                  "stat": "fouls",
                  "before": 0.8157,
                  "after": 0.8218
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 1.0966,
                "tackles": 2.1337,
                "tackles_won": 1.3854,
                "clearances": 2.9829,
                "aerial_won": 0.9558,
                "total_shots": 0.6059,
                "rating": 6.8212,
                "minutes": 86.62,
                "total_pass": 32.0595,
                "accurate_pass": 26.1824,
                "duels_won": 4.7985,
                "total_long_balls": 4.3151,
                "accurate_long_balls": 1.5604,
                "total_own_half_passes": 16.5116,
                "accurate_own_half_passes": 14.8532,
                "total_opp_half_passes": 15.5478,
                "accurate_opp_half_passes": 11.3292,
                "crosses_total": 1.403,
                "crosses_accurate": 0.2432,
                "touches": 52.4245,
                "possession_lost": 10.0274,
                "dispossessed": 0.5687,
                "duels_lost": 3.7967,
                "aerial_lost": 1.091,
                "total_contest": 1.1247,
                "won_contest": 0.3129,
                "ball_recovery": 3.9286,
                "challenges_lost": 0.539,
                "fouls": 0.8218,
                "fouls_drawn": 1.3,
                "blocks": 0.5287,
                "goals": 0.0696,
                "goal_rate": 0.0696,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0434,
                "expected_assists": 0.0377,
                "shots_on_target": 0.3599,
                "big_chances_created": 0.0917,
                "xgot": 0.049,
                "ball_carries": 12.1181,
                "total_progression": 49.8255,
                "progressive_carries": 1.1806,
                "key_pass": 0.2194,
                "shots_off_target": 0.2365
              },
              "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.0966,
                "tackles": 2.1337,
                "tackles_won": 1.3854,
                "clearances": 2.9829,
                "aerial_won": 0.9558,
                "total_shots": 0.6059,
                "rating": 6.8212,
                "minutes": 86.62,
                "total_pass": 32.0595,
                "accurate_pass": 26.1824,
                "duels_won": 4.7985,
                "total_long_balls": 4.3151,
                "accurate_long_balls": 1.5604,
                "total_own_half_passes": 16.5116,
                "accurate_own_half_passes": 14.8532,
                "total_opp_half_passes": 15.5478,
                "accurate_opp_half_passes": 11.3292,
                "crosses_total": 1.403,
                "crosses_accurate": 0.2432,
                "touches": 52.4245,
                "possession_lost": 10.0274,
                "dispossessed": 0.5687,
                "duels_lost": 3.7967,
                "aerial_lost": 1.091,
                "total_contest": 1.1247,
                "won_contest": 0.3129,
                "ball_recovery": 3.9286,
                "challenges_lost": 0.539,
                "fouls": 0.8218,
                "fouls_drawn": 1.3,
                "blocks": 0.5287,
                "goals": 0.0696,
                "goal_rate": 0.0696,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0434,
                "expected_assists": 0.0377,
                "shots_on_target": 0.3599,
                "big_chances_created": 0.0917,
                "xgot": 0.049,
                "ball_carries": 12.1181,
                "total_progression": 49.8255,
                "progressive_carries": 1.1806,
                "key_pass": 0.2194,
                "shots_off_target": 0.2365,
                "opponent_faced": "Rafa Garrido",
                "matchup_zone": "Left Wingback vs Right Back — Overlapping Run",
                "antagonist_source": "attacking_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Rafa Garrido",
                  "matchup_zone": "Left Wingback vs Right Back — Overlapping Run"
                }
              }
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "interceptions": 1.0966,
                "tackles": 2.1337,
                "tackles_won": 1.3854,
                "clearances": 2.9829,
                "aerial_won": 0.9558,
                "total_shots": 0.6059,
                "rating": 6.8212,
                "minutes": 86.62,
                "total_pass": 32.0595,
                "accurate_pass": 26.1824,
                "duels_won": 4.7985,
                "total_long_balls": 4.3151,
                "accurate_long_balls": 1.5604,
                "total_own_half_passes": 16.5116,
                "accurate_own_half_passes": 14.8532,
                "total_opp_half_passes": 15.5478,
                "accurate_opp_half_passes": 11.3292,
                "crosses_total": 1.403,
                "crosses_accurate": 0.2432,
                "touches": 52.4245,
                "possession_lost": 10.0274,
                "dispossessed": 0.5687,
                "duels_lost": 3.7967,
                "aerial_lost": 1.091,
                "total_contest": 1.1247,
                "won_contest": 0.3129,
                "ball_recovery": 3.9286,
                "challenges_lost": 0.539,
                "fouls": 0.8218,
                "fouls_drawn": 1.3,
                "blocks": 0.5287,
                "goal_rate": 0.0696,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0434,
                "expected_assists": 0.0377,
                "shots_on_target": 0.3599,
                "big_chances_created": 0.0917,
                "xgot": 0.049,
                "ball_carries": 12.1181,
                "total_progression": 49.8255,
                "progressive_carries": 1.1806,
                "key_pass": 0.2194,
                "shots_off_target": 0.2365,
                "opponent_faced": "Rafa Garrido",
                "matchup_zone": "Left Wingback vs Right Back — Overlapping Run",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "scoreline_reset": true,
                "team_goals": 1
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.26 (squad xG sum 1.2639, xG scale 0.9946, xA scale 1.0687, team xA 0.82 = 0.65 x lambda)",
              "stats": {
                "interceptions": 1.0966,
                "tackles": 2.1337,
                "tackles_won": 1.3854,
                "clearances": 2.9829,
                "aerial_won": 0.9558,
                "total_shots": 0.6059,
                "rating": 6.8212,
                "minutes": 86.62,
                "total_pass": 32.0595,
                "accurate_pass": 26.1824,
                "duels_won": 4.7985,
                "total_long_balls": 4.3151,
                "accurate_long_balls": 1.5604,
                "total_own_half_passes": 16.5116,
                "accurate_own_half_passes": 14.8532,
                "total_opp_half_passes": 15.5478,
                "accurate_opp_half_passes": 11.3292,
                "crosses_total": 1.403,
                "crosses_accurate": 0.2432,
                "touches": 52.4245,
                "possession_lost": 10.0274,
                "dispossessed": 0.5687,
                "duels_lost": 3.7967,
                "aerial_lost": 1.091,
                "total_contest": 1.1247,
                "won_contest": 0.3129,
                "ball_recovery": 3.9286,
                "challenges_lost": 0.539,
                "fouls": 0.8218,
                "fouls_drawn": 1.3,
                "blocks": 0.5287,
                "goal_rate": 0.0696,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0432,
                "expected_assists": 0.0403,
                "shots_on_target": 0.3599,
                "big_chances_created": 0.0917,
                "xgot": 0.0487,
                "ball_carries": 12.1181,
                "total_progression": 49.8255,
                "progressive_carries": 1.1806,
                "key_pass": 0.2194,
                "shots_off_target": 0.2365,
                "opponent_faced": "Rafa Garrido",
                "matchup_zone": "Left Wingback vs Right Back — Overlapping Run",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 1.257,
                "squad_xg_sum": 1.2639,
                "squad_xa_sum": 0.7645,
                "team_expected_assists": 0.817,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.9946,
                "xa_scale": 1.0687,
                "opponent_lambda": 0.869,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              }
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 77.0)",
              "stats": {
                "interceptions": 1.0966,
                "tackles": 2.1337,
                "tackles_won": 1.3854,
                "clearances": 2.9829,
                "aerial_won": 0.9558,
                "total_shots": 0.6059,
                "rating": 6.8212,
                "minutes": 86.62,
                "total_pass": 32.0595,
                "accurate_pass": 26.1824,
                "duels_won": 4.7985,
                "total_long_balls": 4.3151,
                "accurate_long_balls": 1.5604,
                "total_own_half_passes": 16.5116,
                "accurate_own_half_passes": 14.8532,
                "total_opp_half_passes": 15.5478,
                "accurate_opp_half_passes": 11.3292,
                "crosses_total": 1.403,
                "crosses_accurate": 0.2432,
                "touches": 52.4245,
                "possession_lost": 10.0274,
                "dispossessed": 0.5687,
                "duels_lost": 3.7967,
                "aerial_lost": 1.091,
                "total_contest": 1.1247,
                "won_contest": 0.3129,
                "ball_recovery": 3.9286,
                "challenges_lost": 0.539,
                "fouls": 0.8218,
                "fouls_drawn": 1.3,
                "blocks": 0.5287,
                "goal_rate": 0.0696,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0432,
                "expected_assists": 0.0403,
                "shots_on_target": 0.3599,
                "big_chances_created": 0.0917,
                "xgot": 0.0487,
                "ball_carries": 12.1181,
                "total_progression": 49.8255,
                "progressive_carries": 1.1806,
                "key_pass": 0.2194,
                "shots_off_target": 0.2365,
                "opponent_faced": "Rafa Garrido",
                "matchup_zone": "Left Wingback vs Right Back — Overlapping Run",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 0.8,
                "fifa_overall": 77.0
              },
              "params": {
                "match_squad_rank": 7,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 2146,
                "fifa_rank": 1557.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 77.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "interceptions": 1.0966,
                "tackles": 2.1337,
                "tackles_won": 1.3854,
                "clearances": 2.9829,
                "aerial_won": 0.9558,
                "total_shots": 0.6059,
                "rating": 6.8212,
                "minutes": 86.62,
                "total_pass": 32.0595,
                "accurate_pass": 26.1824,
                "duels_won": 4.7985,
                "total_long_balls": 4.3151,
                "accurate_long_balls": 1.5604,
                "total_own_half_passes": 16.5116,
                "accurate_own_half_passes": 14.8532,
                "total_opp_half_passes": 15.5478,
                "accurate_opp_half_passes": 11.3292,
                "crosses_total": 1.403,
                "crosses_accurate": 0.2432,
                "touches": 52.4245,
                "possession_lost": 10.0274,
                "dispossessed": 0.5687,
                "duels_lost": 3.7967,
                "aerial_lost": 1.091,
                "total_contest": 1.1247,
                "won_contest": 0.3129,
                "ball_recovery": 3.9286,
                "challenges_lost": 0.539,
                "fouls": 0.8218,
                "fouls_drawn": 1.3,
                "blocks": 0.5287,
                "goal_rate": 0.0696,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0432,
                "expected_assists": 0.0403,
                "shots_on_target": 0.3599,
                "big_chances_created": 0.0917,
                "xgot": 0.0487,
                "ball_carries": 12.1181,
                "total_progression": 49.8255,
                "progressive_carries": 1.1806,
                "key_pass": 0.2194,
                "shots_off_target": 0.2365,
                "opponent_faced": "Rafa Garrido",
                "matchup_zone": "Left Wingback vs Right Back — Overlapping Run",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0423,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 0.8,
                "fifa_overall": 77.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0423,
                "goal_rate": 0.0696,
                "scorer_weight": 0.054,
                "squad_weight_total": 1.3303,
                "weight_share": 0.0406,
                "finishing_factor": 1.25,
                "appearance_weight": 1.0,
                "weight_rank": 9,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lucas Boyé",
                    "weight": 0.3448,
                    "already": 0,
                    "effective_weight": 0.3448,
                    "runner_up": "Mariano Díaz",
                    "runner_up_effective_weight": 0.2151
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "interceptions": 1.0966,
                "tackles": 2.1337,
                "tackles_won": 1.3854,
                "clearances": 2.9829,
                "aerial_won": 0.9558,
                "total_shots": 0.6059,
                "rating": 6.8212,
                "minutes": 86.62,
                "total_pass": 32.0595,
                "accurate_pass": 26.1824,
                "duels_won": 4.7985,
                "total_long_balls": 4.3151,
                "accurate_long_balls": 1.5604,
                "total_own_half_passes": 16.5116,
                "accurate_own_half_passes": 14.8532,
                "total_opp_half_passes": 15.5478,
                "accurate_opp_half_passes": 11.3292,
                "crosses_total": 1.403,
                "crosses_accurate": 0.2432,
                "touches": 52.4245,
                "possession_lost": 10.0274,
                "dispossessed": 0.5687,
                "duels_lost": 3.7967,
                "aerial_lost": 1.091,
                "total_contest": 1.1247,
                "won_contest": 0.3129,
                "ball_recovery": 3.9286,
                "challenges_lost": 0.539,
                "fouls": 0.8218,
                "fouls_drawn": 1.3,
                "blocks": 0.5287,
                "goal_rate": 0.0696,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0432,
                "expected_assists": 0.0403,
                "shots_on_target": 0.3599,
                "big_chances_created": 0.0917,
                "xgot": 0.0487,
                "ball_carries": 12.1181,
                "total_progression": 49.8255,
                "progressive_carries": 1.1806,
                "key_pass": 0.2194,
                "shots_off_target": 0.2365,
                "opponent_faced": "Rafa Garrido",
                "matchup_zone": "Left Wingback vs Right Back — Overlapping Run",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0423,
                "projected_assists": 0,
                "assist_probability": 0.0395,
                "finishing_factor": 1.25,
                "creation_factor": 0.8,
                "fifa_overall": 77.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0395,
                "assist_rate": 0.0,
                "provider_weight": 0.0322,
                "squad_weight_total": 0.7993,
                "weight_share": 0.0403,
                "creation_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 9,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Ángel Pérez",
                    "weight": 0.1707,
                    "already": 0,
                    "effective_weight": 0.1707,
                    "runner_up": "Denis Suárez",
                    "runner_up_effective_weight": 0.1469,
                    "blocked_own_goal": [
                      "Lucas Boyé"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Ángel Pérez": {
          "player_id": 1513222,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 7,
          "height": 183,
          "market_value": 4600000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.1586,
            "assist_rate": 0.1635,
            "assists": 1,
            "expected_goals": 0.1683,
            "goal_rate": 0.1842,
            "goals": 0,
            "shots_on_target": 1,
            "total_shots": 2,
            "rating": 6.8662,
            "minutes": 81,
            "total_pass": 22,
            "accurate_pass": 17,
            "duels_won": 3,
            "total_long_balls": 3,
            "accurate_long_balls": 1,
            "total_own_half_passes": 7,
            "accurate_own_half_passes": 6,
            "total_opp_half_passes": 15,
            "accurate_opp_half_passes": 11,
            "crosses_total": 4,
            "crosses_accurate": 1,
            "touches": 42,
            "possession_lost": 12.6349,
            "dispossessed": 0.5512,
            "duels_lost": 4,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 1,
            "tackles_won": 1,
            "tackles": 1,
            "clearances": 1,
            "total_contest": 3,
            "won_contest": 1,
            "challenges_lost": 1,
            "fouls": 1,
            "fouls_drawn": 1,
            "blocks": 0,
            "big_chances_created": 1,
            "big_chances_missed": 0,
            "xgot": 0.1482,
            "ball_carries": 11,
            "total_progression": 58,
            "progressive_carries": 3,
            "shots_off_target": 1,
            "duel_xg_multiplier": 1.0584,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.8,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.46,
            "pressing_faced": "LOW",
            "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
            "numerical_situation": "1v1",
            "opponent_defenders": "Dani Lorenzo",
            "opponent_faced": "Dani Lorenzo",
            "antagonist_source": "attacking_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.1549,
            "projected_assists": 1,
            "assist_probability": 0.1467,
            "finishing_factor": 1.0684,
            "creation_factor": 1.0761,
            "fifa_overall": 72.0
          },
          "latest_10_games": [
            {
              "match_id": 16421056,
              "match_date": "2026-10-10",
              "home_team": "Deportivo Alavés",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 61,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1258,
                "expected_assists": 0.0104,
                "total_shots": 3,
                "shots_on_target": 1,
                "shots_off_target": 2,
                "total_pass": 17,
                "accurate_pass": 14,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "duels_won": 2,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416337,
              "match_date": "2026-09-19",
              "home_team": "Athletic Club",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 15,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.1035,
                "total_shots": 0,
                "total_pass": 2,
                "clearances": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416334,
              "match_date": "2026-09-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Valencia",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Valencia",
              "stats": {
                "minutes": 85,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0565,
                "expected_assists": 0.1624,
                "total_shots": 2,
                "shots_on_target": 1,
                "total_pass": 15,
                "accurate_pass": 13,
                "key_pass": 2,
                "interceptions": 1,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416328,
              "match_date": "2026-09-12",
              "home_team": "Real Racing Club",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 86,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.4533,
                "expected_assists": 0.196,
                "total_shots": 2,
                "shots_on_target": 1,
                "total_pass": 32,
                "accurate_pass": 20,
                "key_pass": 2,
                "tackles": 3,
                "tackles_won": 2,
                "interceptions": 1,
                "duels_won": 4,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416318,
              "match_date": "2026-09-06",
              "home_team": "Deportivo Alavés",
              "away_team": "Osasuna",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 90,
                "rating": 8.5,
                "assist_rate": 2.0,
                "assists": 2,
                "expected_goals": 0.1634,
                "expected_assists": 0.4685,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 30,
                "accurate_pass": 24,
                "key_pass": 3,
                "aerial_won": 1,
                "duels_won": 6,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416290,
              "match_date": "2026-08-28",
              "home_team": "Deportivo Alavés",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 71,
                "rating": 7.5,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.1179,
                "expected_assists": 0.3338,
                "total_shots": 2,
                "shots_off_target": 2,
                "total_pass": 7,
                "accurate_pass": 5,
                "key_pass": 1,
                "tackles": 1,
                "interceptions": 2,
                "clearances": 2,
                "duels_won": 3,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416292,
              "match_date": "2026-08-20",
              "home_team": "Rayo Vallecano",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 80,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0598,
                "expected_assists": 0.3395,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 17,
                "accurate_pass": 12,
                "key_pass": 2,
                "duels_won": 3,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421047,
              "match_date": "2026-08-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Getafe",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Getafe",
              "stats": {
                "minutes": 65,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0715,
                "expected_assists": 0.0587,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 11,
                "accurate_pass": 9,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 2,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083706,
              "match_date": "2026-05-23",
              "home_team": "Deportivo Alavés",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0211,
                "expected_assists": 0.1541,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 31,
                "accurate_pass": 27,
                "key_pass": 2,
                "interceptions": 1,
                "duels_won": 3,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083692,
              "match_date": "2026-05-17",
              "home_team": "Real Oviedo",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Real Oviedo",
              "stats": {
                "minutes": 90,
                "rating": 7.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.092,
                "expected_assists": 0.006,
                "total_shots": 2,
                "shots_off_target": 1,
                "total_pass": 14,
                "accurate_pass": 10,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 2,
                "duels_won": 5,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 4209,
            "combined_rank_score": 2239.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 236.0,
            "sofascore_rating": 7.1333,
            "sofascore_appearances": 3.0,
            "fifa_rank": 4243.0,
            "fifa_overall": 72.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 4,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.8662,
            "source_file": "data/player_rankings.csv",
            "player_name": "Ángel Pérez",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Toti",
                  "ranking": 4204
                },
                {
                  "player_name": "Tristan Crama",
                  "ranking": 4205
                },
                {
                  "player_name": "Léo Scienza",
                  "ranking": 4206
                },
                {
                  "player_name": "Iván Villar",
                  "ranking": 4207
                },
                {
                  "player_name": "Arthur Avom Ebong",
                  "ranking": 4208
                }
              ],
              "lower": [
                {
                  "player_name": "Salomón Rondón",
                  "ranking": 4210
                },
                {
                  "player_name": "Adrián Niño",
                  "ranking": 4211
                },
                {
                  "player_name": "Anthony Lopes",
                  "ranking": 4212
                },
                {
                  "player_name": "Thorgan Hazard",
                  "ranking": 4213
                },
                {
                  "player_name": "Kenny Lala",
                  "ranking": 4214
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.774,
          "history_matches": 24,
          "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",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "rating",
              "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",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 24,
            "data_confidence": 0.774,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.9975,
            "fbref_prior_metrics": {
              "squad": "Alavés",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "minutes": 213.0,
              "goals_per90": 0.0,
              "assists_per90": 0.4166666666666667,
              "shots_per90": 1.69,
              "shots_on_target_pct": 25.0,
              "prior_reliability": 0.16
            },
            "rationale": "XGBoost regressor (M_service) evaluated 24 historical appearances across 8 target models; FBref 2026-2027 prior blended (La Liga, Alavés, rel: 0.16, gls/90: 0.0, ast/90: 0.4166666666666667)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 1.2194,
                "expected_assists": 0.1487,
                "assists": 0.1601,
                "assist_rate": 0.1601,
                "expected_goals": 0.1603,
                "goals": 0.1776,
                "goal_rate": 0.1776,
                "shots_on_target": 0.6132,
                "total_shots": 1.6496,
                "rating": 6.8662,
                "minutes": 80.84,
                "total_pass": 21.9762,
                "accurate_pass": 16.6582,
                "duels_won": 3.5056,
                "total_long_balls": 3.0086,
                "accurate_long_balls": 1.4467,
                "total_own_half_passes": 7.0517,
                "accurate_own_half_passes": 6.0183,
                "total_opp_half_passes": 14.9245,
                "accurate_opp_half_passes": 10.64,
                "crosses_total": 3.9237,
                "crosses_accurate": 1.1244,
                "touches": 42.3465,
                "possession_lost": 12.6666,
                "dispossessed": 0.5526,
                "duels_lost": 3.9518,
                "aerial_won": 0.263,
                "aerial_lost": 0.124,
                "interceptions": 0.8431,
                "tackles_won": 0.6206,
                "tackles": 0.9111,
                "clearances": 0.8327,
                "total_contest": 3.1638,
                "won_contest": 1.4295,
                "challenges_lost": 0.608,
                "fouls": 0.9412,
                "fouls_drawn": 0.9019,
                "blocks": 0.3185,
                "big_chances_created": 0.6095,
                "big_chances_missed": 0.1477,
                "xgot": 0.1412,
                "ball_carries": 10.5601,
                "total_progression": 58.2345,
                "progressive_carries": 2.7272,
                "shots_off_target": 1.0364
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 7,
                  "trained_at": "2026-10-23T10:05:23.571433+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 903,
                    "rows": 24475
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-10",
                    "opponent": "Atlético Madrid",
                    "minutes": 61.0,
                    "is_starting": true,
                    "weight": 0.1531,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Athletic Club",
                    "minutes": 15.0,
                    "is_starting": false,
                    "weight": 0.1301,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-09-15",
                    "opponent": "Valencia",
                    "minutes": 85.0,
                    "is_starting": true,
                    "weight": 0.1106,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Real Racing Club",
                    "minutes": 86.0,
                    "is_starting": true,
                    "weight": 0.094,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Osasuna",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0799,
                    "rating": 8.5
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Villarreal",
                    "minutes": 71.0,
                    "is_starting": true,
                    "weight": 0.0679,
                    "rating": 7.5
                  },
                  {
                    "match_date": "2026-08-20",
                    "opponent": "Rayo Vallecano",
                    "minutes": 80.0,
                    "is_starting": true,
                    "weight": 0.0577,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-08-15",
                    "opponent": "Getafe",
                    "minutes": 65.0,
                    "is_starting": true,
                    "weight": 0.0491,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-05-23",
                    "opponent": "Rayo Vallecano",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0417,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-05-17",
                    "opponent": "Real Oviedo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0355,
                    "rating": 7.2
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 1.0,
                  "creative_index": 0.6046,
                  "totalShots": 1.4467,
                  "expectedGoals": 0.1107,
                  "expectedAssists": 0.1689,
                  "onTargetScoringAttempt": 0.5487
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 1.2194335460662842,
                    "model_output": 1.2194,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1647
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1377
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0663
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0524
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0316
                      }
                    ],
                    "decomposition": {
                      "base": 0.8945,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.107
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.1069
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0806
                        },
                        {
                          "name": "totalCross",
                          "contribution": 0.0791
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0596
                        }
                      ],
                      "others": 0.0109,
                      "total": 1.2194,
                      "log_link": true,
                      "margin_base": -0.111507,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.112956
                        },
                        {
                          "name": "creative_index",
                          "margin": 0.101383
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.070227
                        },
                        {
                          "name": "totalCross",
                          "margin": 0.064434
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.048114
                        }
                      ],
                      "others_margin": 0.009007
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.148724764585495,
                    "model_output": 0.1487,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1545
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1048
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.1021
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0476
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0472
                      }
                    ],
                    "decomposition": {
                      "base": 0.0859,
                      "items": [
                        {
                          "name": "totalCross",
                          "contribution": 0.0115
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0125
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0109
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0063
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0064
                        }
                      ],
                      "others": 0.0152,
                      "total": 0.1487,
                      "log_link": true,
                      "margin_base": -2.454719,
                      "item_margins": [
                        {
                          "name": "totalCross",
                          "margin": 0.12539
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.120819
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.094886
                        },
                        {
                          "name": "creative_index",
                          "margin": 0.051208
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.049251
                        }
                      ],
                      "others_margin": 0.107508
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.16014868021011353,
                    "model_output": 0.1601,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.0619
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0395
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0343
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0335
                      }
                    ],
                    "decomposition": {
                      "base": 0.0874,
                      "items": [
                        {
                          "name": "creative_index",
                          "contribution": 0.0119
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": 0.0106
                        },
                        {
                          "name": "totalCross",
                          "contribution": 0.0117
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0103
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0091
                        }
                      ],
                      "others": 0.0191,
                      "total": 0.1601,
                      "log_link": true,
                      "margin_base": -2.437263,
                      "item_margins": [
                        {
                          "name": "creative_index",
                          "margin": 0.12717
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": 0.10107
                        },
                        {
                          "name": "totalCross",
                          "margin": 0.101008
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.081462
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.066928
                        }
                      ],
                      "others_margin": 0.127971
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.1603461056947708,
                    "model_output": 0.1603,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedGoals",
                        "importance": 0.134
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.074
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0705
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.039
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0273
                      }
                    ],
                    "decomposition": {
                      "base": 0.094,
                      "items": [
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0211
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0133
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0118
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0093
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.0048
                        }
                      ],
                      "others": 0.006,
                      "total": 0.1603,
                      "log_link": true,
                      "margin_base": -2.364919,
                      "item_margins": [
                        {
                          "name": "expectedGoals",
                          "margin": 0.202625
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.109514
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.087776
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.063935
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": 0.031862
                        }
                      ],
                      "others_margin": 0.038786
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.1775989532470703,
                    "model_output": 0.1776,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0974
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0527
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0513
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0365
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.03
                      }
                    ],
                    "decomposition": {
                      "base": 0.0993,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0257
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0146
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0151
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0113
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0103
                        }
                      ],
                      "others": 0.0219,
                      "total": 0.1776,
                      "log_link": true,
                      "margin_base": -2.309444,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.230491
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.110509
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.102835
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.070548
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.063987
                        }
                      ],
                      "others_margin": 0.130823
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.6131893396377563,
                    "model_output": 0.6132,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1106
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0885
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0762
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0292
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0279
                      }
                    ],
                    "decomposition": {
                      "base": 0.326,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0665
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0581
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0622
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0328
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": 0.0184
                        }
                      ],
                      "others": 0.0492,
                      "total": 0.6132,
                      "log_link": true,
                      "margin_base": -1.120773,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.18562
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.138037
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.129268
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.062043
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": 0.033213
                        }
                      ],
                      "others_margin": 0.08351
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.6496115922927856,
                    "model_output": 1.6496,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1261
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1167
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0633
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0419
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.9969,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.3074
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1653
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.061
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.057
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.05
                        }
                      ],
                      "others": 0.112,
                      "total": 1.6496,
                      "log_link": false,
                      "margin_base": 0.996896,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.30737
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.165342
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": 0.060988
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.057012
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.049969
                        }
                      ],
                      "others_margin": 0.111972
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.866179943084717,
                    "model_output": 6.8662,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "rating",
                        "importance": 0.0947
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0836
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0491
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0438
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.036
                      }
                    ],
                    "decomposition": {
                      "base": 6.8561,
                      "items": [
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0266
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.023
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0212
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0145
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.0111
                        }
                      ],
                      "others": 0.0315,
                      "total": 6.8662,
                      "log_link": false,
                      "margin_base": 6.856052,
                      "item_margins": [
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.026568
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.023048
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.0212
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.014456
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.011078
                        }
                      ],
                      "others_margin": 0.031469
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 24,
                  "role_matches": 21,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "role_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9975, quality 0.457)",
              "stats": {
                "key_pass": 1.2164,
                "expected_assists": 0.1484,
                "assists": 0.1597,
                "assist_rate": 0.1597,
                "expected_goals": 0.1599,
                "goals": 0.1772,
                "goal_rate": 0.1772,
                "shots_on_target": 0.6117,
                "total_shots": 1.6455,
                "rating": 6.8662,
                "minutes": 80.84,
                "total_pass": 21.9213,
                "accurate_pass": 16.6166,
                "duels_won": 3.4968,
                "total_long_balls": 3.0011,
                "accurate_long_balls": 1.4431,
                "total_own_half_passes": 7.0341,
                "accurate_own_half_passes": 6.0033,
                "total_opp_half_passes": 14.8872,
                "accurate_opp_half_passes": 10.6134,
                "crosses_total": 3.9139,
                "crosses_accurate": 1.1216,
                "touches": 42.2406,
                "possession_lost": 12.6349,
                "dispossessed": 0.5512,
                "duels_lost": 3.9419,
                "aerial_won": 0.2623,
                "aerial_lost": 0.1237,
                "interceptions": 0.841,
                "tackles_won": 0.619,
                "tackles": 0.9088,
                "clearances": 0.8306,
                "total_contest": 3.1559,
                "won_contest": 1.4259,
                "challenges_lost": 0.6065,
                "fouls": 0.9388,
                "fouls_drawn": 0.8996,
                "blocks": 0.3177,
                "big_chances_created": 0.608,
                "big_chances_missed": 0.1473,
                "xgot": 0.1408,
                "ball_carries": 10.5337,
                "total_progression": 58.0889,
                "progressive_carries": 2.7204,
                "shots_off_target": 1.0338
              },
              "params": {
                "market_value_eur": 4600000,
                "quality_factor": 0.4572,
                "boost_factor": 0.9975,
                "reference_quality": 0.505,
                "history_matches": 24,
                "history_shrink": 0.1724,
                "market_value_known": true
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0179)",
              "stats": {
                "key_pass": 1.2164,
                "expected_assists": 0.1484,
                "assists": 0.1635,
                "assist_rate": 0.1635,
                "expected_goals": 0.1599,
                "goals": 0.174,
                "goal_rate": 0.174,
                "shots_on_target": 0.6075,
                "total_shots": 1.6432,
                "rating": 6.8662,
                "minutes": 80.84,
                "total_pass": 21.9213,
                "accurate_pass": 16.6166,
                "duels_won": 3.4968,
                "total_long_balls": 3.0011,
                "accurate_long_balls": 1.4431,
                "total_own_half_passes": 7.0341,
                "accurate_own_half_passes": 6.0033,
                "total_opp_half_passes": 14.8872,
                "accurate_opp_half_passes": 10.6134,
                "crosses_total": 3.8974,
                "crosses_accurate": 1.1216,
                "touches": 42.2406,
                "possession_lost": 12.6349,
                "dispossessed": 0.5512,
                "duels_lost": 3.9419,
                "aerial_won": 0.2623,
                "aerial_lost": 0.1237,
                "interceptions": 0.8461,
                "tackles_won": 0.6146,
                "tackles": 0.9088,
                "clearances": 0.8306,
                "total_contest": 3.1559,
                "won_contest": 1.4259,
                "challenges_lost": 0.6065,
                "fouls": 0.9354,
                "fouls_drawn": 0.8902,
                "blocks": 0.3177,
                "big_chances_created": 0.608,
                "big_chances_missed": 0.1473,
                "xgot": 0.1408,
                "ball_carries": 10.5337,
                "total_progression": 58.0889,
                "progressive_carries": 2.7204,
                "shots_off_target": 1.0338
              },
              "params": {
                "blend_weight": 0.0179,
                "history_matches": 24,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.8982,
                "prior_reliability": 0.16,
                "competition": "La Liga",
                "squad": "Alavés"
              },
              "changes": [
                {
                  "stat": "totalCross",
                  "before": 3.9139,
                  "after": 3.8974
                },
                {
                  "stat": "wasFouled",
                  "before": 0.8996,
                  "after": 0.8902
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.841,
                  "after": 0.8461
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1.2164,
                "expected_assists": 0.1484,
                "assists": 0.1635,
                "assist_rate": 0.1635,
                "expected_goals": 0.1599,
                "goals": 0.174,
                "goal_rate": 0.174,
                "shots_on_target": 0.6075,
                "total_shots": 1.6432,
                "rating": 6.8662,
                "minutes": 80.84,
                "total_pass": 21.9213,
                "accurate_pass": 16.6166,
                "duels_won": 3.4968,
                "total_long_balls": 3.0011,
                "accurate_long_balls": 1.4431,
                "total_own_half_passes": 7.0341,
                "accurate_own_half_passes": 6.0033,
                "total_opp_half_passes": 14.8872,
                "accurate_opp_half_passes": 10.6134,
                "crosses_total": 3.8974,
                "crosses_accurate": 1.1216,
                "touches": 42.2406,
                "possession_lost": 12.6349,
                "dispossessed": 0.5512,
                "duels_lost": 3.9419,
                "aerial_won": 0.2623,
                "aerial_lost": 0.1237,
                "interceptions": 0.8461,
                "tackles_won": 0.6146,
                "tackles": 0.9088,
                "clearances": 0.8306,
                "total_contest": 3.1559,
                "won_contest": 1.4259,
                "challenges_lost": 0.6065,
                "fouls": 0.9354,
                "fouls_drawn": 0.8902,
                "blocks": 0.3177,
                "big_chances_created": 0.608,
                "big_chances_missed": 0.1473,
                "xgot": 0.1408,
                "ball_carries": 10.5337,
                "total_progression": 58.0889,
                "progressive_carries": 2.7204,
                "shots_off_target": 1.0338
              },
              "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.2164,
                "expected_assists": 0.1484,
                "assists": 0.1635,
                "assist_rate": 0.1635,
                "expected_goals": 0.1692,
                "goals": 0.1842,
                "goal_rate": 0.1842,
                "shots_on_target": 0.643,
                "total_shots": 1.7392,
                "rating": 6.8662,
                "minutes": 80.84,
                "total_pass": 21.9213,
                "accurate_pass": 16.6166,
                "duels_won": 3.4968,
                "total_long_balls": 3.0011,
                "accurate_long_balls": 1.4431,
                "total_own_half_passes": 7.0341,
                "accurate_own_half_passes": 6.0033,
                "total_opp_half_passes": 14.8872,
                "accurate_opp_half_passes": 10.6134,
                "crosses_total": 3.8974,
                "crosses_accurate": 1.1216,
                "touches": 42.2406,
                "possession_lost": 12.6349,
                "dispossessed": 0.5512,
                "duels_lost": 3.9419,
                "aerial_won": 1.1,
                "aerial_lost": 0.1237,
                "interceptions": 0.8461,
                "tackles_won": 0.6146,
                "tackles": 0.9088,
                "clearances": 0.8306,
                "total_contest": 3.1559,
                "won_contest": 1.4259,
                "challenges_lost": 0.6065,
                "fouls": 0.9354,
                "fouls_drawn": 0.8902,
                "blocks": 0.3177,
                "big_chances_created": 0.608,
                "big_chances_missed": 0.1559,
                "xgot": 0.149,
                "ball_carries": 10.5337,
                "total_progression": 58.0889,
                "progressive_carries": 2.7204,
                "shots_off_target": 1.0942,
                "duel_xg_multiplier": 1.0584,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.46,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Dani Lorenzo",
                "opponent_faced": "Dani Lorenzo",
                "antagonist_source": "attacking_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Dani Lorenzo",
                  "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                  "duel_win_rate": 0.46,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v1",
                  "xg_multiplier": 1.0584,
                  "skill_edge": 0.0118,
                  "height_edge": 0.028,
                  "attacker_skill": 0.4635,
                  "defender_skill": 0.4374,
                  "attacker_role": "CM",
                  "attacker_mv_price_index": 0.9,
                  "defender_adjusted_parts": [
                    {
                      "player": "Dani Lorenzo",
                      "market_value": 2300000,
                      "role": "CM",
                      "price_index": 0.9,
                      "adjusted_quality": 0.4374
                    }
                  ],
                  "xg_override": 0.1692
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.2623,
                  "after": 1.1
                },
                {
                  "stat": "totalShots",
                  "before": 1.6432,
                  "after": 1.7392
                },
                {
                  "stat": "shotOffTarget",
                  "before": 1.0338,
                  "after": 1.0942
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.6075,
                  "after": 0.643
                },
                {
                  "stat": "goals",
                  "before": 0.174,
                  "after": 0.1842
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.1599,
                  "after": 0.1692
                },
                {
                  "stat": "bigChanceMissed",
                  "before": 0.1473,
                  "after": 0.1559
                },
                {
                  "stat": "expectedGoalsOnTarget",
                  "before": 0.1408,
                  "after": 0.149
                }
              ]
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "key_pass": 1.2164,
                "expected_assists": 0.1484,
                "assist_rate": 0.1635,
                "assists": 0,
                "expected_goals": 0.1692,
                "goal_rate": 0.1842,
                "goals": 0,
                "shots_on_target": 0.643,
                "total_shots": 1.7392,
                "rating": 6.8662,
                "minutes": 80.84,
                "total_pass": 21.9213,
                "accurate_pass": 16.6166,
                "duels_won": 3.4968,
                "total_long_balls": 3.0011,
                "accurate_long_balls": 1.4431,
                "total_own_half_passes": 7.0341,
                "accurate_own_half_passes": 6.0033,
                "total_opp_half_passes": 14.8872,
                "accurate_opp_half_passes": 10.6134,
                "crosses_total": 3.8974,
                "crosses_accurate": 1.1216,
                "touches": 42.2406,
                "possession_lost": 12.6349,
                "dispossessed": 0.5512,
                "duels_lost": 3.9419,
                "aerial_won": 1.1,
                "aerial_lost": 0.1237,
                "interceptions": 0.8461,
                "tackles_won": 0.6146,
                "tackles": 0.9088,
                "clearances": 0.8306,
                "total_contest": 3.1559,
                "won_contest": 1.4259,
                "challenges_lost": 0.6065,
                "fouls": 0.9354,
                "fouls_drawn": 0.8902,
                "blocks": 0.3177,
                "big_chances_created": 0.608,
                "big_chances_missed": 0.1559,
                "xgot": 0.149,
                "ball_carries": 10.5337,
                "total_progression": 58.0889,
                "progressive_carries": 2.7204,
                "shots_off_target": 1.0942,
                "duel_xg_multiplier": 1.0584,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.46,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Dani Lorenzo",
                "opponent_faced": "Dani Lorenzo",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "scoreline_reset": true,
                "team_goals": 1
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.26 (squad xG sum 1.2639, xG scale 0.9946, xA scale 1.0687, team xA 0.82 = 0.65 x lambda)",
              "stats": {
                "key_pass": 1.2164,
                "expected_assists": 0.1586,
                "assist_rate": 0.1635,
                "assists": 0,
                "expected_goals": 0.1683,
                "goal_rate": 0.1842,
                "goals": 0,
                "shots_on_target": 0.643,
                "total_shots": 1.7392,
                "rating": 6.8662,
                "minutes": 80.84,
                "total_pass": 21.9213,
                "accurate_pass": 16.6166,
                "duels_won": 3.4968,
                "total_long_balls": 3.0011,
                "accurate_long_balls": 1.4431,
                "total_own_half_passes": 7.0341,
                "accurate_own_half_passes": 6.0033,
                "total_opp_half_passes": 14.8872,
                "accurate_opp_half_passes": 10.6134,
                "crosses_total": 3.8974,
                "crosses_accurate": 1.1216,
                "touches": 42.2406,
                "possession_lost": 12.6349,
                "dispossessed": 0.5512,
                "duels_lost": 3.9419,
                "aerial_won": 1.1,
                "aerial_lost": 0.1237,
                "interceptions": 0.8461,
                "tackles_won": 0.6146,
                "tackles": 0.9088,
                "clearances": 0.8306,
                "total_contest": 3.1559,
                "won_contest": 1.4259,
                "challenges_lost": 0.6065,
                "fouls": 0.9354,
                "fouls_drawn": 0.8902,
                "blocks": 0.3177,
                "big_chances_created": 0.608,
                "big_chances_missed": 0.1559,
                "xgot": 0.1482,
                "ball_carries": 10.5337,
                "total_progression": 58.0889,
                "progressive_carries": 2.7204,
                "shots_off_target": 1.0942,
                "duel_xg_multiplier": 1.0584,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.46,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Dani Lorenzo",
                "opponent_faced": "Dani Lorenzo",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0684,
                "creation_factor": 1.0761
              },
              "params": {
                "team_lambda": 1.257,
                "squad_xg_sum": 1.2639,
                "squad_xa_sum": 0.7645,
                "team_expected_assists": 0.817,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.9946,
                "xa_scale": 1.0687,
                "opponent_lambda": 0.869,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_assists",
                  "before": 0.1484,
                  "after": 0.1586
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 72.0)",
              "stats": {
                "key_pass": 1.2164,
                "expected_assists": 0.1586,
                "assist_rate": 0.1635,
                "assists": 0,
                "expected_goals": 0.1683,
                "goal_rate": 0.1842,
                "goals": 0,
                "shots_on_target": 0.643,
                "total_shots": 1.7392,
                "rating": 6.8662,
                "minutes": 80.84,
                "total_pass": 21.9213,
                "accurate_pass": 16.6166,
                "duels_won": 3.4968,
                "total_long_balls": 3.0011,
                "accurate_long_balls": 1.4431,
                "total_own_half_passes": 7.0341,
                "accurate_own_half_passes": 6.0033,
                "total_opp_half_passes": 14.8872,
                "accurate_opp_half_passes": 10.6134,
                "crosses_total": 3.8974,
                "crosses_accurate": 1.1216,
                "touches": 42.2406,
                "possession_lost": 12.6349,
                "dispossessed": 0.5512,
                "duels_lost": 3.9419,
                "aerial_won": 1.1,
                "aerial_lost": 0.1237,
                "interceptions": 0.8461,
                "tackles_won": 0.6146,
                "tackles": 0.9088,
                "clearances": 0.8306,
                "total_contest": 3.1559,
                "won_contest": 1.4259,
                "challenges_lost": 0.6065,
                "fouls": 0.9354,
                "fouls_drawn": 0.8902,
                "blocks": 0.3177,
                "big_chances_created": 0.608,
                "big_chances_missed": 0.1559,
                "xgot": 0.1482,
                "ball_carries": 10.5337,
                "total_progression": 58.0889,
                "progressive_carries": 2.7204,
                "shots_off_target": 1.0942,
                "duel_xg_multiplier": 1.0584,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.46,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Dani Lorenzo",
                "opponent_faced": "Dani Lorenzo",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0684,
                "creation_factor": 1.0761,
                "fifa_overall": 72.0
              },
              "params": {
                "match_squad_rank": 4,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 4209,
                "fifa_rank": 4243.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 72.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "key_pass": 1.2164,
                "expected_assists": 0.1586,
                "assist_rate": 0.1635,
                "assists": 0,
                "expected_goals": 0.1683,
                "goal_rate": 0.1842,
                "goals": 0,
                "shots_on_target": 0.643,
                "total_shots": 1.7392,
                "rating": 6.8662,
                "minutes": 80.84,
                "total_pass": 21.9213,
                "accurate_pass": 16.6166,
                "duels_won": 3.4968,
                "total_long_balls": 3.0011,
                "accurate_long_balls": 1.4431,
                "total_own_half_passes": 7.0341,
                "accurate_own_half_passes": 6.0033,
                "total_opp_half_passes": 14.8872,
                "accurate_opp_half_passes": 10.6134,
                "crosses_total": 3.8974,
                "crosses_accurate": 1.1216,
                "touches": 42.2406,
                "possession_lost": 12.6349,
                "dispossessed": 0.5512,
                "duels_lost": 3.9419,
                "aerial_won": 1.1,
                "aerial_lost": 0.1237,
                "interceptions": 0.8461,
                "tackles_won": 0.6146,
                "tackles": 0.9088,
                "clearances": 0.8306,
                "total_contest": 3.1559,
                "won_contest": 1.4259,
                "challenges_lost": 0.6065,
                "fouls": 0.9354,
                "fouls_drawn": 0.8902,
                "blocks": 0.3177,
                "big_chances_created": 0.608,
                "big_chances_missed": 0.1559,
                "xgot": 0.1482,
                "ball_carries": 10.5337,
                "total_progression": 58.0889,
                "progressive_carries": 2.7204,
                "shots_off_target": 1.0942,
                "duel_xg_multiplier": 1.0584,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.46,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Dani Lorenzo",
                "opponent_faced": "Dani Lorenzo",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.1549,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0684,
                "creation_factor": 1.0761,
                "fifa_overall": 72.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.1549,
                "goal_rate": 0.1842,
                "scorer_weight": 0.1798,
                "squad_weight_total": 1.3303,
                "weight_share": 0.1352,
                "finishing_factor": 1.0684,
                "appearance_weight": 1.0,
                "weight_rank": 3,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lucas Boyé",
                    "weight": 0.3448,
                    "already": 0,
                    "effective_weight": 0.3448,
                    "runner_up": "Mariano Díaz",
                    "runner_up_effective_weight": 0.2151
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "key_pass": 1.2164,
                "expected_assists": 0.1586,
                "assist_rate": 0.1635,
                "assists": 1,
                "expected_goals": 0.1683,
                "goal_rate": 0.1842,
                "goals": 0,
                "shots_on_target": 0.643,
                "total_shots": 1.7392,
                "rating": 6.8662,
                "minutes": 80.84,
                "total_pass": 21.9213,
                "accurate_pass": 16.6166,
                "duels_won": 3.4968,
                "total_long_balls": 3.0011,
                "accurate_long_balls": 1.4431,
                "total_own_half_passes": 7.0341,
                "accurate_own_half_passes": 6.0033,
                "total_opp_half_passes": 14.8872,
                "accurate_opp_half_passes": 10.6134,
                "crosses_total": 3.8974,
                "crosses_accurate": 1.1216,
                "touches": 42.2406,
                "possession_lost": 12.6349,
                "dispossessed": 0.5512,
                "duels_lost": 3.9419,
                "aerial_won": 1.1,
                "aerial_lost": 0.1237,
                "interceptions": 0.8461,
                "tackles_won": 0.6146,
                "tackles": 0.9088,
                "clearances": 0.8306,
                "total_contest": 3.1559,
                "won_contest": 1.4259,
                "challenges_lost": 0.6065,
                "fouls": 0.9354,
                "fouls_drawn": 0.8902,
                "blocks": 0.3177,
                "big_chances_created": 0.608,
                "big_chances_missed": 0.1559,
                "xgot": 0.1482,
                "ball_carries": 10.5337,
                "total_progression": 58.0889,
                "progressive_carries": 2.7204,
                "shots_off_target": 1.0942,
                "duel_xg_multiplier": 1.0584,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.46,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Dani Lorenzo",
                "opponent_faced": "Dani Lorenzo",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.1549,
                "projected_assists": 1,
                "assist_probability": 0.1467,
                "finishing_factor": 1.0684,
                "creation_factor": 1.0761,
                "fifa_overall": 72.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 1,
                "assist_probability": 0.1467,
                "assist_rate": 0.1635,
                "provider_weight": 0.1707,
                "squad_weight_total": 0.7993,
                "weight_share": 0.2135,
                "creation_factor": 1.0761,
                "appearance_weight": 1.0,
                "weight_rank": 1,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Ángel Pérez",
                    "weight": 0.1707,
                    "already": 0,
                    "effective_weight": 0.1707,
                    "runner_up": "Denis Suárez",
                    "runner_up_effective_weight": 0.1469,
                    "blocked_own_goal": [
                      "Lucas Boyé"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Antonio Sivera": {
          "player_id": 369004,
          "position": "G",
          "position_depth": "G",
          "is_starter": true,
          "shirt_number": 1,
          "height": 184,
          "market_value": 5600000,
          "stats": {
            "saves": 3,
            "goals_prevented": -0.1042,
            "rating": 6.9781,
            "minutes": 90,
            "total_pass": 28,
            "accurate_pass": 16,
            "total_long_balls": 22,
            "accurate_long_balls": 10,
            "touches": 38,
            "clearances": 1,
            "ball_recovery": 9,
            "high_claims": 1,
            "punches": 1.045,
            "aerial_won": 0,
            "sweeper_actions": 1,
            "sweeper_accurate": 1,
            "saves_inside_box": 1,
            "possession_lost": 12.2462,
            "duels_won": 1,
            "duels_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "total_own_half_passes": 8,
            "accurate_own_half_passes": 7,
            "gk_engine_opponent_lambda": 0.8883,
            "shots_faced": 8.3,
            "expected_saves": 2.04,
            "high_pressure_saves": 0.7,
            "opponent_faced": "Adrián Niño, Chupete",
            "matchup_zone": "Goalkeeper shot-stopping context",
            "antagonist_source": "formation_fallback",
            "goals": 0,
            "projected_goals": 0,
            "goal_probability": 0.0,
            "assists": 0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "finishing_factor": 1.0,
            "creation_factor": 1.0,
            "expected_goals": 0.0,
            "expected_assists": 0.0,
            "fifa_overall": 85.0
          },
          "latest_10_games": [
            {
              "match_id": 16421069,
              "match_date": "2026-10-18",
              "home_team": "Celta Vigo",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 90,
                "rating": 6.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0063,
                "total_shots": 0,
                "total_pass": 28,
                "accurate_pass": 18,
                "ball_recovery": 7,
                "saves": 1,
                "goals_prevented": -0.3989
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421056,
              "match_date": "2026-10-10",
              "home_team": "Deportivo Alavés",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 90,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0014,
                "total_shots": 0,
                "total_pass": 28,
                "accurate_pass": 13,
                "clearances": 3,
                "aerial_won": 2,
                "duels_won": 2,
                "ball_recovery": 14,
                "saves": 5,
                "goals_prevented": -0.8983
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416337,
              "match_date": "2026-09-19",
              "home_team": "Athletic Club",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 90,
                "rating": 8.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0028,
                "total_shots": 0,
                "total_pass": 27,
                "accurate_pass": 13,
                "ball_recovery": 15,
                "saves": 6,
                "goals_prevented": 0.9777
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416334,
              "match_date": "2026-09-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Valencia",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Valencia",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0019,
                "total_shots": 0,
                "total_pass": 25,
                "accurate_pass": 17,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "duels_won": 1,
                "ball_recovery": 9,
                "saves": 2,
                "goals_prevented": -0.1845
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416328,
              "match_date": "2026-09-12",
              "home_team": "Real Racing Club",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 90,
                "rating": 7.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0103,
                "total_shots": 0,
                "total_pass": 26,
                "accurate_pass": 15,
                "clearances": 1,
                "ball_recovery": 6,
                "saves": 2,
                "goals_prevented": 0.1349
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416318,
              "match_date": "2026-09-06",
              "home_team": "Deportivo Alavés",
              "away_team": "Osasuna",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 90,
                "rating": 7.6,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_assists": 0.0104,
                "total_shots": 0,
                "total_pass": 29,
                "accurate_pass": 19,
                "key_pass": 1,
                "clearances": 1,
                "ball_recovery": 4,
                "saves": 3,
                "goals_prevented": -0.1219
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416290,
              "match_date": "2026-08-28",
              "home_team": "Deportivo Alavés",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 90,
                "rating": 8.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0044,
                "total_shots": 0,
                "total_pass": 25,
                "accurate_pass": 15,
                "clearances": 1,
                "ball_recovery": 9,
                "saves": 6,
                "goals_prevented": 0.663
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416292,
              "match_date": "2026-08-20",
              "home_team": "Rayo Vallecano",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0018,
                "total_shots": 0,
                "total_pass": 24,
                "accurate_pass": 13,
                "clearances": 3,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 6,
                "saves": 2,
                "goals_prevented": 0.0097
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421047,
              "match_date": "2026-08-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Getafe",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Getafe",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0005,
                "total_shots": 0,
                "total_pass": 21,
                "accurate_pass": 15,
                "clearances": 2,
                "ball_recovery": 14,
                "saves": 2,
                "goals_prevented": 0.0882
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083706,
              "match_date": "2026-05-23",
              "home_team": "Deportivo Alavés",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 90,
                "rating": 7.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.2019,
                "total_shots": 0,
                "total_pass": 39,
                "accurate_pass": 24,
                "clearances": 1,
                "ball_recovery": 12,
                "saves": 5,
                "goals_prevented": -0.2241
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 194,
            "combined_rank_score": 156.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 157.0,
            "sofascore_rating": 7.3,
            "sofascore_appearances": 3.0,
            "fifa_rank": 156.0,
            "fifa_overall": 85.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 1,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.9781,
            "source_file": "data/player_rankings.csv",
            "player_name": "Antonio Sivera",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Renzo Malanca",
                  "ranking": 189
                },
                {
                  "player_name": "Andy Robertson",
                  "ranking": 190
                },
                {
                  "player_name": "Nicolás de la Cruz",
                  "ranking": 191
                },
                {
                  "player_name": "Osmar Barba",
                  "ranking": 192
                },
                {
                  "player_name": "Yarden Shua",
                  "ranking": 193
                }
              ],
              "lower": [
                {
                  "player_name": "Igor Lichnovsky",
                  "ranking": 195
                },
                {
                  "player_name": "Luis Rojas",
                  "ranking": 196
                },
                {
                  "player_name": "Armandas Kučys",
                  "ranking": 197
                },
                {
                  "player_name": "Javier Hernández",
                  "ranking": 198
                },
                {
                  "player_name": "Daler Tukhsanov",
                  "ranking": 199
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.78,
          "history_matches": 47,
          "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",
              "passValueNormalized",
              "defensiveValueNormalized",
              "goalkeeperValueNormalized",
              "goalsPrevented",
              "rating",
              "pass_accuracy",
              "long_ball_accuracy",
              "save_contribution",
              "inside_box_save_rate",
              "sweeper_accuracy",
              "sweeper_actions_p90",
              "distribution_accuracy",
              "commanding_index",
              "history_matches"
            ],
            "targets_predicted": [
              "saves",
              "goalsPrevented",
              "rating"
            ],
            "history_matches": 47,
            "data_confidence": 0.78,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.999,
            "fbref_prior_metrics": {
              "squad": "Alavés",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "minutes": 270.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.0,
              "prior_reliability": 0.2
            },
            "rationale": "XGBoost regressor (G_service) evaluated 47 historical appearances across 3 target models; FBref 2026-2027 prior blended (La Liga, Alavés, rel: 0.20, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost G_service raw output over 3 target models",
              "stats": {
                "saves": 2.8998,
                "goals_prevented": -0.1043,
                "rating": 6.9781,
                "minutes": 90.0,
                "total_pass": 27.571,
                "accurate_pass": 15.5332,
                "total_long_balls": 21.7562,
                "accurate_long_balls": 9.7995,
                "touches": 38.1653,
                "clearances": 1.3745,
                "ball_recovery": 9.4372,
                "high_claims": 1.0816,
                "punches": 1.046,
                "aerial_won": 0.4126,
                "sweeper_actions": 0.8214,
                "sweeper_accurate": 0.8214,
                "saves_inside_box": 1.501,
                "possession_lost": 12.2585,
                "duels_won": 0.5134,
                "duels_lost": 0.0343,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "fouls": 0.0006,
                "fouls_drawn": 0.0058,
                "total_own_half_passes": 8.0794,
                "accurate_own_half_passes": 6.7079
              },
              "trace": {
                "model": {
                  "position_service": "G",
                  "schema_version": 5,
                  "trained_at": "2026-10-23T10:03:38.130505+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 200,
                    "rows": 7186
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Celta Vigo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1501,
                    "rating": 6.1
                  },
                  {
                    "match_date": "2026-10-10",
                    "opponent": "Atlético Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1276,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Athletic Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1084,
                    "rating": 8.6
                  },
                  {
                    "match_date": "2026-09-15",
                    "opponent": "Valencia",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0922,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Real Racing Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0783,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Osasuna",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0666,
                    "rating": 7.6
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Villarreal",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0566,
                    "rating": 8.1
                  },
                  {
                    "match_date": "2026-08-20",
                    "opponent": "Rayo Vallecano",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0481,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-08-15",
                    "opponent": "Getafe",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0409,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-05-23",
                    "opponent": "Rayo Vallecano",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0348,
                    "rating": 7.3
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 1.0,
                  "possessionLostCtrl": 12.2585,
                  "distribution_accuracy": 0.8075,
                  "saves": 3.1324,
                  "goalkeeperValueNormalized": 0.0271,
                  "save_contribution": 2.9548,
                  "accurateOwnHalfPasses": 6.7079
                },
                "per_target": [
                  {
                    "target": "saves",
                    "predicted": 2.8998184204101562,
                    "model_output": 2.8998,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "saves",
                        "importance": 0.0396
                      },
                      {
                        "name": "save_contribution",
                        "importance": 0.0396
                      },
                      {
                        "name": "distribution_accuracy",
                        "importance": 0.0361
                      },
                      {
                        "name": "defensiveValueNormalized",
                        "importance": 0.0356
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0346
                      }
                    ],
                    "decomposition": {
                      "base": 2.9357,
                      "items": [
                        {
                          "name": "ballRecovery",
                          "contribution": 0.0274
                        },
                        {
                          "name": "goalkeeperValueNormalized",
                          "contribution": -0.0244
                        },
                        {
                          "name": "save_contribution",
                          "contribution": 0.02
                        },
                        {
                          "name": "distribution_accuracy",
                          "contribution": 0.0162
                        },
                        {
                          "name": "accurateLongBalls",
                          "contribution": 0.0161
                        }
                      ],
                      "others": -0.0912,
                      "total": 2.8998,
                      "log_link": true,
                      "margin_base": 1.076962,
                      "item_margins": [
                        {
                          "name": "ballRecovery",
                          "margin": 0.009292
                        },
                        {
                          "name": "goalkeeperValueNormalized",
                          "margin": -0.008283
                        },
                        {
                          "name": "save_contribution",
                          "margin": 0.006783
                        },
                        {
                          "name": "distribution_accuracy",
                          "margin": 0.005444
                        },
                        {
                          "name": "accurateLongBalls",
                          "margin": 0.005401
                        }
                      ],
                      "others_margin": -0.030951
                    }
                  },
                  {
                    "target": "goalsPrevented",
                    "predicted": -0.10426119714975357,
                    "model_output": -0.1043,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0403
                      },
                      {
                        "name": "punches",
                        "importance": 0.0402
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.039
                      },
                      {
                        "name": "goodHighClaim",
                        "importance": 0.0381
                      },
                      {
                        "name": "distribution_accuracy",
                        "importance": 0.0377
                      }
                    ],
                    "decomposition": {
                      "base": -0.0276,
                      "items": [
                        {
                          "name": "goalkeeperValueNormalized",
                          "contribution": 0.0239
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.0186
                        },
                        {
                          "name": "accurateKeeperSweeper",
                          "contribution": -0.0156
                        },
                        {
                          "name": "inside_box_save_rate",
                          "contribution": -0.0145
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0132
                        }
                      ],
                      "others": -0.0387,
                      "total": -0.1043,
                      "log_link": false,
                      "margin_base": -0.027557,
                      "item_margins": [
                        {
                          "name": "goalkeeperValueNormalized",
                          "margin": 0.02391
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": -0.018552
                        },
                        {
                          "name": "accurateKeeperSweeper",
                          "margin": -0.015639
                        },
                        {
                          "name": "inside_box_save_rate",
                          "margin": -0.014539
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.01317
                        }
                      ],
                      "others_margin": -0.038715
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.978069305419922,
                    "model_output": 6.9781,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "saves",
                        "importance": 0.0419
                      },
                      {
                        "name": "accurateOwnHalfPasses",
                        "importance": 0.0397
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0368
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0351
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0351
                      }
                    ],
                    "decomposition": {
                      "base": 6.9908,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": -0.0291
                        },
                        {
                          "name": "distribution_accuracy",
                          "contribution": 0.0278
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0205
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": -0.018
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0154
                        }
                      ],
                      "others": 0.0015,
                      "total": 6.9781,
                      "log_link": false,
                      "margin_base": 6.990849,
                      "item_margins": [
                        {
                          "name": "aerialWon",
                          "margin": -0.029095
                        },
                        {
                          "name": "distribution_accuracy",
                          "margin": 0.027801
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": 0.020467
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": -0.017981
                        },
                        {
                          "name": "accuratePass",
                          "margin": -0.015351
                        }
                      ],
                      "others_margin": 0.00138
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 47,
                  "role_matches": 47,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "role_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9990, quality 0.470)",
              "stats": {
                "saves": 2.8969,
                "goals_prevented": -0.1042,
                "rating": 6.9781,
                "minutes": 90.0,
                "total_pass": 27.5434,
                "accurate_pass": 15.5177,
                "total_long_balls": 21.7344,
                "accurate_long_balls": 9.7897,
                "touches": 38.1271,
                "clearances": 1.3731,
                "ball_recovery": 9.4278,
                "high_claims": 1.0805,
                "punches": 1.045,
                "aerial_won": 0.4122,
                "sweeper_actions": 0.8206,
                "sweeper_accurate": 0.8206,
                "saves_inside_box": 1.4995,
                "possession_lost": 12.2462,
                "duels_won": 0.5129,
                "duels_lost": 0.0343,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "fouls": 0.0006,
                "fouls_drawn": 0.0058,
                "total_own_half_passes": 8.0713,
                "accurate_own_half_passes": 6.7012
              },
              "params": {
                "market_value_eur": 5600000,
                "quality_factor": 0.4695,
                "boost_factor": 0.999,
                "reference_quality": 0.505,
                "history_matches": 47,
                "history_shrink": 0.0962,
                "market_value_known": true
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0125)",
              "stats": {
                "saves": 2.9024,
                "goals_prevented": -0.1042,
                "rating": 6.9781,
                "minutes": 90.0,
                "total_pass": 27.5434,
                "accurate_pass": 15.5177,
                "total_long_balls": 21.7344,
                "accurate_long_balls": 9.7897,
                "touches": 38.1271,
                "clearances": 1.3731,
                "ball_recovery": 9.4278,
                "high_claims": 1.0805,
                "punches": 1.045,
                "aerial_won": 0.4122,
                "sweeper_actions": 0.8206,
                "sweeper_accurate": 0.8206,
                "saves_inside_box": 1.4995,
                "possession_lost": 12.2462,
                "duels_won": 0.5129,
                "duels_lost": 0.0343,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "fouls": 0.0006,
                "fouls_drawn": 0.0057,
                "total_own_half_passes": 8.0713,
                "accurate_own_half_passes": 6.7012
              },
              "params": {
                "blend_weight": 0.0125,
                "history_matches": 47,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 1.0,
                "prior_reliability": 0.2,
                "competition": "La Liga",
                "squad": "Alavés"
              },
              "changes": [
                {
                  "stat": "saves",
                  "before": 2.8969,
                  "after": 2.9024
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "saves": 2.9024,
                "goals_prevented": -0.1042,
                "rating": 6.9781,
                "minutes": 90.0,
                "total_pass": 27.5434,
                "accurate_pass": 15.5177,
                "total_long_balls": 21.7344,
                "accurate_long_balls": 9.7897,
                "touches": 38.1271,
                "clearances": 1.3731,
                "ball_recovery": 9.4278,
                "high_claims": 1.0805,
                "punches": 1.045,
                "aerial_won": 0.4122,
                "sweeper_actions": 0.8206,
                "sweeper_accurate": 0.8206,
                "saves_inside_box": 1.4995,
                "possession_lost": 12.2462,
                "duels_won": 0.5129,
                "duels_lost": 0.0343,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "fouls": 0.0006,
                "fouls_drawn": 0.0057,
                "total_own_half_passes": 8.0713,
                "accurate_own_half_passes": 6.7012
              },
              "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": 2.9024,
                "goals_prevented": -0.1042,
                "rating": 6.9781,
                "minutes": 90.0,
                "total_pass": 27.5434,
                "accurate_pass": 15.5177,
                "total_long_balls": 21.7344,
                "accurate_long_balls": 9.7897,
                "touches": 38.1271,
                "clearances": 1.3731,
                "ball_recovery": 9.4278,
                "high_claims": 1.0805,
                "punches": 1.045,
                "aerial_won": 0.4122,
                "sweeper_actions": 0.8206,
                "sweeper_accurate": 0.8206,
                "saves_inside_box": 1.4995,
                "possession_lost": 12.2462,
                "duels_won": 0.5129,
                "duels_lost": 0.0343,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "fouls": 0.0006,
                "fouls_drawn": 0.0057,
                "total_own_half_passes": 8.0713,
                "accurate_own_half_passes": 6.7012,
                "gk_engine_opponent_lambda": 0.8883,
                "shots_faced": 8.4,
                "expected_saves": 2.05,
                "high_pressure_saves": 0.71,
                "opponent_faced": "Adrián Niño, Chupete",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Adrián Niño, Chupete",
                  "matchup_zone": "Goalkeeper shot-stopping context",
                  "opponent_lambda": 0.8883
                }
              }
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "saves": 2.9024,
                "goals_prevented": -0.1042,
                "rating": 6.9781,
                "minutes": 90.0,
                "total_pass": 27.5434,
                "accurate_pass": 15.5177,
                "total_long_balls": 21.7344,
                "accurate_long_balls": 9.7897,
                "touches": 38.1271,
                "clearances": 1.3731,
                "ball_recovery": 9.4278,
                "high_claims": 1.0805,
                "punches": 1.045,
                "aerial_won": 0.4122,
                "sweeper_actions": 0.8206,
                "sweeper_accurate": 0.8206,
                "saves_inside_box": 1.4995,
                "possession_lost": 12.2462,
                "duels_won": 0.5129,
                "duels_lost": 0.0343,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "fouls": 0.0006,
                "fouls_drawn": 0.0057,
                "total_own_half_passes": 8.0713,
                "accurate_own_half_passes": 6.7012,
                "gk_engine_opponent_lambda": 0.8883,
                "shots_faced": 8.4,
                "expected_saves": 2.05,
                "high_pressure_saves": 0.71,
                "opponent_faced": "Adrián Niño, Chupete",
                "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
              },
              "params": {
                "scoreline_reset": true,
                "team_goals": 1
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.26 (squad xG sum 1.2639, xG scale 0.9946, xA scale 1.0687, team xA 0.82 = 0.65 x lambda)",
              "stats": {
                "saves": 2.9024,
                "goals_prevented": -0.1042,
                "rating": 6.9781,
                "minutes": 90.0,
                "total_pass": 27.5434,
                "accurate_pass": 15.5177,
                "total_long_balls": 21.7344,
                "accurate_long_balls": 9.7897,
                "touches": 38.1271,
                "clearances": 1.3731,
                "ball_recovery": 9.4278,
                "high_claims": 1.0805,
                "punches": 1.045,
                "aerial_won": 0.4122,
                "sweeper_actions": 0.8206,
                "sweeper_accurate": 0.8206,
                "saves_inside_box": 1.4995,
                "possession_lost": 12.2462,
                "duels_won": 0.5129,
                "duels_lost": 0.0343,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "fouls": 0.0006,
                "fouls_drawn": 0.0057,
                "total_own_half_passes": 8.0713,
                "accurate_own_half_passes": 6.7012,
                "gk_engine_opponent_lambda": 0.8883,
                "shots_faced": 8.3,
                "expected_saves": 2.04,
                "high_pressure_saves": 0.7,
                "opponent_faced": "Adrián Niño, Chupete",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "goals": 0,
                "projected_goals": 0,
                "goal_probability": 0.0,
                "assists": 0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 1.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0
              },
              "params": {
                "team_lambda": 1.257,
                "squad_xg_sum": 1.2639,
                "squad_xa_sum": 0.7645,
                "team_expected_assists": 0.817,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.9946,
                "xa_scale": 1.0687,
                "opponent_lambda": 0.869,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "shots_faced",
                  "before": 8.4,
                  "after": 8.3
                },
                {
                  "stat": "expected_saves",
                  "before": 2.05,
                  "after": 2.04
                },
                {
                  "stat": "high_pressure_saves",
                  "before": 0.71,
                  "after": 0.7
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 85.0)",
              "stats": {
                "saves": 2.9024,
                "goals_prevented": -0.1042,
                "rating": 6.9781,
                "minutes": 90.0,
                "total_pass": 27.5434,
                "accurate_pass": 15.5177,
                "total_long_balls": 21.7344,
                "accurate_long_balls": 9.7897,
                "touches": 38.1271,
                "clearances": 1.3731,
                "ball_recovery": 9.4278,
                "high_claims": 1.0805,
                "punches": 1.045,
                "aerial_won": 0.4122,
                "sweeper_actions": 0.8206,
                "sweeper_accurate": 0.8206,
                "saves_inside_box": 1.4995,
                "possession_lost": 12.2462,
                "duels_won": 0.5129,
                "duels_lost": 0.0343,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "fouls": 0.0006,
                "fouls_drawn": 0.0057,
                "total_own_half_passes": 8.0713,
                "accurate_own_half_passes": 6.7012,
                "gk_engine_opponent_lambda": 0.8883,
                "shots_faced": 8.3,
                "expected_saves": 2.04,
                "high_pressure_saves": 0.7,
                "opponent_faced": "Adrián Niño, Chupete",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "goals": 0,
                "projected_goals": 0,
                "goal_probability": 0.0,
                "assists": 0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 1.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "fifa_overall": 85.0
              },
              "params": {
                "match_squad_rank": 1,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 194,
                "fifa_rank": 156.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 85.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "saves": 2.9024,
                "goals_prevented": -0.1042,
                "rating": 6.9781,
                "minutes": 90.0,
                "total_pass": 27.5434,
                "accurate_pass": 15.5177,
                "total_long_balls": 21.7344,
                "accurate_long_balls": 9.7897,
                "touches": 38.1271,
                "clearances": 1.3731,
                "ball_recovery": 9.4278,
                "high_claims": 1.0805,
                "punches": 1.045,
                "aerial_won": 0.4122,
                "sweeper_actions": 0.8206,
                "sweeper_accurate": 0.8206,
                "saves_inside_box": 1.4995,
                "possession_lost": 12.2462,
                "duels_won": 0.5129,
                "duels_lost": 0.0343,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "fouls": 0.0006,
                "fouls_drawn": 0.0057,
                "total_own_half_passes": 8.0713,
                "accurate_own_half_passes": 6.7012,
                "gk_engine_opponent_lambda": 0.8883,
                "shots_faced": 8.3,
                "expected_saves": 2.04,
                "high_pressure_saves": 0.7,
                "opponent_faced": "Adrián Niño, Chupete",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "goals": 0,
                "projected_goals": 0,
                "goal_probability": 0.0,
                "assists": 0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 1.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "fifa_overall": 85.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 0.0,
                "squad_weight_total": 1.3303,
                "weight_share": 0.0,
                "finishing_factor": 1.0,
                "appearance_weight": 1.0,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lucas Boyé",
                    "weight": 0.3448,
                    "already": 0,
                    "effective_weight": 0.3448,
                    "runner_up": "Mariano Díaz",
                    "runner_up_effective_weight": 0.2151
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "saves": 2.9024,
                "goals_prevented": -0.1042,
                "rating": 6.9781,
                "minutes": 90.0,
                "total_pass": 27.5434,
                "accurate_pass": 15.5177,
                "total_long_balls": 21.7344,
                "accurate_long_balls": 9.7897,
                "touches": 38.1271,
                "clearances": 1.3731,
                "ball_recovery": 9.4278,
                "high_claims": 1.0805,
                "punches": 1.045,
                "aerial_won": 0.4122,
                "sweeper_actions": 0.8206,
                "sweeper_accurate": 0.8206,
                "saves_inside_box": 1.4995,
                "possession_lost": 12.2462,
                "duels_won": 0.5129,
                "duels_lost": 0.0343,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "fouls": 0.0006,
                "fouls_drawn": 0.0057,
                "total_own_half_passes": 8.0713,
                "accurate_own_half_passes": 6.7012,
                "gk_engine_opponent_lambda": 0.8883,
                "shots_faced": 8.3,
                "expected_saves": 2.04,
                "high_pressure_saves": 0.7,
                "opponent_faced": "Adrián Niño, Chupete",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "goals": 0,
                "projected_goals": 0,
                "goal_probability": 0.0,
                "assists": 0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 1.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "fifa_overall": 85.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0,
                "provider_weight": 0.0,
                "squad_weight_total": 0.7993,
                "weight_share": 0.0,
                "creation_factor": 1.0,
                "appearance_weight": 1.0,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Ángel Pérez",
                    "weight": 0.1707,
                    "already": 0,
                    "effective_weight": 0.1707,
                    "runner_up": "Denis Suárez",
                    "runner_up_effective_weight": 0.1469,
                    "blocked_own_goal": [
                      "Lucas Boyé"
                    ]
                  }
                ]
              }
            }
          ]
        }
      },
      "bench_players": {
        "Grégoire Swiderski": {
          "player_id": 1440572,
          "position": "G",
          "position_depth": "G_BENCH",
          "is_starter": false,
          "shirt_number": 31,
          "height": 187,
          "market_value": 240000,
          "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": 3,
            "projected_substitution_expected_count": 2.588,
            "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": null
          },
          "latest_10_games": [],
          "ranking": {
            "global_player_rank": null,
            "combined_rank_score": null,
            "ranking_source": "missing_player_rankings_csv_row",
            "ranking_status": "missing",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": null,
            "fifa_rank": null,
            "fifa_overall": null,
            "fifa_source": null,
            "match_squad_rank": 10,
            "squad_role": "substitute",
            "ranking_match": "none",
            "projected_match_rating": 6.8,
            "source_file": "data/player_rankings.csv",
            "player_name": "Grégoire Swiderski",
            "ranking_neighbors": {
              "upper": [],
              "lower": []
            }
          },
          "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": {
              "squad": "Alavés",
              "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 (€240,000) scaled to 4.4 expected mins; FBref playing time empirical prior: 0.0 sub appearances, 0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "market_value_prior",
              "description": "Market-value baseline for position G (quality 0.44)",
              "stats": {
                "saves": 2.9,
                "goals_prevented": 0.45,
                "rating": 6.8,
                "minutes": 90.0,
                "total_pass": 27.0,
                "accurate_pass": 20.0,
                "total_long_balls": 8.0,
                "accurate_long_balls": 4.0,
                "touches": 32.0,
                "clearances": 0.9,
                "ball_recovery": 1.2,
                "high_claims": 0.5,
                "punches": 0.3,
                "aerial_won": 0.6,
                "sweeper_actions": 1.2,
                "sweeper_accurate": 0.7,
                "saves_inside_box": 1.2,
                "possession_lost": 2.4,
                "duels_won": 0.4,
                "duels_lost": 0.2,
                "total_contest": 0.4,
                "won_contest": 0.2,
                "fouls": 0.2,
                "fouls_drawn": 0.0,
                "total_own_half_passes": 21.0,
                "accurate_own_half_passes": 16.0
              },
              "params": {
                "market_value_eur": 240000,
                "quality_factor": 0.4374
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 90.0 to 4.4 expected minutes (appearance prob 0.11)",
              "stats": {
                "saves": 0.1415,
                "goals_prevented": 0.022,
                "rating": 6.8,
                "minutes": 4.39,
                "total_pass": 1.3177,
                "accurate_pass": 0.976,
                "total_long_balls": 0.3904,
                "accurate_long_balls": 0.1952,
                "touches": 1.5617,
                "clearances": 0.0439,
                "ball_recovery": 0.0586,
                "high_claims": 0.0244,
                "punches": 0.0146,
                "aerial_won": 0.0293,
                "sweeper_actions": 0.0586,
                "sweeper_accurate": 0.0342,
                "saves_inside_box": 0.0586,
                "possession_lost": 0.1171,
                "duels_won": 0.0195,
                "duels_lost": 0.0098,
                "total_contest": 0.0195,
                "won_contest": 0.0098,
                "fouls": 0.0098,
                "fouls_drawn": 0.0,
                "total_own_half_passes": 1.0249,
                "accurate_own_half_passes": 0.7808,
                "bench_appearance_probability": 0.109,
                "bench_expected_minutes": 4.39
              },
              "params": {
                "expected_minutes": 4.39,
                "projection_minutes": 90.0,
                "minutes_scale": 0.0488,
                "appearance_probability": 0.109
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "saves": 0.1415,
                "goals_prevented": 0.022,
                "rating": 6.8,
                "minutes": 4.39,
                "total_pass": 1.3177,
                "accurate_pass": 0.976,
                "total_long_balls": 0.3904,
                "accurate_long_balls": 0.1952,
                "touches": 1.5617,
                "clearances": 0.0439,
                "ball_recovery": 0.0586,
                "high_claims": 0.0244,
                "punches": 0.0146,
                "aerial_won": 0.0293,
                "sweeper_actions": 0.0586,
                "sweeper_accurate": 0.0342,
                "saves_inside_box": 0.0586,
                "possession_lost": 0.1171,
                "duels_won": 0.0195,
                "duels_lost": 0.0098,
                "total_contest": 0.0195,
                "won_contest": 0.0098,
                "fouls": 0.0098,
                "fouls_drawn": 0.0,
                "total_own_half_passes": 1.0249,
                "accurate_own_half_passes": 0.7808,
                "bench_appearance_probability": 0.109,
                "bench_expected_minutes": 4.39
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "not_projected_to_play",
              "description": "Not among the projected substitutes: no share of the team's goals or assists",
              "stats": {
                "saves": 0.1415,
                "goals_prevented": 0.022,
                "rating": 6.8,
                "minutes": 4.39,
                "total_pass": 1.3177,
                "accurate_pass": 0.976,
                "total_long_balls": 0.3904,
                "accurate_long_balls": 0.1952,
                "touches": 1.5617,
                "clearances": 0.0439,
                "ball_recovery": 0.0586,
                "high_claims": 0.0244,
                "punches": 0.0146,
                "aerial_won": 0.0293,
                "sweeper_actions": 0.0586,
                "sweeper_accurate": 0.0342,
                "saves_inside_box": 0.0586,
                "possession_lost": 0.1171,
                "duels_won": 0.0195,
                "duels_lost": 0.0098,
                "total_contest": 0.0195,
                "won_contest": 0.0098,
                "fouls": 0.0098,
                "fouls_drawn": 0.0,
                "total_own_half_passes": 1.0249,
                "accurate_own_half_passes": 0.7808,
                "bench_appearance_probability": 0.109,
                "bench_expected_minutes": 4.39,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "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
              },
              "params": {
                "appearance_probability": 0.109,
                "projected_substitutes": 3,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall n/a)",
              "stats": {
                "saves": 0.1415,
                "goals_prevented": 0.022,
                "rating": 6.8,
                "minutes": 4.39,
                "total_pass": 1.3177,
                "accurate_pass": 0.976,
                "total_long_balls": 0.3904,
                "accurate_long_balls": 0.1952,
                "touches": 1.5617,
                "clearances": 0.0439,
                "ball_recovery": 0.0586,
                "high_claims": 0.0244,
                "punches": 0.0146,
                "aerial_won": 0.0293,
                "sweeper_actions": 0.0586,
                "sweeper_accurate": 0.0342,
                "saves_inside_box": 0.0586,
                "possession_lost": 0.1171,
                "duels_won": 0.0195,
                "duels_lost": 0.0098,
                "total_contest": 0.0195,
                "won_contest": 0.0098,
                "fouls": 0.0098,
                "fouls_drawn": 0.0,
                "total_own_half_passes": 1.0249,
                "accurate_own_half_passes": 0.7808,
                "bench_appearance_probability": 0.109,
                "bench_expected_minutes": 4.39,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "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": null
              },
              "params": {
                "match_squad_rank": 10,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "missing_player_rankings_csv_row",
                "ranking_status": "missing",
                "ranking_match": "none"
              }
            }
          ]
        },
        "Youssef Enriquez": {
          "player_id": 1403364,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 3,
          "height": 170,
          "market_value": 5300000,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 1,
            "aerial_won": 0,
            "total_shots": 0,
            "rating": 6.6951,
            "minutes": 14,
            "total_pass": 5,
            "accurate_pass": 4,
            "duels_won": 1,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "total_own_half_passes": 2,
            "accurate_own_half_passes": 2,
            "total_opp_half_passes": 2,
            "accurate_opp_half_passes": 2,
            "crosses_total": 1,
            "crosses_accurate": 0,
            "touches": 10,
            "possession_lost": 2.1191,
            "dispossessed": 0.1532,
            "duels_lost": 1,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assist_rate": 0.0,
            "assists": 0,
            "expected_goals": 0.0085,
            "expected_assists": 0.0256,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0091,
            "ball_carries": 2,
            "total_progression": 8,
            "progressive_carries": 0,
            "key_pass": 0,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.304,
            "bench_expected_minutes": 13.68,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.588,
            "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": 83.0
          },
          "latest_10_games": [
            {
              "match_id": 16416337,
              "match_date": "2026-09-19",
              "home_team": "Athletic Club",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 25,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0003,
                "total_shots": 0,
                "total_pass": 4,
                "accurate_pass": 3,
                "interceptions": 1,
                "clearances": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416334,
              "match_date": "2026-09-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Valencia",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Valencia",
              "stats": {
                "minutes": 23,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0182,
                "expected_assists": 0.0057,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 5,
                "accurate_pass": 4,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416318,
              "match_date": "2026-09-06",
              "home_team": "Deportivo Alavés",
              "away_team": "Osasuna",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 19,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0338,
                "total_shots": 0,
                "total_pass": 16,
                "accurate_pass": 13,
                "key_pass": 1,
                "tackles": 1,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416290,
              "match_date": "2026-08-28",
              "home_team": "Deportivo Alavés",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 36,
                "rating": 7.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0003,
                "total_shots": 0,
                "total_pass": 7,
                "accurate_pass": 4,
                "tackles": 3,
                "tackles_won": 2,
                "clearances": 4,
                "duels_won": 6,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416292,
              "match_date": "2026-08-20",
              "home_team": "Rayo Vallecano",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 20,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0741,
                "total_shots": 0,
                "total_pass": 16,
                "accurate_pass": 15,
                "key_pass": 1,
                "tackles": 1,
                "duels_won": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421047,
              "match_date": "2026-08-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Getafe",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Getafe",
              "stats": {
                "minutes": 25,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0674,
                "total_shots": 0,
                "total_pass": 8,
                "accurate_pass": 8,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 1,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083692,
              "match_date": "2026-05-17",
              "home_team": "Real Oviedo",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Real Oviedo",
              "stats": {
                "minutes": 45,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0552,
                "total_shots": 0,
                "total_pass": 6,
                "accurate_pass": 4,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 2,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083578,
              "match_date": "2026-05-09",
              "home_team": "Elche",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Elche",
              "stats": {
                "minutes": 23,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0189,
                "expected_assists": 0.3396,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 2,
                "accurate_pass": 1,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true
            },
            {
              "match_id": 14083295,
              "match_date": "2026-04-21",
              "home_team": "Real Madrid",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 66,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0681,
                "total_shots": 0,
                "total_pass": 15,
                "accurate_pass": 15,
                "key_pass": 1,
                "clearances": 1,
                "ball_recovery": 3
              },
              "has_player_stats": true
            },
            {
              "match_id": 14081809,
              "match_date": "2026-04-05",
              "home_team": "Deportivo Alavés",
              "away_team": "Osasuna",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 45,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0622,
                "total_shots": 0,
                "total_pass": 12,
                "accurate_pass": 12,
                "key_pass": 1,
                "clearances": 2,
                "aerial_won": 2,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true
            }
          ],
          "ranking": {
            "global_player_rank": 413,
            "combined_rank_score": 283.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 257.0,
            "sofascore_rating": 7.1,
            "sofascore_appearances": 3.0,
            "fifa_rank": 310.0,
            "fifa_overall": 83.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 15,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.6951,
            "source_file": "data/player_rankings.csv",
            "player_name": "Youssef Enriquez",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Jun-sang Lee",
                  "ranking": 408
                },
                {
                  "player_name": "Boburbek Yuldashov",
                  "ranking": 409
                },
                {
                  "player_name": "Dor Peretz",
                  "ranking": 410
                },
                {
                  "player_name": "Itsuki Urata",
                  "ranking": 411
                },
                {
                  "player_name": "Chi-Won Choi",
                  "ranking": 412
                }
              ],
              "lower": [
                {
                  "player_name": "Beom Song",
                  "ranking": 414
                },
                {
                  "player_name": "Irakli Azarovi",
                  "ranking": 415
                },
                {
                  "player_name": "Alexander Freeman",
                  "ranking": 416
                },
                {
                  "player_name": "Johaneko Louis Jean",
                  "ranking": 417
                },
                {
                  "player_name": "Roman Begunov",
                  "ranking": 418
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.75,
          "history_matches": 31,
          "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",
              "totalTackle",
              "totalShots",
              "rating",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "totalShots",
              "rating"
            ],
            "history_matches": 31,
            "data_confidence": 0.75,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 13.684825411466107,
            "bench_appearance_prob": 0.3038557005211867,
            "market_value_adjustment": 0.9984,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost D_service (31 historical appearances) to 13.7 expected mins (appearance prob 0.30)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 7 target models",
              "stats": {
                "interceptions": 0.2914,
                "tackles": 0.5848,
                "tackles_won": 0.3338,
                "clearances": 1.0666,
                "aerial_won": 0.3948,
                "total_shots": 0.1794,
                "rating": 6.6951,
                "minutes": 24.79,
                "total_pass": 8.7311,
                "accurate_pass": 6.8231,
                "duels_won": 1.7154,
                "total_long_balls": 1.6138,
                "accurate_long_balls": 0.4653,
                "total_own_half_passes": 4.377,
                "accurate_own_half_passes": 3.6475,
                "total_opp_half_passes": 4.3541,
                "accurate_opp_half_passes": 3.1756,
                "crosses_total": 1.4069,
                "crosses_accurate": 0.6159,
                "touches": 18.3119,
                "possession_lost": 3.8449,
                "dispossessed": 0.1534,
                "duels_lost": 1.2518,
                "aerial_lost": 0.0508,
                "total_contest": 0.6254,
                "won_contest": 0.2738,
                "ball_recovery": 0.8159,
                "challenges_lost": 0.1882,
                "fouls": 0.5078,
                "fouls_drawn": 0.3989,
                "blocks": 0.0973,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0154,
                "expected_assists": 0.0465,
                "shots_on_target": 0.082,
                "big_chances_created": 0.104,
                "xgot": 0.0164,
                "ball_carries": 2.9304,
                "total_progression": 15.1047,
                "progressive_carries": 0.2251,
                "key_pass": 0.4581,
                "shots_off_target": 0.0974
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 6,
                  "trained_at": "2026-10-23T10:04:32.310343+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 626,
                    "rows": 21426
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Athletic Club",
                    "minutes": 25.0,
                    "is_starting": false,
                    "weight": 0.151,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-09-15",
                    "opponent": "Valencia",
                    "minutes": 23.0,
                    "is_starting": false,
                    "weight": 0.1283,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Osasuna",
                    "minutes": 19.0,
                    "is_starting": false,
                    "weight": 0.1091,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Villarreal",
                    "minutes": 36.0,
                    "is_starting": false,
                    "weight": 0.0927,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-08-20",
                    "opponent": "Rayo Vallecano",
                    "minutes": 20.0,
                    "is_starting": false,
                    "weight": 0.0788,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-08-15",
                    "opponent": "Getafe",
                    "minutes": 25.0,
                    "is_starting": false,
                    "weight": 0.067,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-05-17",
                    "opponent": "Real Oviedo",
                    "minutes": 45.0,
                    "is_starting": false,
                    "weight": 0.0569,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-05-09",
                    "opponent": "Elche",
                    "minutes": 23.0,
                    "is_starting": false,
                    "weight": 0.0484,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-04-21",
                    "opponent": "Real Madrid",
                    "minutes": 66.0,
                    "is_starting": true,
                    "weight": 0.0411,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-04-05",
                    "opponent": "Osasuna",
                    "minutes": 45.0,
                    "is_starting": true,
                    "weight": 0.035,
                    "rating": 6.4
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 0.0,
                  "totalClearance": 1.5521,
                  "aerialWon": 0.3374,
                  "totalClearance_p90": 4.1533,
                  "totalTackle": 0.8792,
                  "defensive_actions": 1.0959
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.2914467453956604,
                    "model_output": 0.2914,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2909
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0422
                      },
                      {
                        "name": "touches",
                        "importance": 0.0304
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0294
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.8603,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.4691
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.04
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0195
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": -0.0088
                        },
                        {
                          "name": "interceptionWon_p90",
                          "contribution": -0.0085
                        }
                      ],
                      "others": -0.023,
                      "total": 0.2914,
                      "log_link": true,
                      "margin_base": -0.150447,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.787968
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.107857
                        },
                        {
                          "name": "totalPass",
                          "margin": -0.057009
                        },
                        {
                          "name": "ballRecovery_p90",
                          "margin": -0.027009
                        },
                        {
                          "name": "interceptionWon_p90",
                          "margin": -0.026565
                        }
                      ],
                      "others_margin": -0.076043
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 0.5847693085670471,
                    "model_output": 0.5848,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2494
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0709
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0459
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0405
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 1.3831,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.7718
                        },
                        {
                          "name": "challengeLost",
                          "contribution": -0.0331
                        },
                        {
                          "name": "totalTackle",
                          "contribution": -0.0285
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.0201
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": 0.0199
                        }
                      ],
                      "others": -0.0049,
                      "total": 0.5848,
                      "log_link": true,
                      "margin_base": 0.324299,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.816504
                        },
                        {
                          "name": "challengeLost",
                          "margin": -0.055718
                        },
                        {
                          "name": "totalTackle",
                          "margin": -0.050628
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.035924
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": 0.034386
                        }
                      ],
                      "others_margin": -0.008299
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.3338497579097748,
                    "model_output": 0.3338,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2138
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0741
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0462
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0368
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0292
                      }
                    ],
                    "decomposition": {
                      "base": 0.845,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.4677
                        },
                        {
                          "name": "challengeLost",
                          "contribution": -0.0232
                        },
                        {
                          "name": "totalTackle",
                          "contribution": -0.0167
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0095
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.0091
                        }
                      ],
                      "others": -0.0032,
                      "total": 0.3338,
                      "log_link": true,
                      "margin_base": -0.168402,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.806247
                        },
                        {
                          "name": "challengeLost",
                          "margin": -0.063478
                        },
                        {
                          "name": "totalTackle",
                          "margin": -0.048193
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.028708
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.027345
                        }
                      ],
                      "others_margin": -0.009381
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 1.066627025604248,
                    "model_output": 1.0666,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2886
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.1626
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0929
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0369
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.02
                      }
                    ],
                    "decomposition": {
                      "base": 3.4251,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -1.9924
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.3137
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.1121
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0503
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0475
                        }
                      ],
                      "others": 0.1575,
                      "total": 1.0666,
                      "log_link": true,
                      "margin_base": 1.231123,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.871547
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.247083
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": -0.105538
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.051204
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.050871
                        }
                      ],
                      "others_margin": 0.159622
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.3948499262332916,
                    "model_output": 0.3948,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "aerialWon",
                        "importance": 0.1614
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1578
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0791
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0413
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0335
                      }
                    ],
                    "decomposition": {
                      "base": 1.3852,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.7542
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.2159
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0363
                        },
                        {
                          "name": "aerialLost",
                          "contribution": -0.026
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0164
                        }
                      ],
                      "others": 0.0256,
                      "total": 0.3948,
                      "log_link": true,
                      "margin_base": 0.325816,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.786364
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.418903
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.091553
                        },
                        {
                          "name": "aerialLost",
                          "margin": -0.071067
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": 0.045444
                        }
                      ],
                      "others_margin": 0.067378
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.17938455939292908,
                    "model_output": 0.1794,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0997
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0736
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.034
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0332
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.4749,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2018
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0668
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0157
                        },
                        {
                          "name": "aerialLost",
                          "contribution": 0.0123
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.0096
                        }
                      ],
                      "others": -0.0139,
                      "total": 0.1794,
                      "log_link": false,
                      "margin_base": 0.47494,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.201781
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.0668
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.015749
                        },
                        {
                          "name": "aerialLost",
                          "margin": 0.012346
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": -0.009602
                        }
                      ],
                      "others_margin": -0.013969
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.695115089416504,
                    "model_output": 6.6951,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "totalPass",
                        "importance": 0.0694
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0576
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.055
                      },
                      {
                        "name": "touches",
                        "importance": 0.0384
                      },
                      {
                        "name": "rating",
                        "importance": 0.0296
                      }
                    ],
                    "decomposition": {
                      "base": 6.7904,
                      "items": [
                        {
                          "name": "totalPass",
                          "contribution": -0.0391
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0178
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0174
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0146
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0105
                        }
                      ],
                      "others": 0.0041,
                      "total": 6.6951,
                      "log_link": false,
                      "margin_base": 6.790384,
                      "item_margins": [
                        {
                          "name": "totalPass",
                          "margin": -0.039115
                        },
                        {
                          "name": "accuratePass",
                          "margin": -0.01779
                        },
                        {
                          "name": "is_starting_11",
                          "margin": -0.01743
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.014573
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.010513
                        }
                      ],
                      "others_margin": 0.004152
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "substitute",
                  "history_matches": 31,
                  "role_matches": 18,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "role_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9984, quality 0.466)",
              "stats": {
                "interceptions": 0.291,
                "tackles": 0.5838,
                "tackles_won": 0.3333,
                "clearances": 1.0649,
                "aerial_won": 0.3942,
                "total_shots": 0.1791,
                "rating": 6.6951,
                "minutes": 24.79,
                "total_pass": 8.7171,
                "accurate_pass": 6.8122,
                "duels_won": 1.7127,
                "total_long_balls": 1.6112,
                "accurate_long_balls": 0.4646,
                "total_own_half_passes": 4.37,
                "accurate_own_half_passes": 3.6417,
                "total_opp_half_passes": 4.3471,
                "accurate_opp_half_passes": 3.1705,
                "crosses_total": 1.4046,
                "crosses_accurate": 0.6149,
                "touches": 18.2826,
                "possession_lost": 3.8387,
                "dispossessed": 0.1532,
                "duels_lost": 1.2498,
                "aerial_lost": 0.0507,
                "total_contest": 0.6244,
                "won_contest": 0.2734,
                "ball_recovery": 0.8146,
                "challenges_lost": 0.1879,
                "fouls": 0.507,
                "fouls_drawn": 0.3983,
                "blocks": 0.0971,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0154,
                "expected_assists": 0.0464,
                "shots_on_target": 0.0819,
                "big_chances_created": 0.1038,
                "xgot": 0.0164,
                "ball_carries": 2.9257,
                "total_progression": 15.0805,
                "progressive_carries": 0.2247,
                "key_pass": 0.4574,
                "shots_off_target": 0.0972
              },
              "params": {
                "market_value_eur": 5300000,
                "quality_factor": 0.4659,
                "boost_factor": 0.9984,
                "reference_quality": 0.505,
                "history_matches": 31,
                "history_shrink": 0.1389,
                "market_value_known": true
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 24.8 to 13.7 expected minutes (appearance prob 0.30)",
              "stats": {
                "interceptions": 0.1606,
                "tackles": 0.3223,
                "tackles_won": 0.184,
                "clearances": 0.5879,
                "aerial_won": 0.2176,
                "total_shots": 0.0989,
                "rating": 6.6951,
                "minutes": 13.68,
                "total_pass": 4.8121,
                "accurate_pass": 3.7605,
                "duels_won": 0.9455,
                "total_long_balls": 0.8894,
                "accurate_long_balls": 0.2565,
                "total_own_half_passes": 2.4124,
                "accurate_own_half_passes": 2.0103,
                "total_opp_half_passes": 2.3997,
                "accurate_opp_half_passes": 1.7502,
                "crosses_total": 0.7754,
                "crosses_accurate": 0.3394,
                "touches": 10.0925,
                "possession_lost": 2.1191,
                "dispossessed": 0.1532,
                "duels_lost": 0.6899,
                "aerial_lost": 0.0507,
                "total_contest": 0.3447,
                "won_contest": 0.1509,
                "ball_recovery": 0.4497,
                "challenges_lost": 0.1879,
                "fouls": 0.2799,
                "fouls_drawn": 0.2199,
                "blocks": 0.0536,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0085,
                "expected_assists": 0.0256,
                "shots_on_target": 0.0452,
                "big_chances_created": 0.0573,
                "xgot": 0.0091,
                "ball_carries": 1.6151,
                "total_progression": 8.3249,
                "progressive_carries": 0.124,
                "key_pass": 0.2525,
                "shots_off_target": 0.0537,
                "bench_appearance_probability": 0.304,
                "bench_expected_minutes": 13.68
              },
              "params": {
                "expected_minutes": 13.68,
                "projection_minutes": 24.79,
                "minutes_scale": 0.552,
                "appearance_probability": 0.304
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 0.1606,
                "tackles": 0.3223,
                "tackles_won": 0.184,
                "clearances": 0.5879,
                "aerial_won": 0.2176,
                "total_shots": 0.0989,
                "rating": 6.6951,
                "minutes": 13.68,
                "total_pass": 4.8121,
                "accurate_pass": 3.7605,
                "duels_won": 0.9455,
                "total_long_balls": 0.8894,
                "accurate_long_balls": 0.2565,
                "total_own_half_passes": 2.4124,
                "accurate_own_half_passes": 2.0103,
                "total_opp_half_passes": 2.3997,
                "accurate_opp_half_passes": 1.7502,
                "crosses_total": 0.7754,
                "crosses_accurate": 0.3394,
                "touches": 10.0925,
                "possession_lost": 2.1191,
                "dispossessed": 0.1532,
                "duels_lost": 0.6899,
                "aerial_lost": 0.0507,
                "total_contest": 0.3447,
                "won_contest": 0.1509,
                "ball_recovery": 0.4497,
                "challenges_lost": 0.1879,
                "fouls": 0.2799,
                "fouls_drawn": 0.2199,
                "blocks": 0.0536,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0085,
                "expected_assists": 0.0256,
                "shots_on_target": 0.0452,
                "big_chances_created": 0.0573,
                "xgot": 0.0091,
                "ball_carries": 1.6151,
                "total_progression": 8.3249,
                "progressive_carries": 0.124,
                "key_pass": 0.2525,
                "shots_off_target": 0.0537,
                "bench_appearance_probability": 0.304,
                "bench_expected_minutes": 13.68
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "not_projected_to_play",
              "description": "Not among the projected substitutes: no share of the team's goals or assists",
              "stats": {
                "interceptions": 0.1606,
                "tackles": 0.3223,
                "tackles_won": 0.184,
                "clearances": 0.5879,
                "aerial_won": 0.2176,
                "total_shots": 0.0989,
                "rating": 6.6951,
                "minutes": 13.68,
                "total_pass": 4.8121,
                "accurate_pass": 3.7605,
                "duels_won": 0.9455,
                "total_long_balls": 0.8894,
                "accurate_long_balls": 0.2565,
                "total_own_half_passes": 2.4124,
                "accurate_own_half_passes": 2.0103,
                "total_opp_half_passes": 2.3997,
                "accurate_opp_half_passes": 1.7502,
                "crosses_total": 0.7754,
                "crosses_accurate": 0.3394,
                "touches": 10.0925,
                "possession_lost": 2.1191,
                "dispossessed": 0.1532,
                "duels_lost": 0.6899,
                "aerial_lost": 0.0507,
                "total_contest": 0.3447,
                "won_contest": 0.1509,
                "ball_recovery": 0.4497,
                "challenges_lost": 0.1879,
                "fouls": 0.2799,
                "fouls_drawn": 0.2199,
                "blocks": 0.0536,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0085,
                "expected_assists": 0.0256,
                "shots_on_target": 0.0452,
                "big_chances_created": 0.0573,
                "xgot": 0.0091,
                "ball_carries": 1.6151,
                "total_progression": 8.3249,
                "progressive_carries": 0.124,
                "key_pass": 0.2525,
                "shots_off_target": 0.0537,
                "bench_appearance_probability": 0.304,
                "bench_expected_minutes": 13.68,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "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
              },
              "params": {
                "appearance_probability": 0.304,
                "projected_substitutes": 3,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 83.0)",
              "stats": {
                "interceptions": 0.1606,
                "tackles": 0.3223,
                "tackles_won": 0.184,
                "clearances": 0.5879,
                "aerial_won": 0.2176,
                "total_shots": 0.0989,
                "rating": 6.6951,
                "minutes": 13.68,
                "total_pass": 4.8121,
                "accurate_pass": 3.7605,
                "duels_won": 0.9455,
                "total_long_balls": 0.8894,
                "accurate_long_balls": 0.2565,
                "total_own_half_passes": 2.4124,
                "accurate_own_half_passes": 2.0103,
                "total_opp_half_passes": 2.3997,
                "accurate_opp_half_passes": 1.7502,
                "crosses_total": 0.7754,
                "crosses_accurate": 0.3394,
                "touches": 10.0925,
                "possession_lost": 2.1191,
                "dispossessed": 0.1532,
                "duels_lost": 0.6899,
                "aerial_lost": 0.0507,
                "total_contest": 0.3447,
                "won_contest": 0.1509,
                "ball_recovery": 0.4497,
                "challenges_lost": 0.1879,
                "fouls": 0.2799,
                "fouls_drawn": 0.2199,
                "blocks": 0.0536,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0085,
                "expected_assists": 0.0256,
                "shots_on_target": 0.0452,
                "big_chances_created": 0.0573,
                "xgot": 0.0091,
                "ball_carries": 1.6151,
                "total_progression": 8.3249,
                "progressive_carries": 0.124,
                "key_pass": 0.2525,
                "shots_off_target": 0.0537,
                "bench_appearance_probability": 0.304,
                "bench_expected_minutes": 13.68,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "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": 83.0
              },
              "params": {
                "match_squad_rank": 15,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 413,
                "fifa_rank": 310.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 83.0
              }
            }
          ]
        },
        "Victor Parada": {
          "player_id": 985726,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 24,
          "height": 184,
          "market_value": 3900000,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 1,
            "aerial_won": 0,
            "total_shots": 0,
            "rating": 6.5878,
            "minutes": 14,
            "total_pass": 4,
            "accurate_pass": 3,
            "duels_won": 1,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "total_own_half_passes": 1,
            "accurate_own_half_passes": 1,
            "total_opp_half_passes": 2,
            "accurate_opp_half_passes": 1,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 7,
            "possession_lost": 1.7146,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 1,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assist_rate": 0.0,
            "assists": 0,
            "expected_goals": 0.0042,
            "expected_assists": 0.0089,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 0,
            "total_progression": 0,
            "progressive_carries": 0,
            "key_pass": 0,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.301,
            "bench_expected_minutes": 13.62,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.588,
            "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": 77.0
          },
          "latest_10_games": [
            {
              "match_id": 14083706,
              "match_date": "2026-05-23",
              "home_team": "Deportivo Alavés",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 33,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0328,
                "expected_assists": 0.0012,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 12,
                "accurate_pass": 10,
                "clearances": 1,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083692,
              "match_date": "2026-05-17",
              "home_team": "Real Oviedo",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Real Oviedo",
              "stats": {
                "minutes": 90,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0042,
                "total_shots": 0,
                "total_pass": 23,
                "accurate_pass": 20,
                "interceptions": 1,
                "clearances": 4,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083603,
              "match_date": "2026-05-13",
              "home_team": "Deportivo Alavés",
              "away_team": "FC Barcelona",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "FC Barcelona",
              "stats": {
                "minutes": 80,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0015,
                "total_shots": 0,
                "total_pass": 5,
                "accurate_pass": 4,
                "tackles": 1,
                "interceptions": 1,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083578,
              "match_date": "2026-05-09",
              "home_team": "Elche",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Elche",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0279,
                "expected_assists": 0.0046,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 21,
                "accurate_pass": 19,
                "tackles": 4,
                "tackles_won": 3,
                "clearances": 7,
                "aerial_won": 1,
                "duels_won": 5,
                "ball_recovery": 3
              },
              "has_player_stats": true
            },
            {
              "match_id": 14083364,
              "match_date": "2026-05-02",
              "home_team": "Deportivo Alavés",
              "away_team": "Athletic Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 90,
                "rating": 6.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.1356,
                "total_shots": 0,
                "total_pass": 44,
                "accurate_pass": 39,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 1,
                "clearances": 3,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true
            },
            {
              "match_id": 14083202,
              "match_date": "2026-04-25",
              "home_team": "Deportivo Alavés",
              "away_team": "Mallorca",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Mallorca",
              "stats": {
                "minutes": 81,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.002,
                "total_shots": 0,
                "total_pass": 23,
                "accurate_pass": 21,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 5,
                "aerial_won": 2,
                "duels_won": 5
              },
              "has_player_stats": true
            },
            {
              "match_id": 14083295,
              "match_date": "2026-04-21",
              "home_team": "Real Madrid",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.2795,
                "expected_assists": 0.0044,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 34,
                "accurate_pass": 32,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true
            },
            {
              "match_id": 14083152,
              "match_date": "2026-04-11",
              "home_team": "Real Sociedad",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 90,
                "rating": 5.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0262,
                "expected_assists": 0.004,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 31,
                "accurate_pass": 23,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 7,
                "aerial_won": 2,
                "duels_won": 3,
                "ball_recovery": 5
              },
              "has_player_stats": true
            },
            {
              "match_id": 14081809,
              "match_date": "2026-04-05",
              "home_team": "Deportivo Alavés",
              "away_team": "Osasuna",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1129,
                "expected_assists": 0.0252,
                "total_shots": 2,
                "shots_off_target": 2,
                "total_pass": 41,
                "accurate_pass": 38,
                "tackles": 1,
                "clearances": 1,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true
            },
            {
              "match_id": 14083689,
              "match_date": "2026-03-22",
              "home_team": "Celta Vigo",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 90,
                "rating": 6.3,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_assists": 0.0162,
                "total_shots": 0,
                "total_pass": 41,
                "accurate_pass": 30,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 4,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true
            }
          ],
          "ranking": {
            "global_player_rank": 2617,
            "combined_rank_score": 1181.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 916.0,
            "sofascore_rating": 6.4966,
            "sofascore_appearances": 30.0,
            "fifa_rank": 1447.0,
            "fifa_overall": 77.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 18,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.5878,
            "source_file": "data/player_rankings.csv",
            "player_name": "Victor Parada",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Carlos Herrera",
                  "ranking": 2612
                },
                {
                  "player_name": "Oybek Urmonjonov",
                  "ranking": 2613
                },
                {
                  "player_name": "Jeremiah Mensah",
                  "ranking": 2614
                },
                {
                  "player_name": "Bendito Mantato",
                  "ranking": 2615
                },
                {
                  "player_name": "Kieran Trippier",
                  "ranking": 2616
                }
              ],
              "lower": [
                {
                  "player_name": "Maximilian Arnold",
                  "ranking": 2618
                },
                {
                  "player_name": "Julián Alfaro",
                  "ranking": 2619
                },
                {
                  "player_name": "Min-Sung Kim",
                  "ranking": 2620
                },
                {
                  "player_name": "Mohamed Amoura",
                  "ranking": 2621
                },
                {
                  "player_name": "Łukasz Skorupski",
                  "ranking": 2622
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.75,
          "history_matches": 30,
          "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",
              "totalTackle",
              "totalShots",
              "rating",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "totalShots",
              "rating"
            ],
            "history_matches": 30,
            "data_confidence": 0.75,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 13.61644058998921,
            "bench_appearance_prob": 0.30074729954496415,
            "market_value_adjustment": 0.9976,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost D_service (30 historical appearances) to 13.6 expected mins (appearance prob 0.30)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 7 target models",
              "stats": {
                "interceptions": 0.2792,
                "tackles": 0.4419,
                "tackles_won": 0.2738,
                "clearances": 0.9484,
                "aerial_won": 0.3971,
                "total_shots": 0.1475,
                "rating": 6.5878,
                "minutes": 20.49,
                "total_pass": 5.6998,
                "accurate_pass": 4.1449,
                "duels_won": 1.6164,
                "total_long_balls": 1.2734,
                "accurate_long_balls": 0.5393,
                "total_own_half_passes": 2.1571,
                "accurate_own_half_passes": 2.1571,
                "total_opp_half_passes": 3.5427,
                "accurate_opp_half_passes": 1.9878,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 10.2428,
                "possession_lost": 2.5864,
                "dispossessed": 0.0,
                "duels_lost": 0.5512,
                "aerial_lost": 0.2696,
                "total_contest": 0.3312,
                "won_contest": 0.3312,
                "ball_recovery": 0.9745,
                "challenges_lost": 0.0,
                "fouls": 0.2815,
                "fouls_drawn": 0.0,
                "blocks": 0.2696,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0063,
                "expected_assists": 0.0134,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 0.0,
                "total_progression": 0.0,
                "progressive_carries": 0.0,
                "key_pass": 0.0,
                "shots_off_target": 0.1475
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 6,
                  "trained_at": "2026-10-23T10:04:32.310343+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 626,
                    "rows": 21426
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-05-23",
                    "opponent": "Rayo Vallecano",
                    "minutes": 33.0,
                    "is_starting": true,
                    "weight": 0.1512,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-05-17",
                    "opponent": "Real Oviedo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1285,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-05-13",
                    "opponent": "FC Barcelona",
                    "minutes": 80.0,
                    "is_starting": true,
                    "weight": 0.1092,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-05-09",
                    "opponent": "Elche",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0928,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-05-02",
                    "opponent": "Athletic Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0789,
                    "rating": 6.0
                  },
                  {
                    "match_date": "2026-04-25",
                    "opponent": "Mallorca",
                    "minutes": 81.0,
                    "is_starting": true,
                    "weight": 0.0671,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-04-21",
                    "opponent": "Real Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.057,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-04-11",
                    "opponent": "Real Sociedad",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0485,
                    "rating": 5.9
                  },
                  {
                    "match_date": "2026-04-05",
                    "opponent": "Osasuna",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0412,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-03-22",
                    "opponent": "Celta Vigo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.035,
                    "rating": 6.3
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 0.0,
                  "totalClearance": 3.1828,
                  "aerialWon": 0.866,
                  "totalClearance_p90": 3.5484,
                  "totalTackle": 1.2381,
                  "defensive_actions": 1.7254
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.2792087197303772,
                    "model_output": 0.2792,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2909
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0422
                      },
                      {
                        "name": "touches",
                        "importance": 0.0304
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0294
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.8603,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.4829
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0369
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": -0.0125
                        },
                        {
                          "name": "touches",
                          "contribution": -0.0095
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0087
                        }
                      ],
                      "others": -0.0306,
                      "total": 0.2792,
                      "log_link": true,
                      "margin_base": -0.150447,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.823954
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.102751
                        },
                        {
                          "name": "ballRecovery_p90",
                          "margin": -0.037514
                        },
                        {
                          "name": "touches",
                          "margin": -0.029492
                        },
                        {
                          "name": "ballRecovery",
                          "margin": -0.02757
                        }
                      ],
                      "others_margin": -0.104069
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 0.44189226627349854,
                    "model_output": 0.4419,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2494
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0709
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0459
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0405
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 1.3831,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.8056
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": -0.0234
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0216
                        },
                        {
                          "name": "totalTackle",
                          "contribution": -0.0145
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0113
                        }
                      ],
                      "others": -0.0648,
                      "total": 0.4419,
                      "log_link": true,
                      "margin_base": 0.324299,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.873495
                        },
                        {
                          "name": "ballRecovery_p90",
                          "margin": -0.041451
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.039841
                        },
                        {
                          "name": "totalTackle",
                          "margin": -0.027599
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.022124
                        }
                      ],
                      "others_margin": -0.136478
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.27380192279815674,
                    "model_output": 0.2738,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2138
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0741
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0462
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0368
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0292
                      }
                    ],
                    "decomposition": {
                      "base": 0.845,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.4918
                        },
                        {
                          "name": "totalTackle",
                          "contribution": -0.0107
                        },
                        {
                          "name": "challengeLost",
                          "contribution": 0.0098
                        },
                        {
                          "name": "errorLeadToAShot",
                          "contribution": -0.0097
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0085
                        }
                      ],
                      "others": -0.0603,
                      "total": 0.2738,
                      "log_link": true,
                      "margin_base": -0.168402,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.872272
                        },
                        {
                          "name": "totalTackle",
                          "margin": -0.030784
                        },
                        {
                          "name": "challengeLost",
                          "margin": 0.028233
                        },
                        {
                          "name": "errorLeadToAShot",
                          "margin": -0.027998
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.025184
                        }
                      ],
                      "others_margin": -0.198944
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 0.948369026184082,
                    "model_output": 0.9484,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2886
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.1626
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0929
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0369
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.02
                      }
                    ],
                    "decomposition": {
                      "base": 3.4251,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -2.2164
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0622
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0456
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.045
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.0443
                        }
                      ],
                      "others": -0.1532,
                      "total": 0.9484,
                      "log_link": true,
                      "margin_base": 1.231123,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -1.041561
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.052807
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.040623
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.040097
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": -0.039425
                        }
                      ],
                      "others_margin": -0.149814
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.39709100127220154,
                    "model_output": 0.3971,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "aerialWon",
                        "importance": 0.1614
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1578
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0791
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0413
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0335
                      }
                    ],
                    "decomposition": {
                      "base": 1.3852,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.8293
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.1174
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0157
                        },
                        {
                          "name": "challengeLost",
                          "contribution": -0.0118
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0108
                        }
                      ],
                      "others": -0.0247,
                      "total": 0.3971,
                      "log_link": true,
                      "margin_base": 0.325816,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.913098
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.237214
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.036454
                        },
                        {
                          "name": "challengeLost",
                          "margin": -0.028418
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.025927
                        }
                      ],
                      "others_margin": -0.060148
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.1475447416305542,
                    "model_output": 0.1475,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0997
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0736
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.034
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0332
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.4749,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2218
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0196
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0187
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0143
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0101
                        }
                      ],
                      "others": -0.0429,
                      "total": 0.1475,
                      "log_link": false,
                      "margin_base": 0.47494,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.221818
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.019594
                        },
                        {
                          "name": "rating",
                          "margin": -0.01871
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.014342
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.010136
                        }
                      ],
                      "others_margin": -0.042796
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.587802886962891,
                    "model_output": 6.5878,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "totalPass",
                        "importance": 0.0694
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0576
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.055
                      },
                      {
                        "name": "touches",
                        "importance": 0.0384
                      },
                      {
                        "name": "rating",
                        "importance": 0.0296
                      }
                    ],
                    "decomposition": {
                      "base": 6.7904,
                      "items": [
                        {
                          "name": "touches_p90",
                          "contribution": -0.0497
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.045
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0185
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0162
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0119
                        }
                      ],
                      "others": -0.0613,
                      "total": 6.5878,
                      "log_link": false,
                      "margin_base": 6.790384,
                      "item_margins": [
                        {
                          "name": "touches_p90",
                          "margin": -0.049665
                        },
                        {
                          "name": "totalPass",
                          "margin": -0.044981
                        },
                        {
                          "name": "rating",
                          "margin": -0.018519
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.016189
                        },
                        {
                          "name": "accuratePass",
                          "margin": -0.011945
                        }
                      ],
                      "others_margin": -0.061282
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "substitute",
                  "history_matches": 30,
                  "role_matches": 5,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "role_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9976, quality 0.449)",
              "stats": {
                "interceptions": 0.2785,
                "tackles": 0.4408,
                "tackles_won": 0.2731,
                "clearances": 0.9461,
                "aerial_won": 0.3961,
                "total_shots": 0.1472,
                "rating": 6.5878,
                "minutes": 20.49,
                "total_pass": 5.6861,
                "accurate_pass": 4.135,
                "duels_won": 1.6125,
                "total_long_balls": 1.2703,
                "accurate_long_balls": 0.538,
                "total_own_half_passes": 2.1519,
                "accurate_own_half_passes": 2.1519,
                "total_opp_half_passes": 3.5342,
                "accurate_opp_half_passes": 1.983,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 10.2182,
                "possession_lost": 2.5802,
                "dispossessed": 0.0,
                "duels_lost": 0.5499,
                "aerial_lost": 0.269,
                "total_contest": 0.3304,
                "won_contest": 0.3304,
                "ball_recovery": 0.9722,
                "challenges_lost": 0.0,
                "fouls": 0.2808,
                "fouls_drawn": 0.0,
                "blocks": 0.269,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0063,
                "expected_assists": 0.0134,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 0.0,
                "total_progression": 0.0,
                "progressive_carries": 0.0,
                "key_pass": 0.0,
                "shots_off_target": 0.1471
              },
              "params": {
                "market_value_eur": 3900000,
                "quality_factor": 0.4486,
                "boost_factor": 0.9976,
                "reference_quality": 0.505,
                "history_matches": 30,
                "history_shrink": 0.1429,
                "market_value_known": true
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 20.5 to 13.6 expected minutes (appearance prob 0.30)",
              "stats": {
                "interceptions": 0.1851,
                "tackles": 0.2929,
                "tackles_won": 0.1815,
                "clearances": 0.6287,
                "aerial_won": 0.2632,
                "total_shots": 0.0978,
                "rating": 6.5878,
                "minutes": 13.62,
                "total_pass": 3.7786,
                "accurate_pass": 2.7479,
                "duels_won": 1.0716,
                "total_long_balls": 0.8442,
                "accurate_long_balls": 0.3575,
                "total_own_half_passes": 1.43,
                "accurate_own_half_passes": 1.43,
                "total_opp_half_passes": 2.3486,
                "accurate_opp_half_passes": 1.3178,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 6.7904,
                "possession_lost": 1.7146,
                "dispossessed": 0.0,
                "duels_lost": 0.3654,
                "aerial_lost": 0.269,
                "total_contest": 0.2196,
                "won_contest": 0.2196,
                "ball_recovery": 0.6461,
                "challenges_lost": 0.0,
                "fouls": 0.1866,
                "fouls_drawn": 0.0,
                "blocks": 0.1788,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0042,
                "expected_assists": 0.0089,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 0.0,
                "total_progression": 0.0,
                "progressive_carries": 0.0,
                "key_pass": 0.0,
                "shots_off_target": 0.0978,
                "bench_appearance_probability": 0.301,
                "bench_expected_minutes": 13.62
              },
              "params": {
                "expected_minutes": 13.62,
                "projection_minutes": 20.49,
                "minutes_scale": 0.6645,
                "appearance_probability": 0.301
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 0.1851,
                "tackles": 0.2929,
                "tackles_won": 0.1815,
                "clearances": 0.6287,
                "aerial_won": 0.2632,
                "total_shots": 0.0978,
                "rating": 6.5878,
                "minutes": 13.62,
                "total_pass": 3.7786,
                "accurate_pass": 2.7479,
                "duels_won": 1.0716,
                "total_long_balls": 0.8442,
                "accurate_long_balls": 0.3575,
                "total_own_half_passes": 1.43,
                "accurate_own_half_passes": 1.43,
                "total_opp_half_passes": 2.3486,
                "accurate_opp_half_passes": 1.3178,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 6.7904,
                "possession_lost": 1.7146,
                "dispossessed": 0.0,
                "duels_lost": 0.3654,
                "aerial_lost": 0.269,
                "total_contest": 0.2196,
                "won_contest": 0.2196,
                "ball_recovery": 0.6461,
                "challenges_lost": 0.0,
                "fouls": 0.1866,
                "fouls_drawn": 0.0,
                "blocks": 0.1788,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0042,
                "expected_assists": 0.0089,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 0.0,
                "total_progression": 0.0,
                "progressive_carries": 0.0,
                "key_pass": 0.0,
                "shots_off_target": 0.0978,
                "bench_appearance_probability": 0.301,
                "bench_expected_minutes": 13.62
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "not_projected_to_play",
              "description": "Not among the projected substitutes: no share of the team's goals or assists",
              "stats": {
                "interceptions": 0.1851,
                "tackles": 0.2929,
                "tackles_won": 0.1815,
                "clearances": 0.6287,
                "aerial_won": 0.2632,
                "total_shots": 0.0978,
                "rating": 6.5878,
                "minutes": 13.62,
                "total_pass": 3.7786,
                "accurate_pass": 2.7479,
                "duels_won": 1.0716,
                "total_long_balls": 0.8442,
                "accurate_long_balls": 0.3575,
                "total_own_half_passes": 1.43,
                "accurate_own_half_passes": 1.43,
                "total_opp_half_passes": 2.3486,
                "accurate_opp_half_passes": 1.3178,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 6.7904,
                "possession_lost": 1.7146,
                "dispossessed": 0.0,
                "duels_lost": 0.3654,
                "aerial_lost": 0.269,
                "total_contest": 0.2196,
                "won_contest": 0.2196,
                "ball_recovery": 0.6461,
                "challenges_lost": 0.0,
                "fouls": 0.1866,
                "fouls_drawn": 0.0,
                "blocks": 0.1788,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0042,
                "expected_assists": 0.0089,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 0.0,
                "total_progression": 0.0,
                "progressive_carries": 0.0,
                "key_pass": 0.0,
                "shots_off_target": 0.0978,
                "bench_appearance_probability": 0.301,
                "bench_expected_minutes": 13.62,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "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
              },
              "params": {
                "appearance_probability": 0.301,
                "projected_substitutes": 3,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 18 by projected rating, fifa_overall 77.0)",
              "stats": {
                "interceptions": 0.1851,
                "tackles": 0.2929,
                "tackles_won": 0.1815,
                "clearances": 0.6287,
                "aerial_won": 0.2632,
                "total_shots": 0.0978,
                "rating": 6.5878,
                "minutes": 13.62,
                "total_pass": 3.7786,
                "accurate_pass": 2.7479,
                "duels_won": 1.0716,
                "total_long_balls": 0.8442,
                "accurate_long_balls": 0.3575,
                "total_own_half_passes": 1.43,
                "accurate_own_half_passes": 1.43,
                "total_opp_half_passes": 2.3486,
                "accurate_opp_half_passes": 1.3178,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 6.7904,
                "possession_lost": 1.7146,
                "dispossessed": 0.0,
                "duels_lost": 0.3654,
                "aerial_lost": 0.269,
                "total_contest": 0.2196,
                "won_contest": 0.2196,
                "ball_recovery": 0.6461,
                "challenges_lost": 0.0,
                "fouls": 0.1866,
                "fouls_drawn": 0.0,
                "blocks": 0.1788,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0042,
                "expected_assists": 0.0089,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 0.0,
                "total_progression": 0.0,
                "progressive_carries": 0.0,
                "key_pass": 0.0,
                "shots_off_target": 0.0978,
                "bench_appearance_probability": 0.301,
                "bench_expected_minutes": 13.62,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "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": 77.0
              },
              "params": {
                "match_squad_rank": 18,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 2617,
                "fifa_rank": 1447.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 77.0
              }
            }
          ]
        },
        "Carles Aleñá": {
          "player_id": 794937,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 10,
          "height": 180,
          "market_value": 2800000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0278,
            "assist_rate": 0.0612,
            "assists": 0,
            "expected_goals": 0.0228,
            "goal_rate": 0.0393,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 0,
            "rating": 6.7243,
            "minutes": 13,
            "total_pass": 7,
            "accurate_pass": 7,
            "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": 6,
            "accurate_opp_half_passes": 5,
            "crosses_total": 1,
            "crosses_accurate": 0,
            "touches": 11,
            "possession_lost": 2.5505,
            "dispossessed": 0.8022,
            "duels_lost": 1,
            "aerial_won": 0,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0009,
            "ball_carries": 3,
            "total_progression": 4,
            "progressive_carries": 0,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.692,
            "bench_expected_minutes": 13.19,
            "projected_substitution_order": 1,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.588,
            "projected_substitution_game_state_adjustment": 0,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0224,
            "projected_assists": 0,
            "assist_probability": 0.0272,
            "finishing_factor": 1.0733,
            "creation_factor": 1.25,
            "fifa_overall": 78.0
          },
          "latest_10_games": [
            {
              "match_id": 16421069,
              "match_date": "2026-10-18",
              "home_team": "Celta Vigo",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 62,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0714,
                "expected_assists": 0.0742,
                "total_shots": 1,
                "total_pass": 32,
                "accurate_pass": 28,
                "key_pass": 2,
                "aerial_won": 1,
                "duels_won": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416337,
              "match_date": "2026-09-19",
              "home_team": "Athletic Club",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 11,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0012,
                "total_shots": 0,
                "total_pass": 5,
                "accurate_pass": 5,
                "duels_won": 1,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416334,
              "match_date": "2026-09-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Valencia",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Valencia",
              "stats": {
                "minutes": 11,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0065,
                "total_shots": 0,
                "total_pass": 7,
                "accurate_pass": 6,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416328,
              "match_date": "2026-09-12",
              "home_team": "Real Racing Club",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 23,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0039,
                "total_shots": 0,
                "total_pass": 10,
                "accurate_pass": 5,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416318,
              "match_date": "2026-09-06",
              "home_team": "Deportivo Alavés",
              "away_team": "Osasuna",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 71,
                "rating": 6.6,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.0901,
                "expected_assists": 0.0221,
                "total_shots": 1,
                "total_pass": 30,
                "accurate_pass": 25,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 1,
                "clearances": 2,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416292,
              "match_date": "2026-08-20",
              "home_team": "Rayo Vallecano",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 10,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0106,
                "total_shots": 0,
                "total_pass": 9,
                "accurate_pass": 8,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421047,
              "match_date": "2026-08-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Getafe",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Getafe",
              "stats": {
                "minutes": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0174,
                "expected_assists": 0.0054,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 9,
                "accurate_pass": 9
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083364,
              "match_date": "2026-05-02",
              "home_team": "Deportivo Alavés",
              "away_team": "Athletic Club",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 17,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0495,
                "total_shots": 0,
                "total_pass": 7,
                "accurate_pass": 7,
                "tackles": 1,
                "duels_won": 1
              },
              "has_player_stats": true
            },
            {
              "match_id": 14083202,
              "match_date": "2026-04-25",
              "home_team": "Deportivo Alavés",
              "away_team": "Mallorca",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Mallorca",
              "stats": {
                "minutes": 63,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0271,
                "expected_assists": 0.1834,
                "total_shots": 1,
                "total_pass": 23,
                "accurate_pass": 18,
                "key_pass": 3,
                "tackles": 1,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true
            },
            {
              "match_id": 14083295,
              "match_date": "2026-04-21",
              "home_team": "Real Madrid",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 32,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1123,
                "expected_assists": 0.1614,
                "total_shots": 2,
                "shots_off_target": 1,
                "total_pass": 27,
                "accurate_pass": 25,
                "key_pass": 2,
                "duels_won": 1
              },
              "has_player_stats": true
            }
          ],
          "ranking": {
            "global_player_rank": 2212,
            "combined_rank_score": 1041.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 822.0,
            "sofascore_rating": 6.6,
            "sofascore_appearances": 2.0,
            "fifa_rank": 1260.0,
            "fifa_overall": 78.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 13,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.7243,
            "source_file": "data/player_rankings.csv",
            "player_name": "Carles Aleñá",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Darko Velkovski",
                  "ranking": 2207
                },
                {
                  "player_name": "Sandro Wieser",
                  "ranking": 2208
                },
                {
                  "player_name": "Zafar Sadullayev",
                  "ranking": 2209
                },
                {
                  "player_name": "Tyrell Malacia",
                  "ranking": 2210
                },
                {
                  "player_name": "Yeremay Hernández",
                  "ranking": 2211
                }
              ],
              "lower": [
                {
                  "player_name": "Jorge Cestero",
                  "ranking": 2213
                },
                {
                  "player_name": "Wallace Yan",
                  "ranking": 2214
                },
                {
                  "player_name": "Behruz Uktamov",
                  "ranking": 2215
                },
                {
                  "player_name": "Ilkhomzhon Kenzhaev",
                  "ranking": 2216
                },
                {
                  "player_name": "Ravshanbek Yagudin",
                  "ranking": 2217
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.751,
          "history_matches": 41,
          "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",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "rating",
              "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",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 41,
            "data_confidence": 0.751,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 13.19,
            "bench_appearance_prob": 0.692,
            "market_value_adjustment": 0.9978,
            "fbref_prior_metrics": {
              "squad": "Alavés",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 0.0,
              "sub_appearances": 2.0,
              "minutes_per_sub": 6.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "prior_reliability": 0.0067
            },
            "rationale": "Bench projection scaled from XGBoost M_service (41 historical appearances) to 13.2 expected mins (appearance prob 0.69); FBref playing time empirical prior: 2.0 sub appearances, 6.0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 0.5133,
                "expected_assists": 0.0519,
                "assists": 0.0844,
                "assist_rate": 0.0844,
                "expected_goals": 0.0458,
                "goals": 0.0542,
                "goal_rate": 0.0542,
                "shots_on_target": 0.153,
                "total_shots": 0.5269,
                "rating": 6.7243,
                "minutes": 18.18,
                "total_pass": 10.3258,
                "accurate_pass": 9.0704,
                "duels_won": 0.9854,
                "total_long_balls": 0.467,
                "accurate_long_balls": 0.3216,
                "total_own_half_passes": 2.4329,
                "accurate_own_half_passes": 2.2796,
                "total_opp_half_passes": 7.8929,
                "accurate_opp_half_passes": 6.7908,
                "crosses_total": 1.4543,
                "crosses_accurate": 0.2959,
                "touches": 15.2867,
                "possession_lost": 3.5232,
                "dispossessed": 0.804,
                "duels_lost": 1.4241,
                "aerial_won": 0.0,
                "aerial_lost": 0.2203,
                "interceptions": 0.0,
                "tackles_won": 0.2812,
                "tackles": 0.3531,
                "clearances": 0.0196,
                "total_contest": 0.3506,
                "won_contest": 0.149,
                "challenges_lost": 0.0271,
                "fouls": 0.171,
                "fouls_drawn": 0.4833,
                "blocks": 0.0,
                "big_chances_created": 0.1386,
                "big_chances_missed": 0.0,
                "xgot": 0.0018,
                "ball_carries": 4.2971,
                "total_progression": 5.2545,
                "progressive_carries": 0.0,
                "shots_off_target": 0.3739
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 7,
                  "trained_at": "2026-10-23T10:05:23.571433+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 903,
                    "rows": 24475
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Celta Vigo",
                    "minutes": 62.0,
                    "is_starting": true,
                    "weight": 0.1502,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Athletic Club",
                    "minutes": 11.0,
                    "is_starting": false,
                    "weight": 0.1277,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-09-15",
                    "opponent": "Valencia",
                    "minutes": 11.0,
                    "is_starting": false,
                    "weight": 0.1085,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Real Racing Club",
                    "minutes": 23.0,
                    "is_starting": false,
                    "weight": 0.0922,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Osasuna",
                    "minutes": 71.0,
                    "is_starting": true,
                    "weight": 0.0784,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-08-20",
                    "opponent": "Rayo Vallecano",
                    "minutes": 10.0,
                    "is_starting": false,
                    "weight": 0.0666,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-08-15",
                    "opponent": "Getafe",
                    "minutes": 1.0,
                    "is_starting": false,
                    "weight": 0.0566,
                    "rating": 0.0
                  },
                  {
                    "match_date": "2026-05-02",
                    "opponent": "Athletic Club",
                    "minutes": 17.0,
                    "is_starting": false,
                    "weight": 0.0481,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-04-25",
                    "opponent": "Mallorca",
                    "minutes": 63.0,
                    "is_starting": true,
                    "weight": 0.0409,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-04-21",
                    "opponent": "Real Madrid",
                    "minutes": 32.0,
                    "is_starting": false,
                    "weight": 0.0348,
                    "rating": 6.7
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 0.0,
                  "creative_index": 0.3748,
                  "totalShots": 0.5602,
                  "expectedGoals": 0.0398,
                  "expectedAssists": 0.0496,
                  "onTargetScoringAttempt": 0.0821
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.5132712721824646,
                    "model_output": 0.5133,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1647
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1377
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0663
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0524
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0316
                      }
                    ],
                    "decomposition": {
                      "base": 0.8945,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.441
                        },
                        {
                          "name": "totalCross",
                          "contribution": 0.0267
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0233
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0223
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.0145
                        }
                      ],
                      "others": 0.0176,
                      "total": 0.5133,
                      "log_link": true,
                      "margin_base": -0.111507,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.679245
                        },
                        {
                          "name": "totalCross",
                          "margin": 0.057291
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.047285
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.045402
                        },
                        {
                          "name": "cross_creative_contribution",
                          "margin": 0.029626
                        }
                      ],
                      "others_margin": 0.035001
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.05190287157893181,
                    "model_output": 0.0519,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1545
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1048
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.1021
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0476
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0472
                      }
                    ],
                    "decomposition": {
                      "base": 0.0859,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0391
                        },
                        {
                          "name": "totalCross",
                          "contribution": 0.0095
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0035
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0032
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0028
                        }
                      ],
                      "others": -0.0019,
                      "total": 0.0519,
                      "log_link": true,
                      "margin_base": -2.454719,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.606473
                        },
                        {
                          "name": "totalCross",
                          "margin": 0.184207
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.061047
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.054752
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.051166
                        }
                      ],
                      "others_margin": -0.036525
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.0844392403960228,
                    "model_output": 0.0844,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.0619
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0395
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0343
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0335
                      }
                    ],
                    "decomposition": {
                      "base": 0.0874,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0237
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0086
                        },
                        {
                          "name": "press_vulnerability",
                          "contribution": 0.0074
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0078
                        },
                        {
                          "name": "totalCross",
                          "contribution": 0.0069
                        }
                      ],
                      "others": -0.01,
                      "total": 0.0844,
                      "log_link": true,
                      "margin_base": -2.437263,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.316401
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.1272
                        },
                        {
                          "name": "press_vulnerability",
                          "margin": 0.096957
                        },
                        {
                          "name": "creative_index",
                          "margin": 0.092836
                        },
                        {
                          "name": "totalCross",
                          "margin": 0.075873
                        }
                      ],
                      "others_margin": -0.110925
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.04575786367058754,
                    "model_output": 0.0458,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedGoals",
                        "importance": 0.134
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.074
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0705
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.039
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0273
                      }
                    ],
                    "decomposition": {
                      "base": 0.094,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0411
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0078
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0041
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": 0.0034
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0026
                        }
                      ],
                      "others": -0.0042,
                      "total": 0.0458,
                      "log_link": true,
                      "margin_base": -2.364919,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.575588
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.158822
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.087993
                        },
                        {
                          "name": "interceptionWon",
                          "margin": 0.067331
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.050437
                        }
                      ],
                      "others_margin": -0.089948
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.05418189987540245,
                    "model_output": 0.0542,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0974
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0527
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0513
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0365
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.03
                      }
                    ],
                    "decomposition": {
                      "base": 0.0993,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0377
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0076
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0067
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0052
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0043
                        }
                      ],
                      "others": -0.0056,
                      "total": 0.0542,
                      "log_link": true,
                      "margin_base": -2.309444,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.476858
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.131953
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.11609
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.088986
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.073855
                        }
                      ],
                      "others_margin": -0.098112
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.1529776006937027,
                    "model_output": 0.153,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1106
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0885
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0762
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0292
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0279
                      }
                    ],
                    "decomposition": {
                      "base": 0.326,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1233
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0437
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0202
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0188
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0072
                        }
                      ],
                      "others": 0.0026,
                      "total": 0.153,
                      "log_link": true,
                      "margin_base": -1.120773,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.47528
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.242517
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": -0.136143
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.126988
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.046678
                        }
                      ],
                      "others_margin": 0.016939
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.5268528461456299,
                    "model_output": 0.5269,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1261
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1167
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0633
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0419
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.9969,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.3951
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.2033
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0763
                        },
                        {
                          "name": "press_vulnerability",
                          "contribution": 0.0336
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.027
                        }
                      ],
                      "others": 0.0455,
                      "total": 0.5269,
                      "log_link": false,
                      "margin_base": 0.996896,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.395139
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.203301
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.076268
                        },
                        {
                          "name": "press_vulnerability",
                          "margin": 0.033618
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": -0.027001
                        }
                      ],
                      "others_margin": 0.045511
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.724302768707275,
                    "model_output": 6.7243,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "rating",
                        "importance": 0.0947
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0836
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0491
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0438
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.036
                      }
                    ],
                    "decomposition": {
                      "base": 6.8561,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0963
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0455
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0279
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0252
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0142
                        }
                      ],
                      "others": -0.0015,
                      "total": 6.7243,
                      "log_link": false,
                      "margin_base": 6.856052,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.096344
                        },
                        {
                          "name": "rating",
                          "margin": -0.045537
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.027872
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.025181
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.014195
                        }
                      ],
                      "others_margin": -0.00137
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "substitute",
                  "history_matches": 41,
                  "role_matches": 16,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "role_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9978, quality 0.437)",
              "stats": {
                "key_pass": 0.5121,
                "expected_assists": 0.0518,
                "assists": 0.0843,
                "assist_rate": 0.0843,
                "expected_goals": 0.0457,
                "goals": 0.0541,
                "goal_rate": 0.0541,
                "shots_on_target": 0.1526,
                "total_shots": 0.5257,
                "rating": 6.7243,
                "minutes": 18.18,
                "total_pass": 10.3031,
                "accurate_pass": 9.0504,
                "duels_won": 0.9832,
                "total_long_balls": 0.466,
                "accurate_long_balls": 0.3209,
                "total_own_half_passes": 2.4275,
                "accurate_own_half_passes": 2.2746,
                "total_opp_half_passes": 7.8755,
                "accurate_opp_half_passes": 6.7759,
                "crosses_total": 1.4511,
                "crosses_accurate": 0.2952,
                "touches": 15.2531,
                "possession_lost": 3.5154,
                "dispossessed": 0.8022,
                "duels_lost": 1.421,
                "aerial_won": 0.0,
                "aerial_lost": 0.2198,
                "interceptions": 0.0,
                "tackles_won": 0.2806,
                "tackles": 0.3523,
                "clearances": 0.0196,
                "total_contest": 0.3498,
                "won_contest": 0.1487,
                "challenges_lost": 0.027,
                "fouls": 0.1706,
                "fouls_drawn": 0.4822,
                "blocks": 0.0,
                "big_chances_created": 0.1383,
                "big_chances_missed": 0.0,
                "xgot": 0.0018,
                "ball_carries": 4.2876,
                "total_progression": 5.2429,
                "progressive_carries": 0.0,
                "shots_off_target": 0.3731
              },
              "params": {
                "market_value_eur": 2800000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9978,
                "reference_quality": 0.505,
                "history_matches": 41,
                "history_shrink": 0.1087,
                "market_value_known": true
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0005)",
              "stats": {
                "key_pass": 0.5121,
                "expected_assists": 0.0518,
                "assists": 0.0843,
                "assist_rate": 0.0843,
                "expected_goals": 0.0457,
                "goals": 0.0541,
                "goal_rate": 0.0541,
                "shots_on_target": 0.1532,
                "total_shots": 0.5262,
                "rating": 6.7243,
                "minutes": 18.18,
                "total_pass": 10.3031,
                "accurate_pass": 9.0504,
                "duels_won": 0.9832,
                "total_long_balls": 0.466,
                "accurate_long_balls": 0.3209,
                "total_own_half_passes": 2.4275,
                "accurate_own_half_passes": 2.2746,
                "total_opp_half_passes": 7.8755,
                "accurate_opp_half_passes": 6.7759,
                "crosses_total": 1.4523,
                "crosses_accurate": 0.2952,
                "touches": 15.2531,
                "possession_lost": 3.5154,
                "dispossessed": 0.8022,
                "duels_lost": 1.421,
                "aerial_won": 0.0,
                "aerial_lost": 0.2198,
                "interceptions": 0.0,
                "tackles_won": 0.2814,
                "tackles": 0.3523,
                "clearances": 0.0196,
                "total_contest": 0.3498,
                "won_contest": 0.1487,
                "challenges_lost": 0.027,
                "fouls": 0.1705,
                "fouls_drawn": 0.482,
                "blocks": 0.0,
                "big_chances_created": 0.1383,
                "big_chances_missed": 0.0,
                "xgot": 0.0018,
                "ball_carries": 4.2876,
                "total_progression": 5.2429,
                "progressive_carries": 0.0,
                "shots_off_target": 0.3731
              },
              "params": {
                "blend_weight": 0.0005,
                "history_matches": 41,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.202,
                "prior_reliability": 0.0067,
                "competition": "La Liga",
                "squad": "Alavés"
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 18.2 to 13.2 expected minutes (appearance prob 0.69)",
              "stats": {
                "key_pass": 0.3715,
                "expected_assists": 0.0376,
                "assists": 0.0612,
                "assist_rate": 0.0612,
                "expected_goals": 0.0332,
                "goals": 0.0393,
                "goal_rate": 0.0393,
                "shots_on_target": 0.1112,
                "total_shots": 0.3819,
                "rating": 6.7243,
                "minutes": 13.19,
                "total_pass": 7.4751,
                "accurate_pass": 6.5663,
                "duels_won": 0.7133,
                "total_long_balls": 0.3381,
                "accurate_long_balls": 0.2328,
                "total_own_half_passes": 1.7612,
                "accurate_own_half_passes": 1.6503,
                "total_opp_half_passes": 5.7139,
                "accurate_opp_half_passes": 4.9161,
                "crosses_total": 1.0537,
                "crosses_accurate": 0.2142,
                "touches": 11.0665,
                "possession_lost": 2.5505,
                "dispossessed": 0.8022,
                "duels_lost": 1.031,
                "aerial_won": 0.0,
                "aerial_lost": 0.2198,
                "interceptions": 0.0,
                "tackles_won": 0.2042,
                "tackles": 0.2556,
                "clearances": 0.0142,
                "total_contest": 0.2538,
                "won_contest": 0.1079,
                "challenges_lost": 0.027,
                "fouls": 0.1237,
                "fouls_drawn": 0.3497,
                "blocks": 0.0,
                "big_chances_created": 0.1003,
                "big_chances_missed": 0.0,
                "xgot": 0.0013,
                "ball_carries": 3.1108,
                "total_progression": 3.8038,
                "progressive_carries": 0.0,
                "shots_off_target": 0.2707,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 13.19
              },
              "params": {
                "expected_minutes": 13.19,
                "projection_minutes": 18.18,
                "minutes_scale": 0.7255,
                "appearance_probability": 0.692
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0.3715,
                "expected_assists": 0.0376,
                "assists": 0.0612,
                "assist_rate": 0.0612,
                "expected_goals": 0.0332,
                "goals": 0.0393,
                "goal_rate": 0.0393,
                "shots_on_target": 0.1112,
                "total_shots": 0.3819,
                "rating": 6.7243,
                "minutes": 13.19,
                "total_pass": 7.4751,
                "accurate_pass": 6.5663,
                "duels_won": 0.7133,
                "total_long_balls": 0.3381,
                "accurate_long_balls": 0.2328,
                "total_own_half_passes": 1.7612,
                "accurate_own_half_passes": 1.6503,
                "total_opp_half_passes": 5.7139,
                "accurate_opp_half_passes": 4.9161,
                "crosses_total": 1.0537,
                "crosses_accurate": 0.2142,
                "touches": 11.0665,
                "possession_lost": 2.5505,
                "dispossessed": 0.8022,
                "duels_lost": 1.031,
                "aerial_won": 0.0,
                "aerial_lost": 0.2198,
                "interceptions": 0.0,
                "tackles_won": 0.2042,
                "tackles": 0.2556,
                "clearances": 0.0142,
                "total_contest": 0.2538,
                "won_contest": 0.1079,
                "challenges_lost": 0.027,
                "fouls": 0.1237,
                "fouls_drawn": 0.3497,
                "blocks": 0.0,
                "big_chances_created": 0.1003,
                "big_chances_missed": 0.0,
                "xgot": 0.0013,
                "ball_carries": 3.1108,
                "total_progression": 3.8038,
                "progressive_carries": 0.0,
                "shots_off_target": 0.2707,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 13.19
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "key_pass": 0.3715,
                "expected_assists": 0.0376,
                "assist_rate": 0.0612,
                "assists": 0,
                "expected_goals": 0.0332,
                "goal_rate": 0.0393,
                "goals": 0,
                "shots_on_target": 0.1112,
                "total_shots": 0.3819,
                "rating": 6.7243,
                "minutes": 13.19,
                "total_pass": 7.4751,
                "accurate_pass": 6.5663,
                "duels_won": 0.7133,
                "total_long_balls": 0.3381,
                "accurate_long_balls": 0.2328,
                "total_own_half_passes": 1.7612,
                "accurate_own_half_passes": 1.6503,
                "total_opp_half_passes": 5.7139,
                "accurate_opp_half_passes": 4.9161,
                "crosses_total": 1.0537,
                "crosses_accurate": 0.2142,
                "touches": 11.0665,
                "possession_lost": 2.5505,
                "dispossessed": 0.8022,
                "duels_lost": 1.031,
                "aerial_won": 0.0,
                "aerial_lost": 0.2198,
                "interceptions": 0.0,
                "tackles_won": 0.2042,
                "tackles": 0.2556,
                "clearances": 0.0142,
                "total_contest": 0.2538,
                "won_contest": 0.1079,
                "challenges_lost": 0.027,
                "fouls": 0.1237,
                "fouls_drawn": 0.3497,
                "blocks": 0.0,
                "big_chances_created": 0.1003,
                "big_chances_missed": 0.0,
                "xgot": 0.0013,
                "ball_carries": 3.1108,
                "total_progression": 3.8038,
                "progressive_carries": 0.0,
                "shots_off_target": 0.2707,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 13.19,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "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": {
                "scoreline_reset": true,
                "team_goals": 1
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.26 (squad xG sum 1.2639, xG scale 0.9946, xA scale 1.0687, team xA 0.82 = 0.65 x lambda)",
              "stats": {
                "key_pass": 0.3715,
                "expected_assists": 0.0278,
                "assist_rate": 0.0612,
                "assists": 0,
                "expected_goals": 0.0228,
                "goal_rate": 0.0393,
                "goals": 0,
                "shots_on_target": 0.1112,
                "total_shots": 0.3819,
                "rating": 6.7243,
                "minutes": 13.19,
                "total_pass": 7.4751,
                "accurate_pass": 6.5663,
                "duels_won": 0.7133,
                "total_long_balls": 0.3381,
                "accurate_long_balls": 0.2328,
                "total_own_half_passes": 1.7612,
                "accurate_own_half_passes": 1.6503,
                "total_opp_half_passes": 5.7139,
                "accurate_opp_half_passes": 4.9161,
                "crosses_total": 1.0537,
                "crosses_accurate": 0.2142,
                "touches": 11.0665,
                "possession_lost": 2.5505,
                "dispossessed": 0.8022,
                "duels_lost": 1.031,
                "aerial_won": 0.0,
                "aerial_lost": 0.2198,
                "interceptions": 0.0,
                "tackles_won": 0.2042,
                "tackles": 0.2556,
                "clearances": 0.0142,
                "total_contest": 0.2538,
                "won_contest": 0.1079,
                "challenges_lost": 0.027,
                "fouls": 0.1237,
                "fouls_drawn": 0.3497,
                "blocks": 0.0,
                "big_chances_created": 0.1003,
                "big_chances_missed": 0.0,
                "xgot": 0.0009,
                "ball_carries": 3.1108,
                "total_progression": 3.8038,
                "progressive_carries": 0.0,
                "shots_off_target": 0.2707,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 13.19,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "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,
                "finishing_factor": 1.0733,
                "creation_factor": 1.25
              },
              "params": {
                "team_lambda": 1.257,
                "squad_xg_sum": 1.2639,
                "squad_xa_sum": 0.7645,
                "team_expected_assists": 0.817,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.9946,
                "xa_scale": 1.0687,
                "opponent_lambda": 0.869,
                "scoreline_reset": true,
                "appearance_weight": 0.692
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0332,
                  "after": 0.0228
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0376,
                  "after": 0.0278
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 78.0)",
              "stats": {
                "key_pass": 0.3715,
                "expected_assists": 0.0278,
                "assist_rate": 0.0612,
                "assists": 0,
                "expected_goals": 0.0228,
                "goal_rate": 0.0393,
                "goals": 0,
                "shots_on_target": 0.1112,
                "total_shots": 0.3819,
                "rating": 6.7243,
                "minutes": 13.19,
                "total_pass": 7.4751,
                "accurate_pass": 6.5663,
                "duels_won": 0.7133,
                "total_long_balls": 0.3381,
                "accurate_long_balls": 0.2328,
                "total_own_half_passes": 1.7612,
                "accurate_own_half_passes": 1.6503,
                "total_opp_half_passes": 5.7139,
                "accurate_opp_half_passes": 4.9161,
                "crosses_total": 1.0537,
                "crosses_accurate": 0.2142,
                "touches": 11.0665,
                "possession_lost": 2.5505,
                "dispossessed": 0.8022,
                "duels_lost": 1.031,
                "aerial_won": 0.0,
                "aerial_lost": 0.2198,
                "interceptions": 0.0,
                "tackles_won": 0.2042,
                "tackles": 0.2556,
                "clearances": 0.0142,
                "total_contest": 0.2538,
                "won_contest": 0.1079,
                "challenges_lost": 0.027,
                "fouls": 0.1237,
                "fouls_drawn": 0.3497,
                "blocks": 0.0,
                "big_chances_created": 0.1003,
                "big_chances_missed": 0.0,
                "xgot": 0.0009,
                "ball_carries": 3.1108,
                "total_progression": 3.8038,
                "progressive_carries": 0.0,
                "shots_off_target": 0.2707,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 13.19,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "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,
                "finishing_factor": 1.0733,
                "creation_factor": 1.25,
                "fifa_overall": 78.0
              },
              "params": {
                "match_squad_rank": 13,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 2212,
                "fifa_rank": 1260.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 78.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "key_pass": 0.3715,
                "expected_assists": 0.0278,
                "assist_rate": 0.0612,
                "assists": 0,
                "expected_goals": 0.0228,
                "goal_rate": 0.0393,
                "goals": 0,
                "shots_on_target": 0.1112,
                "total_shots": 0.3819,
                "rating": 6.7243,
                "minutes": 13.19,
                "total_pass": 7.4751,
                "accurate_pass": 6.5663,
                "duels_won": 0.7133,
                "total_long_balls": 0.3381,
                "accurate_long_balls": 0.2328,
                "total_own_half_passes": 1.7612,
                "accurate_own_half_passes": 1.6503,
                "total_opp_half_passes": 5.7139,
                "accurate_opp_half_passes": 4.9161,
                "crosses_total": 1.0537,
                "crosses_accurate": 0.2142,
                "touches": 11.0665,
                "possession_lost": 2.5505,
                "dispossessed": 0.8022,
                "duels_lost": 1.031,
                "aerial_won": 0.0,
                "aerial_lost": 0.2198,
                "interceptions": 0.0,
                "tackles_won": 0.2042,
                "tackles": 0.2556,
                "clearances": 0.0142,
                "total_contest": 0.2538,
                "won_contest": 0.1079,
                "challenges_lost": 0.027,
                "fouls": 0.1237,
                "fouls_drawn": 0.3497,
                "blocks": 0.0,
                "big_chances_created": 0.1003,
                "big_chances_missed": 0.0,
                "xgot": 0.0009,
                "ball_carries": 3.1108,
                "total_progression": 3.8038,
                "progressive_carries": 0.0,
                "shots_off_target": 0.2707,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 13.19,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0224,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0733,
                "creation_factor": 1.25,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0224,
                "goal_rate": 0.0393,
                "scorer_weight": 0.0245,
                "squad_weight_total": 1.3303,
                "weight_share": 0.0184,
                "finishing_factor": 1.0733,
                "appearance_weight": 0.692,
                "weight_rank": 12,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lucas Boyé",
                    "weight": 0.3448,
                    "already": 0,
                    "effective_weight": 0.3448,
                    "runner_up": "Mariano Díaz",
                    "runner_up_effective_weight": 0.2151
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "key_pass": 0.3715,
                "expected_assists": 0.0278,
                "assist_rate": 0.0612,
                "assists": 0,
                "expected_goals": 0.0228,
                "goal_rate": 0.0393,
                "goals": 0,
                "shots_on_target": 0.1112,
                "total_shots": 0.3819,
                "rating": 6.7243,
                "minutes": 13.19,
                "total_pass": 7.4751,
                "accurate_pass": 6.5663,
                "duels_won": 0.7133,
                "total_long_balls": 0.3381,
                "accurate_long_balls": 0.2328,
                "total_own_half_passes": 1.7612,
                "accurate_own_half_passes": 1.6503,
                "total_opp_half_passes": 5.7139,
                "accurate_opp_half_passes": 4.9161,
                "crosses_total": 1.0537,
                "crosses_accurate": 0.2142,
                "touches": 11.0665,
                "possession_lost": 2.5505,
                "dispossessed": 0.8022,
                "duels_lost": 1.031,
                "aerial_won": 0.0,
                "aerial_lost": 0.2198,
                "interceptions": 0.0,
                "tackles_won": 0.2042,
                "tackles": 0.2556,
                "clearances": 0.0142,
                "total_contest": 0.2538,
                "won_contest": 0.1079,
                "challenges_lost": 0.027,
                "fouls": 0.1237,
                "fouls_drawn": 0.3497,
                "blocks": 0.0,
                "big_chances_created": 0.1003,
                "big_chances_missed": 0.0,
                "xgot": 0.0009,
                "ball_carries": 3.1108,
                "total_progression": 3.8038,
                "progressive_carries": 0.0,
                "shots_off_target": 0.2707,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 13.19,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0224,
                "projected_assists": 0,
                "assist_probability": 0.0272,
                "finishing_factor": 1.0733,
                "creation_factor": 1.25,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0272,
                "assist_rate": 0.0612,
                "provider_weight": 0.0347,
                "squad_weight_total": 0.7993,
                "weight_share": 0.0435,
                "creation_factor": 1.25,
                "appearance_weight": 0.692,
                "weight_rank": 8,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Ángel Pérez",
                    "weight": 0.1707,
                    "already": 0,
                    "effective_weight": 0.1707,
                    "runner_up": "Denis Suárez",
                    "runner_up_effective_weight": 0.1469,
                    "blocked_own_goal": [
                      "Lucas Boyé"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Ander Guevara": {
          "player_id": 891931,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 6,
          "height": 180,
          "market_value": 2700000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0116,
            "assist_rate": 0.0171,
            "assists": 0,
            "expected_goals": 0.0089,
            "goal_rate": 0.0232,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 0,
            "rating": 6.7081,
            "minutes": 10,
            "total_pass": 8,
            "accurate_pass": 7,
            "duels_won": 1,
            "total_long_balls": 1,
            "accurate_long_balls": 1,
            "total_own_half_passes": 3,
            "accurate_own_half_passes": 3,
            "total_opp_half_passes": 5,
            "accurate_opp_half_passes": 4,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 10,
            "possession_lost": 1.914,
            "dispossessed": 0.4095,
            "duels_lost": 1,
            "aerial_won": 0,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 3,
            "total_progression": 12,
            "progressive_carries": 0,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.692,
            "bench_expected_minutes": 10.44,
            "projected_substitution_order": 2,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.588,
            "projected_substitution_game_state_adjustment": 0,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0088,
            "projected_assists": 0,
            "assist_probability": 0.0115,
            "finishing_factor": 1.1619,
            "creation_factor": 1.0213,
            "fifa_overall": 74.0
          },
          "latest_10_games": [
            {
              "match_id": 16421069,
              "match_date": "2026-10-18",
              "home_team": "Celta Vigo",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 8,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0213,
                "expected_assists": 0.0078,
                "total_shots": 1,
                "total_pass": 7,
                "accurate_pass": 7,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421056,
              "match_date": "2026-10-10",
              "home_team": "Deportivo Alavés",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 26,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0006,
                "total_shots": 0,
                "total_pass": 10,
                "accurate_pass": 6,
                "tackles": 1,
                "interceptions": 2,
                "duels_won": 1,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416337,
              "match_date": "2026-09-19",
              "home_team": "Athletic Club",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 90,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0015,
                "total_shots": 0,
                "total_pass": 38,
                "accurate_pass": 32,
                "tackles": 4,
                "tackles_won": 2,
                "interceptions": 3,
                "clearances": 2,
                "duels_won": 5,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416334,
              "match_date": "2026-09-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Valencia",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Valencia",
              "stats": {
                "minutes": 11,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0076,
                "total_shots": 0,
                "total_pass": 16,
                "accurate_pass": 14,
                "key_pass": 1,
                "tackles": 1,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421047,
              "match_date": "2026-08-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Getafe",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Getafe",
              "stats": {
                "minutes": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0009,
                "total_shots": 0,
                "total_pass": 4,
                "accurate_pass": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083706,
              "match_date": "2026-05-23",
              "home_team": "Deportivo Alavés",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 12,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.006,
                "total_shots": 0,
                "total_pass": 7,
                "accurate_pass": 7,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083578,
              "match_date": "2026-05-09",
              "home_team": "Elche",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Elche",
              "stats": {
                "minutes": 8,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0005,
                "total_shots": 0,
                "total_pass": 2,
                "accurate_pass": 1
              },
              "has_player_stats": true
            },
            {
              "match_id": 14083364,
              "match_date": "2026-05-02",
              "home_team": "Deportivo Alavés",
              "away_team": "Athletic Club",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 28,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.1079,
                "total_shots": 0,
                "total_pass": 24,
                "accurate_pass": 18,
                "key_pass": 1,
                "ball_recovery": 3
              },
              "has_player_stats": true
            },
            {
              "match_id": 14083295,
              "match_date": "2026-04-21",
              "home_team": "Real Madrid",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 15,
                "rating": 6.8,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.035,
                "expected_assists": 0.0174,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 19,
                "accurate_pass": 19,
                "key_pass": 2,
                "clearances": 1
              },
              "has_player_stats": true
            },
            {
              "match_id": 14083152,
              "match_date": "2026-04-11",
              "home_team": "Real Sociedad",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 24,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0669,
                "total_shots": 0,
                "total_pass": 28,
                "accurate_pass": 25,
                "key_pass": 1,
                "ball_recovery": 2
              },
              "has_player_stats": true
            }
          ],
          "ranking": {
            "global_player_rank": 3847,
            "combined_rank_score": 1841.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 796.0,
            "sofascore_rating": 6.624,
            "sofascore_appearances": 25.0,
            "fifa_rank": 2886.0,
            "fifa_overall": 74.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 14,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.7081,
            "source_file": "data/player_rankings.csv",
            "player_name": "Ander Guevara",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Thierry Correia",
                  "ranking": 3842
                },
                {
                  "player_name": "Anthony Rouault",
                  "ranking": 3843
                },
                {
                  "player_name": "Abner Vinícius",
                  "ranking": 3844
                },
                {
                  "player_name": "Saša Kalajdžić",
                  "ranking": 3845
                },
                {
                  "player_name": "Matthis Abline",
                  "ranking": 3846
                }
              ],
              "lower": [
                {
                  "player_name": "Pablo Pagis",
                  "ranking": 3848
                },
                {
                  "player_name": "Jacob Greaves",
                  "ranking": 3849
                },
                {
                  "player_name": "Martial Godo",
                  "ranking": 3850
                },
                {
                  "player_name": "Tomasz Kędziora",
                  "ranking": 3851
                },
                {
                  "player_name": "Kévin Danois",
                  "ranking": 3852
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.75,
          "history_matches": 30,
          "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",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "rating",
              "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",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 30,
            "data_confidence": 0.75,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 10.44,
            "bench_appearance_prob": 0.692,
            "market_value_adjustment": 0.9971,
            "fbref_prior_metrics": {
              "squad": "Alavés",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 1.0,
              "starts": 0.0,
              "sub_appearances": 1.0,
              "minutes_per_sub": 1.0,
              "prior_reliability": 0.0
            },
            "rationale": "Bench projection scaled from XGBoost M_service (30 historical appearances) to 10.4 expected mins (appearance prob 0.69); FBref playing time empirical prior: 1.0 sub appearances, 1.0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 0.2833,
                "expected_assists": 0.0242,
                "assists": 0.0265,
                "assist_rate": 0.0265,
                "expected_goals": 0.0202,
                "goals": 0.0358,
                "goal_rate": 0.0358,
                "shots_on_target": 0.0755,
                "total_shots": 0.3041,
                "rating": 6.7081,
                "minutes": 16.09,
                "total_pass": 12.1552,
                "accurate_pass": 10.329,
                "duels_won": 0.8766,
                "total_long_balls": 1.1478,
                "accurate_long_balls": 0.8468,
                "total_own_half_passes": 4.496,
                "accurate_own_half_passes": 4.2092,
                "total_opp_half_passes": 7.6592,
                "accurate_opp_half_passes": 6.1198,
                "crosses_total": 0.2719,
                "crosses_accurate": 0.0613,
                "touches": 15.7154,
                "possession_lost": 2.9585,
                "dispossessed": 0.4107,
                "duels_lost": 0.8822,
                "aerial_won": 0.2452,
                "aerial_lost": 0.0787,
                "interceptions": 0.3019,
                "tackles_won": 0.153,
                "tackles": 0.4296,
                "clearances": 0.242,
                "total_contest": 0.157,
                "won_contest": 0.0189,
                "challenges_lost": 0.1154,
                "fouls": 0.1419,
                "fouls_drawn": 0.183,
                "blocks": 0.159,
                "big_chances_created": 0.1063,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 4.6475,
                "total_progression": 19.0356,
                "progressive_carries": 0.3631,
                "shots_off_target": 0.2285
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 7,
                  "trained_at": "2026-10-23T10:05:23.571433+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 903,
                    "rows": 24475
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Celta Vigo",
                    "minutes": 8.0,
                    "is_starting": false,
                    "weight": 0.1512,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-10-10",
                    "opponent": "Atlético Madrid",
                    "minutes": 26.0,
                    "is_starting": false,
                    "weight": 0.1285,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Athletic Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1092,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-09-15",
                    "opponent": "Valencia",
                    "minutes": 11.0,
                    "is_starting": false,
                    "weight": 0.0928,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-08-15",
                    "opponent": "Getafe",
                    "minutes": 1.0,
                    "is_starting": false,
                    "weight": 0.0789,
                    "rating": 0.0
                  },
                  {
                    "match_date": "2026-05-23",
                    "opponent": "Rayo Vallecano",
                    "minutes": 12.0,
                    "is_starting": false,
                    "weight": 0.0671,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-05-09",
                    "opponent": "Elche",
                    "minutes": 8.0,
                    "is_starting": false,
                    "weight": 0.057,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-05-02",
                    "opponent": "Athletic Club",
                    "minutes": 28.0,
                    "is_starting": false,
                    "weight": 0.0485,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-04-21",
                    "opponent": "Real Madrid",
                    "minutes": 15.0,
                    "is_starting": false,
                    "weight": 0.0412,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-04-11",
                    "opponent": "Real Sociedad",
                    "minutes": 24.0,
                    "is_starting": false,
                    "weight": 0.035,
                    "rating": 6.6
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 0.0,
                  "creative_index": 0.1135,
                  "totalShots": 0.2254,
                  "expectedGoals": 0.0058,
                  "expectedAssists": 0.0132,
                  "onTargetScoringAttempt": 0.0022
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.2832811772823334,
                    "model_output": 0.2833,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1647
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1377
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0663
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0524
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0316
                      }
                    ],
                    "decomposition": {
                      "base": 0.8945,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.4512
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0603
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0368
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0229
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0209
                        }
                      ],
                      "others": -0.0191,
                      "total": 0.2833,
                      "log_link": true,
                      "margin_base": -0.111507,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.702065
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.146311
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.101037
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.068422
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": -0.066739
                        }
                      ],
                      "others_margin": -0.065234
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.02424534596502781,
                    "model_output": 0.0242,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1545
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1048
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.1021
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0476
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0472
                      }
                    ],
                    "decomposition": {
                      "base": 0.0859,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0386
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0076
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0062
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0027
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0021
                        }
                      ],
                      "others": -0.0045,
                      "total": 0.0242,
                      "log_link": true,
                      "margin_base": -2.454719,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.596716
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.175326
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.169489
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.082987
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.072096
                        }
                      ],
                      "others_margin": -0.168197
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.026479041203856468,
                    "model_output": 0.0265,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.0619
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0395
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0343
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0335
                      }
                    ],
                    "decomposition": {
                      "base": 0.0874,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0247
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0099
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0076
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0062
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": -0.0029
                        }
                      ],
                      "others": -0.0096,
                      "total": 0.0265,
                      "log_link": true,
                      "margin_base": -2.437263,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.332038
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.171631
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.154302
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.146172
                        },
                        {
                          "name": "ballRecovery_p90",
                          "margin": -0.077468
                        }
                      ],
                      "others_margin": -0.312527
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.02020363137125969,
                    "model_output": 0.0202,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedGoals",
                        "importance": 0.134
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.074
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0705
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.039
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0273
                      }
                    ],
                    "decomposition": {
                      "base": 0.094,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0428
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0163
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0078
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0016
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0009
                        }
                      ],
                      "others": -0.0044,
                      "total": 0.0202,
                      "log_link": true,
                      "margin_base": -2.364919,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.608693
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.383703
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.254478
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.060406
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.037891
                        }
                      ],
                      "others_margin": -0.191803
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.03576302155852318,
                    "model_output": 0.0358,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0974
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0527
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0513
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0365
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.03
                      }
                    ],
                    "decomposition": {
                      "base": 0.0993,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0338
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0144
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0085
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0034
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0018
                        }
                      ],
                      "others": -0.0052,
                      "total": 0.0358,
                      "log_link": true,
                      "margin_base": -2.309444,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.415424
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.248496
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.182562
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.083713
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.044323
                        }
                      ],
                      "others_margin": -0.135522
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.07553756982088089,
                    "model_output": 0.0755,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1106
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0885
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0762
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0292
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0279
                      }
                    ],
                    "decomposition": {
                      "base": 0.326,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.143
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0565
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0273
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0093
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0031
                        }
                      ],
                      "others": -0.0113,
                      "total": 0.0755,
                      "log_link": true,
                      "margin_base": -1.120773,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.577206
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.369055
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.243335
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": -0.098238
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.035439
                        }
                      ],
                      "others_margin": -0.139077
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.30406704545021057,
                    "model_output": 0.3041,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1261
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1167
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0633
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0419
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.9969,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.3237
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.2315
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0365
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0257
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0248
                        }
                      ],
                      "others": -0.0506,
                      "total": 0.3041,
                      "log_link": false,
                      "margin_base": 0.996896,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.323687
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.231452
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.03649
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.02569
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.024795
                        }
                      ],
                      "others_margin": -0.050715
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.708081245422363,
                    "model_output": 6.7081,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "rating",
                        "importance": 0.0947
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0836
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0491
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0438
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.036
                      }
                    ],
                    "decomposition": {
                      "base": 6.8561,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0984
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0501
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0263
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0239
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0164
                        }
                      ],
                      "others": -0.0135,
                      "total": 6.7081,
                      "log_link": false,
                      "margin_base": 6.856052,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.098364
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.050054
                        },
                        {
                          "name": "rating",
                          "margin": -0.026342
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.02393
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.016422
                        }
                      ],
                      "others_margin": -0.013562
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "substitute",
                  "history_matches": 30,
                  "role_matches": 27,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "role_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9971, quality 0.437)",
              "stats": {
                "key_pass": 0.2825,
                "expected_assists": 0.0242,
                "assists": 0.0264,
                "assist_rate": 0.0264,
                "expected_goals": 0.0201,
                "goals": 0.0357,
                "goal_rate": 0.0357,
                "shots_on_target": 0.0753,
                "total_shots": 0.3032,
                "rating": 6.7081,
                "minutes": 16.09,
                "total_pass": 12.1199,
                "accurate_pass": 10.299,
                "duels_won": 0.8741,
                "total_long_balls": 1.1445,
                "accurate_long_balls": 0.8443,
                "total_own_half_passes": 4.483,
                "accurate_own_half_passes": 4.197,
                "total_opp_half_passes": 7.637,
                "accurate_opp_half_passes": 6.1021,
                "crosses_total": 0.2711,
                "crosses_accurate": 0.0611,
                "touches": 15.6698,
                "possession_lost": 2.9499,
                "dispossessed": 0.4095,
                "duels_lost": 0.8796,
                "aerial_won": 0.2445,
                "aerial_lost": 0.0785,
                "interceptions": 0.301,
                "tackles_won": 0.1526,
                "tackles": 0.4284,
                "clearances": 0.2413,
                "total_contest": 0.1565,
                "won_contest": 0.0188,
                "challenges_lost": 0.1151,
                "fouls": 0.1415,
                "fouls_drawn": 0.1825,
                "blocks": 0.1585,
                "big_chances_created": 0.106,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 4.634,
                "total_progression": 18.9804,
                "progressive_carries": 0.362,
                "shots_off_target": 0.2278
              },
              "params": {
                "market_value_eur": 2700000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9971,
                "reference_quality": 0.505,
                "history_matches": 30,
                "history_shrink": 0.1429,
                "market_value_known": true
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 16.1 to 10.4 expected minutes (appearance prob 0.69)",
              "stats": {
                "key_pass": 0.1833,
                "expected_assists": 0.0157,
                "assists": 0.0171,
                "assist_rate": 0.0171,
                "expected_goals": 0.013,
                "goals": 0.0232,
                "goal_rate": 0.0232,
                "shots_on_target": 0.0489,
                "total_shots": 0.1967,
                "rating": 6.7081,
                "minutes": 10.44,
                "total_pass": 7.864,
                "accurate_pass": 6.6825,
                "duels_won": 0.5672,
                "total_long_balls": 0.7426,
                "accurate_long_balls": 0.5478,
                "total_own_half_passes": 2.9088,
                "accurate_own_half_passes": 2.7232,
                "total_opp_half_passes": 4.9553,
                "accurate_opp_half_passes": 3.9593,
                "crosses_total": 0.1759,
                "crosses_accurate": 0.0396,
                "touches": 10.1674,
                "possession_lost": 1.914,
                "dispossessed": 0.4095,
                "duels_lost": 0.5707,
                "aerial_won": 0.1586,
                "aerial_lost": 0.0785,
                "interceptions": 0.1953,
                "tackles_won": 0.099,
                "tackles": 0.278,
                "clearances": 0.1566,
                "total_contest": 0.1015,
                "won_contest": 0.0122,
                "challenges_lost": 0.1151,
                "fouls": 0.0918,
                "fouls_drawn": 0.1184,
                "blocks": 0.1028,
                "big_chances_created": 0.0688,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 3.0068,
                "total_progression": 12.3154,
                "progressive_carries": 0.2349,
                "shots_off_target": 0.1478,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 10.44
              },
              "params": {
                "expected_minutes": 10.44,
                "projection_minutes": 16.09,
                "minutes_scale": 0.6489,
                "appearance_probability": 0.692
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0.1833,
                "expected_assists": 0.0157,
                "assists": 0.0171,
                "assist_rate": 0.0171,
                "expected_goals": 0.013,
                "goals": 0.0232,
                "goal_rate": 0.0232,
                "shots_on_target": 0.0489,
                "total_shots": 0.1967,
                "rating": 6.7081,
                "minutes": 10.44,
                "total_pass": 7.864,
                "accurate_pass": 6.6825,
                "duels_won": 0.5672,
                "total_long_balls": 0.7426,
                "accurate_long_balls": 0.5478,
                "total_own_half_passes": 2.9088,
                "accurate_own_half_passes": 2.7232,
                "total_opp_half_passes": 4.9553,
                "accurate_opp_half_passes": 3.9593,
                "crosses_total": 0.1759,
                "crosses_accurate": 0.0396,
                "touches": 10.1674,
                "possession_lost": 1.914,
                "dispossessed": 0.4095,
                "duels_lost": 0.5707,
                "aerial_won": 0.1586,
                "aerial_lost": 0.0785,
                "interceptions": 0.1953,
                "tackles_won": 0.099,
                "tackles": 0.278,
                "clearances": 0.1566,
                "total_contest": 0.1015,
                "won_contest": 0.0122,
                "challenges_lost": 0.1151,
                "fouls": 0.0918,
                "fouls_drawn": 0.1184,
                "blocks": 0.1028,
                "big_chances_created": 0.0688,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 3.0068,
                "total_progression": 12.3154,
                "progressive_carries": 0.2349,
                "shots_off_target": 0.1478,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 10.44
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "key_pass": 0.1833,
                "expected_assists": 0.0157,
                "assist_rate": 0.0171,
                "assists": 0,
                "expected_goals": 0.013,
                "goal_rate": 0.0232,
                "goals": 0,
                "shots_on_target": 0.0489,
                "total_shots": 0.1967,
                "rating": 6.7081,
                "minutes": 10.44,
                "total_pass": 7.864,
                "accurate_pass": 6.6825,
                "duels_won": 0.5672,
                "total_long_balls": 0.7426,
                "accurate_long_balls": 0.5478,
                "total_own_half_passes": 2.9088,
                "accurate_own_half_passes": 2.7232,
                "total_opp_half_passes": 4.9553,
                "accurate_opp_half_passes": 3.9593,
                "crosses_total": 0.1759,
                "crosses_accurate": 0.0396,
                "touches": 10.1674,
                "possession_lost": 1.914,
                "dispossessed": 0.4095,
                "duels_lost": 0.5707,
                "aerial_won": 0.1586,
                "aerial_lost": 0.0785,
                "interceptions": 0.1953,
                "tackles_won": 0.099,
                "tackles": 0.278,
                "clearances": 0.1566,
                "total_contest": 0.1015,
                "won_contest": 0.0122,
                "challenges_lost": 0.1151,
                "fouls": 0.0918,
                "fouls_drawn": 0.1184,
                "blocks": 0.1028,
                "big_chances_created": 0.0688,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 3.0068,
                "total_progression": 12.3154,
                "progressive_carries": 0.2349,
                "shots_off_target": 0.1478,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 10.44,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "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": {
                "scoreline_reset": true,
                "team_goals": 1
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.26 (squad xG sum 1.2639, xG scale 0.9946, xA scale 1.0687, team xA 0.82 = 0.65 x lambda)",
              "stats": {
                "key_pass": 0.1833,
                "expected_assists": 0.0116,
                "assist_rate": 0.0171,
                "assists": 0,
                "expected_goals": 0.0089,
                "goal_rate": 0.0232,
                "goals": 0,
                "shots_on_target": 0.0489,
                "total_shots": 0.1967,
                "rating": 6.7081,
                "minutes": 10.44,
                "total_pass": 7.864,
                "accurate_pass": 6.6825,
                "duels_won": 0.5672,
                "total_long_balls": 0.7426,
                "accurate_long_balls": 0.5478,
                "total_own_half_passes": 2.9088,
                "accurate_own_half_passes": 2.7232,
                "total_opp_half_passes": 4.9553,
                "accurate_opp_half_passes": 3.9593,
                "crosses_total": 0.1759,
                "crosses_accurate": 0.0396,
                "touches": 10.1674,
                "possession_lost": 1.914,
                "dispossessed": 0.4095,
                "duels_lost": 0.5707,
                "aerial_won": 0.1586,
                "aerial_lost": 0.0785,
                "interceptions": 0.1953,
                "tackles_won": 0.099,
                "tackles": 0.278,
                "clearances": 0.1566,
                "total_contest": 0.1015,
                "won_contest": 0.0122,
                "challenges_lost": 0.1151,
                "fouls": 0.0918,
                "fouls_drawn": 0.1184,
                "blocks": 0.1028,
                "big_chances_created": 0.0688,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 3.0068,
                "total_progression": 12.3154,
                "progressive_carries": 0.2349,
                "shots_off_target": 0.1478,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 10.44,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "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,
                "finishing_factor": 1.1619,
                "creation_factor": 1.0213
              },
              "params": {
                "team_lambda": 1.257,
                "squad_xg_sum": 1.2639,
                "squad_xa_sum": 0.7645,
                "team_expected_assists": 0.817,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.9946,
                "xa_scale": 1.0687,
                "opponent_lambda": 0.869,
                "scoreline_reset": true,
                "appearance_weight": 0.692
              }
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 74.0)",
              "stats": {
                "key_pass": 0.1833,
                "expected_assists": 0.0116,
                "assist_rate": 0.0171,
                "assists": 0,
                "expected_goals": 0.0089,
                "goal_rate": 0.0232,
                "goals": 0,
                "shots_on_target": 0.0489,
                "total_shots": 0.1967,
                "rating": 6.7081,
                "minutes": 10.44,
                "total_pass": 7.864,
                "accurate_pass": 6.6825,
                "duels_won": 0.5672,
                "total_long_balls": 0.7426,
                "accurate_long_balls": 0.5478,
                "total_own_half_passes": 2.9088,
                "accurate_own_half_passes": 2.7232,
                "total_opp_half_passes": 4.9553,
                "accurate_opp_half_passes": 3.9593,
                "crosses_total": 0.1759,
                "crosses_accurate": 0.0396,
                "touches": 10.1674,
                "possession_lost": 1.914,
                "dispossessed": 0.4095,
                "duels_lost": 0.5707,
                "aerial_won": 0.1586,
                "aerial_lost": 0.0785,
                "interceptions": 0.1953,
                "tackles_won": 0.099,
                "tackles": 0.278,
                "clearances": 0.1566,
                "total_contest": 0.1015,
                "won_contest": 0.0122,
                "challenges_lost": 0.1151,
                "fouls": 0.0918,
                "fouls_drawn": 0.1184,
                "blocks": 0.1028,
                "big_chances_created": 0.0688,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 3.0068,
                "total_progression": 12.3154,
                "progressive_carries": 0.2349,
                "shots_off_target": 0.1478,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 10.44,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "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,
                "finishing_factor": 1.1619,
                "creation_factor": 1.0213,
                "fifa_overall": 74.0
              },
              "params": {
                "match_squad_rank": 14,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3847,
                "fifa_rank": 2886.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 74.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "key_pass": 0.1833,
                "expected_assists": 0.0116,
                "assist_rate": 0.0171,
                "assists": 0,
                "expected_goals": 0.0089,
                "goal_rate": 0.0232,
                "goals": 0,
                "shots_on_target": 0.0489,
                "total_shots": 0.1967,
                "rating": 6.7081,
                "minutes": 10.44,
                "total_pass": 7.864,
                "accurate_pass": 6.6825,
                "duels_won": 0.5672,
                "total_long_balls": 0.7426,
                "accurate_long_balls": 0.5478,
                "total_own_half_passes": 2.9088,
                "accurate_own_half_passes": 2.7232,
                "total_opp_half_passes": 4.9553,
                "accurate_opp_half_passes": 3.9593,
                "crosses_total": 0.1759,
                "crosses_accurate": 0.0396,
                "touches": 10.1674,
                "possession_lost": 1.914,
                "dispossessed": 0.4095,
                "duels_lost": 0.5707,
                "aerial_won": 0.1586,
                "aerial_lost": 0.0785,
                "interceptions": 0.1953,
                "tackles_won": 0.099,
                "tackles": 0.278,
                "clearances": 0.1566,
                "total_contest": 0.1015,
                "won_contest": 0.0122,
                "challenges_lost": 0.1151,
                "fouls": 0.0918,
                "fouls_drawn": 0.1184,
                "blocks": 0.1028,
                "big_chances_created": 0.0688,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 3.0068,
                "total_progression": 12.3154,
                "progressive_carries": 0.2349,
                "shots_off_target": 0.1478,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 10.44,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0088,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.1619,
                "creation_factor": 1.0213,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0088,
                "goal_rate": 0.0232,
                "scorer_weight": 0.0103,
                "squad_weight_total": 1.3303,
                "weight_share": 0.0078,
                "finishing_factor": 1.1619,
                "appearance_weight": 0.692,
                "weight_rank": 13,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lucas Boyé",
                    "weight": 0.3448,
                    "already": 0,
                    "effective_weight": 0.3448,
                    "runner_up": "Mariano Díaz",
                    "runner_up_effective_weight": 0.2151
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "key_pass": 0.1833,
                "expected_assists": 0.0116,
                "assist_rate": 0.0171,
                "assists": 0,
                "expected_goals": 0.0089,
                "goal_rate": 0.0232,
                "goals": 0,
                "shots_on_target": 0.0489,
                "total_shots": 0.1967,
                "rating": 6.7081,
                "minutes": 10.44,
                "total_pass": 7.864,
                "accurate_pass": 6.6825,
                "duels_won": 0.5672,
                "total_long_balls": 0.7426,
                "accurate_long_balls": 0.5478,
                "total_own_half_passes": 2.9088,
                "accurate_own_half_passes": 2.7232,
                "total_opp_half_passes": 4.9553,
                "accurate_opp_half_passes": 3.9593,
                "crosses_total": 0.1759,
                "crosses_accurate": 0.0396,
                "touches": 10.1674,
                "possession_lost": 1.914,
                "dispossessed": 0.4095,
                "duels_lost": 0.5707,
                "aerial_won": 0.1586,
                "aerial_lost": 0.0785,
                "interceptions": 0.1953,
                "tackles_won": 0.099,
                "tackles": 0.278,
                "clearances": 0.1566,
                "total_contest": 0.1015,
                "won_contest": 0.0122,
                "challenges_lost": 0.1151,
                "fouls": 0.0918,
                "fouls_drawn": 0.1184,
                "blocks": 0.1028,
                "big_chances_created": 0.0688,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 3.0068,
                "total_progression": 12.3154,
                "progressive_carries": 0.2349,
                "shots_off_target": 0.1478,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 10.44,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0088,
                "projected_assists": 0,
                "assist_probability": 0.0115,
                "finishing_factor": 1.1619,
                "creation_factor": 1.0213,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0115,
                "assist_rate": 0.0171,
                "provider_weight": 0.0118,
                "squad_weight_total": 0.7993,
                "weight_share": 0.0148,
                "creation_factor": 1.0213,
                "appearance_weight": 0.692,
                "weight_rank": 12,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Ángel Pérez",
                    "weight": 0.1707,
                    "already": 0,
                    "effective_weight": 0.1707,
                    "runner_up": "Denis Suárez",
                    "runner_up_effective_weight": 0.1469,
                    "blocked_own_goal": [
                      "Lucas Boyé"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Toni Martínez": {
          "player_id": 831253,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 11,
          "height": 180,
          "market_value": 7300000,
          "stats": {
            "expected_goals": 0.166,
            "goal_rate": 0.1918,
            "goals": 0,
            "shots_on_target": 1,
            "total_shots": 2,
            "expected_assists": 0.0151,
            "key_pass": 0,
            "rating": 6.6859,
            "minutes": 26,
            "total_pass": 7,
            "accurate_pass": 3,
            "duels_won": 4,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 5,
            "accurate_opp_half_passes": 2,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 13,
            "possession_lost": 5.0732,
            "dispossessed": 0.0833,
            "duels_lost": 3,
            "aerial_lost": 1,
            "total_contest": 1,
            "won_contest": 0,
            "ball_recovery": 1,
            "challenges_lost": 0,
            "fouls": 1,
            "fouls_drawn": 1,
            "assist_rate": 0.0,
            "assists": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0222,
            "offsides": 1,
            "ball_carries": 2,
            "total_progression": 8,
            "progressive_carries": 1,
            "shots_off_target": 1,
            "bench_appearance_probability": 0.338,
            "bench_expected_minutes": 25.5,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.588,
            "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": 16421069,
              "match_date": "2026-10-18",
              "home_team": "Celta Vigo",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 62,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0954,
                "expected_assists": 0.0053,
                "total_shots": 3,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 13,
                "accurate_pass": 8,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 4,
                "duels_won": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421056,
              "match_date": "2026-10-10",
              "home_team": "Deportivo Alavés",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 64,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0119,
                "expected_assists": 0.004,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 7,
                "accurate_pass": 4,
                "key_pass": 1,
                "aerial_won": 5,
                "duels_won": 7,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416337,
              "match_date": "2026-09-19",
              "home_team": "Athletic Club",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 25,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.001,
                "total_shots": 0,
                "total_pass": 7,
                "accurate_pass": 2,
                "clearances": 1,
                "aerial_won": 2,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416334,
              "match_date": "2026-09-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Valencia",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Valencia",
              "stats": {
                "minutes": 67,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1819,
                "expected_assists": 0.0095,
                "total_shots": 3,
                "shots_off_target": 3,
                "total_pass": 11,
                "accurate_pass": 7,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 4,
                "duels_won": 8,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416328,
              "match_date": "2026-09-12",
              "home_team": "Real Racing Club",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 23,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0527,
                "expected_assists": 0.1076,
                "total_shots": 1,
                "total_pass": 3,
                "accurate_pass": 1,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "aerial_won": 2,
                "duels_won": 5,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416290,
              "match_date": "2026-08-28",
              "home_team": "Deportivo Alavés",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 54,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "total_pass": 5,
                "accurate_pass": 1,
                "aerial_won": 2,
                "duels_won": 4,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416292,
              "match_date": "2026-08-20",
              "home_team": "Rayo Vallecano",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 90,
                "rating": 6.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 1.3729,
                "expected_assists": 0.0107,
                "total_shots": 4,
                "shots_off_target": 4,
                "total_pass": 12,
                "accurate_pass": 9,
                "key_pass": 2,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 5,
                "duels_won": 7
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421047,
              "match_date": "2026-08-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Getafe",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Getafe",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.3202,
                "expected_assists": 0.012,
                "total_shots": 3,
                "shots_off_target": 3,
                "total_pass": 13,
                "accurate_pass": 9,
                "key_pass": 2,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 3,
                "duels_won": 6,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083706,
              "match_date": "2026-05-23",
              "home_team": "Deportivo Alavés",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 90,
                "rating": 7.8,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.5449,
                "expected_assists": 0.0071,
                "total_shots": 3,
                "shots_on_target": 2,
                "total_pass": 14,
                "accurate_pass": 7,
                "tackles": 1,
                "tackles_won": 1,
                "aerial_won": 4,
                "duels_won": 7,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083692,
              "match_date": "2026-05-17",
              "home_team": "Real Oviedo",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Real Oviedo",
              "stats": {
                "minutes": 82,
                "rating": 6.3,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.8192,
                "expected_assists": 0.0218,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 14,
                "accurate_pass": 8,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 2078,
            "combined_rank_score": 790.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 345.0,
            "sofascore_rating": 6.9892,
            "sofascore_appearances": 37.0,
            "fifa_rank": 1236.0,
            "fifa_overall": 78.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 16,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.6859,
            "source_file": "data/player_rankings.csv",
            "player_name": "Toni Martínez",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Luiz Júnior",
                  "ranking": 2073
                },
                {
                  "player_name": "Maximiliano Rodríguez",
                  "ranking": 2074
                },
                {
                  "player_name": "Abbos Gulomov",
                  "ranking": 2075
                },
                {
                  "player_name": "Chan-dong Lee",
                  "ranking": 2076
                },
                {
                  "player_name": "Leonardo Spinazzola",
                  "ranking": 2077
                }
              ],
              "lower": [
                {
                  "player_name": "Callum Hudson Odoi",
                  "ranking": 2079
                },
                {
                  "player_name": "Cédric Bakambu",
                  "ranking": 2080
                },
                {
                  "player_name": "Renato Veiga",
                  "ranking": 2081
                },
                {
                  "player_name": "Shodiyor Shodiboev",
                  "ranking": 2082
                },
                {
                  "player_name": "Matija Rom",
                  "ranking": 2083
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.776,
          "history_matches": 45,
          "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",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "expectedGoals",
              "goals",
              "rating",
              "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",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 45,
            "data_confidence": 0.776,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 25.501390997643526,
            "bench_appearance_prob": 0.338,
            "market_value_adjustment": 0.9996,
            "fbref_prior_metrics": {
              "squad": "Alavés",
              "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.1733
            },
            "rationale": "Bench projection scaled from XGBoost F_service (45 historical appearances) to 25.5 expected mins (appearance prob 0.34); FBref playing time empirical prior: 0.0 sub appearances, 0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.1536,
                "goals": 0.1796,
                "goal_rate": 0.1796,
                "shots_on_target": 0.4724,
                "total_shots": 1.0823,
                "expected_assists": 0.014,
                "key_pass": 0.3298,
                "rating": 6.6859,
                "minutes": 23.6,
                "total_pass": 6.0604,
                "accurate_pass": 3.1768,
                "duels_won": 3.7128,
                "total_long_balls": 0.3488,
                "accurate_long_balls": 0.2508,
                "total_opp_half_passes": 4.5134,
                "accurate_opp_half_passes": 2.1817,
                "crosses_total": 0.4023,
                "crosses_accurate": 0.1595,
                "touches": 11.8125,
                "possession_lost": 4.6968,
                "dispossessed": 0.0833,
                "duels_lost": 2.3953,
                "aerial_lost": 1.2745,
                "total_contest": 0.5832,
                "won_contest": 0.1959,
                "ball_recovery": 1.1212,
                "challenges_lost": 0.0,
                "fouls": 0.871,
                "fouls_drawn": 0.8606,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0833,
                "tackles_won": 0.1876,
                "tackles": 0.2709,
                "clearances": 0.304,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.1803,
                "xgot": 0.0205,
                "offsides": 0.9633,
                "ball_carries": 2.2338,
                "total_progression": 7.6844,
                "progressive_carries": 0.5405,
                "shots_off_target": 0.6099
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 6,
                  "trained_at": "2026-10-23T10:05:54.625928+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 611,
                    "rows": 16533
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Celta Vigo",
                    "minutes": 62.0,
                    "is_starting": true,
                    "weight": 0.1501,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-10-10",
                    "opponent": "Atlético Madrid",
                    "minutes": 64.0,
                    "is_starting": true,
                    "weight": 0.1276,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Athletic Club",
                    "minutes": 25.0,
                    "is_starting": false,
                    "weight": 0.1084,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-09-15",
                    "opponent": "Valencia",
                    "minutes": 67.0,
                    "is_starting": true,
                    "weight": 0.0922,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Real Racing Club",
                    "minutes": 23.0,
                    "is_starting": false,
                    "weight": 0.0784,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Villarreal",
                    "minutes": 54.0,
                    "is_starting": true,
                    "weight": 0.0666,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-08-20",
                    "opponent": "Rayo Vallecano",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0566,
                    "rating": 6.0
                  },
                  {
                    "match_date": "2026-08-15",
                    "opponent": "Getafe",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0481,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-05-23",
                    "opponent": "Rayo Vallecano",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0409,
                    "rating": 7.8
                  },
                  {
                    "match_date": "2026-05-17",
                    "opponent": "Real Oviedo",
                    "minutes": 82.0,
                    "is_starting": true,
                    "weight": 0.0348,
                    "rating": 6.3
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 0.0,
                  "expectedGoals": 0.2546,
                  "totalOppositionHalfPasses": 9.5929,
                  "accurateOppositionHalfPasses": 4.9867,
                  "accuratePass": 6.7402,
                  "totalShots": 2.0564
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.153640016913414,
                    "model_output": 0.1536,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2858
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0881
                      },
                      {
                        "name": "goals",
                        "importance": 0.0357
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0272
                      },
                      {
                        "name": "bigChanceMissed",
                        "importance": 0.0231
                      }
                    ],
                    "decomposition": {
                      "base": 0.1979,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0854
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0172
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0058
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": 0.0059
                        },
                        {
                          "name": "press_resistance_fwd",
                          "contribution": 0.0041
                        }
                      ],
                      "others": 0.0081,
                      "total": 0.1536,
                      "log_link": true,
                      "margin_base": -1.619934,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.564534
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.14229
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.043449
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": 0.042296
                        },
                        {
                          "name": "press_resistance_fwd",
                          "margin": 0.028906
                        }
                      ],
                      "others_margin": 0.054385
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.17960460484027863,
                    "model_output": 0.1796,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1497
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0696
                      },
                      {
                        "name": "goals",
                        "importance": 0.0577
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0307
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0286
                      }
                    ],
                    "decomposition": {
                      "base": 0.2023,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.078
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.019
                        },
                        {
                          "name": "aerialWon",
                          "contribution": 0.0146
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": 0.0058
                        },
                        {
                          "name": "goals",
                          "contribution": 0.0057
                        }
                      ],
                      "others": 0.0102,
                      "total": 0.1796,
                      "log_link": true,
                      "margin_base": -1.597983,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.48664
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.142255
                        },
                        {
                          "name": "aerialWon",
                          "margin": 0.09725
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": 0.035941
                        },
                        {
                          "name": "goals",
                          "margin": 0.033982
                        }
                      ],
                      "others_margin": 0.058198
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.4723755717277527,
                    "model_output": 0.4724,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2171
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0661
                      },
                      {
                        "name": "goals",
                        "importance": 0.0553
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0475
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0308
                      }
                    ],
                    "decomposition": {
                      "base": 0.5362,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1904
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0291
                        },
                        {
                          "name": "shot_accuracy",
                          "contribution": 0.0162
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": 0.0143
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0145
                        }
                      ],
                      "others": 0.0525,
                      "total": 0.4724,
                      "log_link": true,
                      "margin_base": -0.623262,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.438536
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.080671
                        },
                        {
                          "name": "shot_accuracy",
                          "margin": 0.042432
                        },
                        {
                          "name": "ballRecovery",
                          "margin": 0.035811
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.035112
                        }
                      ],
                      "others_margin": 0.11779
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.0822502374649048,
                    "model_output": 1.0823,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2864
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0656
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.051
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.031
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0298
                      }
                    ],
                    "decomposition": {
                      "base": 1.3807,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.627
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.1328
                        },
                        {
                          "name": "aerialWon",
                          "contribution": 0.0346
                        },
                        {
                          "name": "shot_accuracy",
                          "contribution": 0.0313
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.0232
                        }
                      ],
                      "others": 0.1067,
                      "total": 1.0823,
                      "log_link": false,
                      "margin_base": 1.380749,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.626967
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.132835
                        },
                        {
                          "name": "aerialWon",
                          "margin": 0.034621
                        },
                        {
                          "name": "shot_accuracy",
                          "margin": 0.031285
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": 0.023237
                        }
                      ],
                      "others_margin": 0.106492
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.014025934971868992,
                    "model_output": 0.014,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.1157
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0645
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0607
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0558
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 0.0644,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0224
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.0077
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0062
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0024
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.002
                        }
                      ],
                      "others": -0.0097,
                      "total": 0.014,
                      "log_link": true,
                      "margin_base": -2.741965,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.427778
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.202485
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.197896
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.089557
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.080703
                        }
                      ],
                      "others_margin": -0.526463
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.3297838568687439,
                    "model_output": 0.3298,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1481
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1244
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.1112
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.052
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0395
                      }
                    ],
                    "decomposition": {
                      "base": 0.6805,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2311
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.0371
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0192
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0163
                        },
                        {
                          "name": "aerialLost",
                          "contribution": -0.0131
                        }
                      ],
                      "others": -0.0339,
                      "total": 0.3298,
                      "log_link": true,
                      "margin_base": -0.384987,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.41497
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.086069
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.047674
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.042469
                        },
                        {
                          "name": "aerialLost",
                          "margin": -0.035327
                        }
                      ],
                      "others_margin": -0.097822
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.685855388641357,
                    "model_output": 6.6859,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.059
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0483
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0421
                      },
                      {
                        "name": "rating",
                        "importance": 0.0418
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0415
                      }
                    ],
                    "decomposition": {
                      "base": 6.7683,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0608
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.013
                        },
                        {
                          "name": "rating",
                          "contribution": 0.0108
                        },
                        {
                          "name": "touches",
                          "contribution": -0.0105
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": -0.0088
                        }
                      ],
                      "others": -0.0001,
                      "total": 6.6859,
                      "log_link": false,
                      "margin_base": 6.768281,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.060801
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.013009
                        },
                        {
                          "name": "rating",
                          "margin": 0.010838
                        },
                        {
                          "name": "touches",
                          "margin": -0.010451
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": -0.008825
                        }
                      ],
                      "others_margin": -0.000177
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "substitute",
                  "history_matches": 45,
                  "role_matches": 7,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "role_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9996, quality 0.490)",
              "stats": {
                "expected_goals": 0.1536,
                "goals": 0.1795,
                "goal_rate": 0.1795,
                "shots_on_target": 0.4722,
                "total_shots": 1.0819,
                "expected_assists": 0.014,
                "key_pass": 0.3297,
                "rating": 6.6859,
                "minutes": 23.6,
                "total_pass": 6.058,
                "accurate_pass": 3.1755,
                "duels_won": 3.7113,
                "total_long_balls": 0.3487,
                "accurate_long_balls": 0.2507,
                "total_opp_half_passes": 4.5116,
                "accurate_opp_half_passes": 2.1808,
                "crosses_total": 0.4021,
                "crosses_accurate": 0.1594,
                "touches": 11.8078,
                "possession_lost": 4.6949,
                "dispossessed": 0.0833,
                "duels_lost": 2.3943,
                "aerial_lost": 1.274,
                "total_contest": 0.583,
                "won_contest": 0.1958,
                "ball_recovery": 1.1208,
                "challenges_lost": 0.0,
                "fouls": 0.8707,
                "fouls_drawn": 0.8603,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0833,
                "tackles_won": 0.1875,
                "tackles": 0.2708,
                "clearances": 0.3039,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.1802,
                "xgot": 0.0205,
                "offsides": 0.9629,
                "ball_carries": 2.2329,
                "total_progression": 7.6813,
                "progressive_carries": 0.5403,
                "shots_off_target": 0.6097
              },
              "params": {
                "market_value_eur": 7300000,
                "quality_factor": 0.4903,
                "boost_factor": 0.9996,
                "reference_quality": 0.505,
                "history_matches": 45,
                "history_shrink": 0.1,
                "market_value_known": true
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0113)",
              "stats": {
                "expected_goals": 0.1536,
                "goals": 0.1775,
                "goal_rate": 0.1775,
                "shots_on_target": 0.4669,
                "total_shots": 1.0777,
                "expected_assists": 0.014,
                "key_pass": 0.3297,
                "rating": 6.6859,
                "minutes": 23.6,
                "total_pass": 6.058,
                "accurate_pass": 3.1755,
                "duels_won": 3.7113,
                "total_long_balls": 0.3487,
                "accurate_long_balls": 0.2507,
                "total_opp_half_passes": 4.5116,
                "accurate_opp_half_passes": 2.1808,
                "crosses_total": 0.3976,
                "crosses_accurate": 0.1594,
                "touches": 11.8078,
                "possession_lost": 4.6949,
                "dispossessed": 0.0833,
                "duels_lost": 2.3943,
                "aerial_lost": 1.274,
                "total_contest": 0.583,
                "won_contest": 0.1958,
                "ball_recovery": 1.1208,
                "challenges_lost": 0.0,
                "fouls": 0.8632,
                "fouls_drawn": 0.8563,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0824,
                "tackles_won": 0.1877,
                "tackles": 0.2708,
                "clearances": 0.3039,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.1802,
                "xgot": 0.0205,
                "offsides": 0.9521,
                "ball_carries": 2.2329,
                "total_progression": 7.6813,
                "progressive_carries": 0.5403,
                "shots_off_target": 0.6097
              },
              "params": {
                "blend_weight": 0.0113,
                "history_matches": 45,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.2622,
                "prior_reliability": 0.1733,
                "competition": "La Liga",
                "squad": "Alavés"
              },
              "changes": [
                {
                  "stat": "totalOffside",
                  "before": 0.9629,
                  "after": 0.9521
                },
                {
                  "stat": "fouls",
                  "before": 0.8707,
                  "after": 0.8632
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.4722,
                  "after": 0.4669
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 23.6 to 25.5 expected minutes (appearance prob 0.34)",
              "stats": {
                "expected_goals": 0.166,
                "goals": 0.1918,
                "goal_rate": 0.1918,
                "shots_on_target": 0.5045,
                "total_shots": 1.1645,
                "expected_assists": 0.0151,
                "key_pass": 0.3563,
                "rating": 6.6859,
                "minutes": 25.5,
                "total_pass": 6.5461,
                "accurate_pass": 3.4313,
                "duels_won": 4.0103,
                "total_long_balls": 0.3768,
                "accurate_long_balls": 0.2709,
                "total_opp_half_passes": 4.8751,
                "accurate_opp_half_passes": 2.3565,
                "crosses_total": 0.4296,
                "crosses_accurate": 0.1722,
                "touches": 12.7591,
                "possession_lost": 5.0732,
                "dispossessed": 0.0833,
                "duels_lost": 2.5872,
                "aerial_lost": 1.274,
                "total_contest": 0.63,
                "won_contest": 0.2116,
                "ball_recovery": 1.2111,
                "challenges_lost": 0.0,
                "fouls": 0.9327,
                "fouls_drawn": 0.9253,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.089,
                "tackles_won": 0.2028,
                "tackles": 0.2926,
                "clearances": 0.3284,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.1947,
                "xgot": 0.0222,
                "offsides": 0.9521,
                "ball_carries": 2.4128,
                "total_progression": 8.3002,
                "progressive_carries": 0.5838,
                "shots_off_target": 0.6588,
                "bench_appearance_probability": 0.338,
                "bench_expected_minutes": 25.5
              },
              "params": {
                "expected_minutes": 25.5,
                "projection_minutes": 23.6,
                "minutes_scale": 1.0806,
                "appearance_probability": 0.338
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.166,
                "goals": 0.1918,
                "goal_rate": 0.1918,
                "shots_on_target": 0.5045,
                "total_shots": 1.1645,
                "expected_assists": 0.0151,
                "key_pass": 0.3563,
                "rating": 6.6859,
                "minutes": 25.5,
                "total_pass": 6.5461,
                "accurate_pass": 3.4313,
                "duels_won": 4.0103,
                "total_long_balls": 0.3768,
                "accurate_long_balls": 0.2709,
                "total_opp_half_passes": 4.8751,
                "accurate_opp_half_passes": 2.3565,
                "crosses_total": 0.4296,
                "crosses_accurate": 0.1722,
                "touches": 12.7591,
                "possession_lost": 5.0732,
                "dispossessed": 0.0833,
                "duels_lost": 2.5872,
                "aerial_lost": 1.274,
                "total_contest": 0.63,
                "won_contest": 0.2116,
                "ball_recovery": 1.2111,
                "challenges_lost": 0.0,
                "fouls": 0.9327,
                "fouls_drawn": 0.9253,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.089,
                "tackles_won": 0.2028,
                "tackles": 0.2926,
                "clearances": 0.3284,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.1947,
                "xgot": 0.0222,
                "offsides": 0.9521,
                "ball_carries": 2.4128,
                "total_progression": 8.3002,
                "progressive_carries": 0.5838,
                "shots_off_target": 0.6588,
                "bench_appearance_probability": 0.338,
                "bench_expected_minutes": 25.5
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "not_projected_to_play",
              "description": "Not among the projected substitutes: no share of the team's goals or assists",
              "stats": {
                "expected_goals": 0.166,
                "goal_rate": 0.1918,
                "goals": 0,
                "shots_on_target": 0.5045,
                "total_shots": 1.1645,
                "expected_assists": 0.0151,
                "key_pass": 0.3563,
                "rating": 6.6859,
                "minutes": 25.5,
                "total_pass": 6.5461,
                "accurate_pass": 3.4313,
                "duels_won": 4.0103,
                "total_long_balls": 0.3768,
                "accurate_long_balls": 0.2709,
                "total_opp_half_passes": 4.8751,
                "accurate_opp_half_passes": 2.3565,
                "crosses_total": 0.4296,
                "crosses_accurate": 0.1722,
                "touches": 12.7591,
                "possession_lost": 5.0732,
                "dispossessed": 0.0833,
                "duels_lost": 2.5872,
                "aerial_lost": 1.274,
                "total_contest": 0.63,
                "won_contest": 0.2116,
                "ball_recovery": 1.2111,
                "challenges_lost": 0.0,
                "fouls": 0.9327,
                "fouls_drawn": 0.9253,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.089,
                "tackles_won": 0.2028,
                "tackles": 0.2926,
                "clearances": 0.3284,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.1947,
                "xgot": 0.0222,
                "offsides": 0.9521,
                "ball_carries": 2.4128,
                "total_progression": 8.3002,
                "progressive_carries": 0.5838,
                "shots_off_target": 0.6588,
                "bench_appearance_probability": 0.338,
                "bench_expected_minutes": 25.5,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "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
              },
              "params": {
                "appearance_probability": 0.338,
                "projected_substitutes": 3,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 78.0)",
              "stats": {
                "expected_goals": 0.166,
                "goal_rate": 0.1918,
                "goals": 0,
                "shots_on_target": 0.5045,
                "total_shots": 1.1645,
                "expected_assists": 0.0151,
                "key_pass": 0.3563,
                "rating": 6.6859,
                "minutes": 25.5,
                "total_pass": 6.5461,
                "accurate_pass": 3.4313,
                "duels_won": 4.0103,
                "total_long_balls": 0.3768,
                "accurate_long_balls": 0.2709,
                "total_opp_half_passes": 4.8751,
                "accurate_opp_half_passes": 2.3565,
                "crosses_total": 0.4296,
                "crosses_accurate": 0.1722,
                "touches": 12.7591,
                "possession_lost": 5.0732,
                "dispossessed": 0.0833,
                "duels_lost": 2.5872,
                "aerial_lost": 1.274,
                "total_contest": 0.63,
                "won_contest": 0.2116,
                "ball_recovery": 1.2111,
                "challenges_lost": 0.0,
                "fouls": 0.9327,
                "fouls_drawn": 0.9253,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.089,
                "tackles_won": 0.2028,
                "tackles": 0.2926,
                "clearances": 0.3284,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.1947,
                "xgot": 0.0222,
                "offsides": 0.9521,
                "ball_carries": 2.4128,
                "total_progression": 8.3002,
                "progressive_carries": 0.5838,
                "shots_off_target": 0.6588,
                "bench_appearance_probability": 0.338,
                "bench_expected_minutes": 25.5,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "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",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 2078,
                "fifa_rank": 1236.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 78.0
              }
            }
          ]
        },
        "Miguel Rodríguez": {
          "player_id": 1014118,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 22,
          "height": 179,
          "market_value": 4600000,
          "stats": {
            "expected_goals": 0.0487,
            "goal_rate": 0.1064,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "expected_assists": 0.0211,
            "key_pass": 1,
            "rating": 6.6606,
            "minutes": 25,
            "total_pass": 3,
            "accurate_pass": 2,
            "duels_won": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 3,
            "accurate_opp_half_passes": 2,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 8,
            "possession_lost": 3.1464,
            "dispossessed": 0.7705,
            "duels_lost": 2,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 2,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 1,
            "assist_rate": 0.0,
            "assists": 0,
            "interceptions": 0,
            "tackles_won": 1,
            "tackles": 1,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "offsides": 0,
            "ball_carries": 3,
            "total_progression": 23,
            "progressive_carries": 1,
            "shots_off_target": 1,
            "bench_appearance_probability": 0.562,
            "bench_expected_minutes": 25.37,
            "projected_substitution_order": 3,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.588,
            "projected_substitution_game_state_adjustment": 0,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0466,
            "projected_assists": 0,
            "assist_probability": 0.0207,
            "finishing_factor": 1.1399,
            "creation_factor": 0.8,
            "fifa_overall": 72.0
          },
          "latest_10_games": [
            {
              "match_id": 16416334,
              "match_date": "2026-09-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Valencia",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Valencia",
              "stats": {
                "minutes": 11,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0172,
                "total_shots": 0,
                "total_pass": 4,
                "accurate_pass": 3,
                "key_pass": 2,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 2,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416328,
              "match_date": "2026-09-12",
              "home_team": "Real Racing Club",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0091,
                "total_shots": 0,
                "total_pass": 1,
                "accurate_pass": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416318,
              "match_date": "2026-09-06",
              "home_team": "Deportivo Alavés",
              "away_team": "Osasuna",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 12,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 1,
                "clearances": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 4196,
            "combined_rank_score": 2227.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 4258.0,
            "fifa_overall": 72.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 17,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.6606,
            "source_file": "data/player_rankings.csv",
            "player_name": "Miguel Rodríguez",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "José Sosa",
                  "ranking": 4191
                },
                {
                  "player_name": "Jason Knight",
                  "ranking": 4192
                },
                {
                  "player_name": "Pablo Marín",
                  "ranking": 4193
                },
                {
                  "player_name": "Yvan Neyou",
                  "ranking": 4194
                },
                {
                  "player_name": "Sidiki Cherif",
                  "ranking": 4195
                }
              ],
              "lower": [
                {
                  "player_name": "Federico Navarro",
                  "ranking": 4197
                },
                {
                  "player_name": "Yukinari Sugawara",
                  "ranking": 4198
                },
                {
                  "player_name": "Patrick Pentz",
                  "ranking": 4199
                },
                {
                  "player_name": "Álex Sancris",
                  "ranking": 4200
                },
                {
                  "player_name": "Bartosz Slisz",
                  "ranking": 4201
                }
              ]
            }
          },
          "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",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "expectedGoals",
              "goals",
              "rating",
              "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",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.438,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 25.37070150421028,
            "bench_appearance_prob": 0.56230461382774,
            "market_value_adjustment": 0.991,
            "fbref_prior_metrics": {
              "squad": "Alavés",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 0.0,
              "starts": 0.0,
              "sub_appearances": 0.0,
              "prior_reliability": 0.0
            },
            "rationale": "Bench projection scaled from XGBoost F_service (3 historical appearances) to 25.4 expected mins (appearance prob 0.56); FBref playing time empirical prior: 0.0 sub appearances, 0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.0587,
                "goals": 0.0716,
                "goal_rate": 0.0716,
                "shots_on_target": 0.2121,
                "total_shots": 0.5582,
                "expected_assists": 0.0236,
                "key_pass": 0.3588,
                "rating": 6.6606,
                "minutes": 12.79,
                "total_pass": 2.1662,
                "accurate_pass": 1.4966,
                "duels_won": 0.7775,
                "total_long_balls": 0.3304,
                "accurate_long_balls": 0.3304,
                "total_opp_half_passes": 2.1662,
                "accurate_opp_half_passes": 1.4966,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 5.449,
                "possession_lost": 2.1166,
                "dispossessed": 0.7775,
                "duels_lost": 1.0583,
                "aerial_lost": 0.2809,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 1.1662,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.3887,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0,
                "tackles_won": 0.3887,
                "tackles": 0.3887,
                "clearances": 0.2809,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "offsides": 0.0,
                "ball_carries": 1.8853,
                "total_progression": 15.6129,
                "progressive_carries": 0.3887,
                "shots_off_target": 0.3461
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 6,
                  "trained_at": "2026-10-23T10:05:54.625928+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 611,
                    "rows": 16533
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-15",
                    "opponent": "Valencia",
                    "minutes": 11.0,
                    "is_starting": false,
                    "weight": 0.3887,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Real Racing Club",
                    "minutes": 1.0,
                    "is_starting": false,
                    "weight": 0.3304,
                    "rating": 0.0
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Osasuna",
                    "minutes": 12.0,
                    "is_starting": false,
                    "weight": 0.2809,
                    "rating": 6.4
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 0.0,
                  "expectedGoals": 0.0,
                  "totalOppositionHalfPasses": 2.1662,
                  "accurateOppositionHalfPasses": 1.4966,
                  "accuratePass": 1.4966,
                  "totalShots": 0.0
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.058651573956012726,
                    "model_output": 0.0587,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2858
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0881
                      },
                      {
                        "name": "goals",
                        "importance": 0.0357
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0272
                      },
                      {
                        "name": "bigChanceMissed",
                        "importance": 0.0231
                      }
                    ],
                    "decomposition": {
                      "base": 0.1979,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0935
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.017
                        },
                        {
                          "name": "goals",
                          "contribution": -0.007
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0049
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0042
                        }
                      ],
                      "others": -0.0126,
                      "total": 0.0587,
                      "log_link": true,
                      "margin_base": -1.619934,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.639413
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.177195
                        },
                        {
                          "name": "goals",
                          "margin": -0.083594
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.062888
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.057881
                        }
                      ],
                      "others_margin": -0.195236
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.0715729370713234,
                    "model_output": 0.0716,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1497
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0696
                      },
                      {
                        "name": "goals",
                        "importance": 0.0577
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0307
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0286
                      }
                    ],
                    "decomposition": {
                      "base": 0.2023,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0731
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0184
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": -0.009
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0079
                        },
                        {
                          "name": "goals",
                          "contribution": -0.0068
                        }
                      ],
                      "others": -0.0155,
                      "total": 0.0716,
                      "log_link": true,
                      "margin_base": -1.597983,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.448605
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.153953
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": -0.084583
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.081144
                        },
                        {
                          "name": "goals",
                          "margin": -0.075476
                        }
                      ],
                      "others_margin": -0.195296
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.21205155551433563,
                    "model_output": 0.2121,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2171
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0661
                      },
                      {
                        "name": "goals",
                        "importance": 0.0553
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0475
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0308
                      }
                    ],
                    "decomposition": {
                      "base": 0.5362,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2245
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.027
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0143
                        },
                        {
                          "name": "goals",
                          "contribution": -0.0117
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0107
                        }
                      ],
                      "others": -0.0573,
                      "total": 0.2121,
                      "log_link": true,
                      "margin_base": -0.623262,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.542409
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.090716
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.051657
                        },
                        {
                          "name": "goals",
                          "margin": -0.044092
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.040712
                        }
                      ],
                      "others_margin": -0.2395
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.5581737160682678,
                    "model_output": 0.5582,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2864
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0656
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.051
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.031
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0298
                      }
                    ],
                    "decomposition": {
                      "base": 1.3807,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.5097
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.1317
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0503
                        },
                        {
                          "name": "goals",
                          "contribution": -0.0491
                        },
                        {
                          "name": "duelWon",
                          "contribution": -0.0491
                        }
                      ],
                      "others": -0.1332,
                      "total": 0.5582,
                      "log_link": false,
                      "margin_base": 1.380749,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.509732
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.131655
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.05028
                        },
                        {
                          "name": "goals",
                          "margin": -0.049121
                        },
                        {
                          "name": "duelWon",
                          "margin": -0.049101
                        }
                      ],
                      "others_margin": -0.133245
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.02360641397535801,
                    "model_output": 0.0236,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.1157
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0645
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0607
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0558
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 0.0644,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0216
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.0113
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0064
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0029
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0015
                        }
                      ],
                      "others": 0.0029,
                      "total": 0.0236,
                      "log_link": true,
                      "margin_base": -2.741965,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.409229
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.306113
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.227718
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.123863
                        },
                        {
                          "name": "accuratePass",
                          "margin": -0.068015
                        }
                      ],
                      "others_margin": 0.130665
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.35877642035484314,
                    "model_output": 0.3588,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1481
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1244
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.1112
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.052
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0395
                      }
                    ],
                    "decomposition": {
                      "base": 0.6805,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.261
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0512
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0344
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.0317
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0258
                        }
                      ],
                      "others": -0.0716,
                      "total": 0.3588,
                      "log_link": true,
                      "margin_base": -0.384987,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.483695
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.115214
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.07583
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.075313
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.061695
                        }
                      ],
                      "others_margin": -0.182139
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.660581111907959,
                    "model_output": 6.6606,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.059
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0483
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0421
                      },
                      {
                        "name": "rating",
                        "importance": 0.0418
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0415
                      }
                    ],
                    "decomposition": {
                      "base": 6.7683,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0625
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0362
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.01
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0099
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0098
                        }
                      ],
                      "others": -0.0517,
                      "total": 6.6606,
                      "log_link": false,
                      "margin_base": 6.768281,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.062512
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.036189
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.010005
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.009914
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.009795
                        }
                      ],
                      "others_margin": -0.051663
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "substitute",
                  "history_matches": 3,
                  "role_matches": 3,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "role_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9910, quality 0.457)",
              "stats": {
                "expected_goals": 0.0581,
                "goals": 0.0709,
                "goal_rate": 0.0709,
                "shots_on_target": 0.2101,
                "total_shots": 0.5532,
                "expected_assists": 0.0234,
                "key_pass": 0.3555,
                "rating": 6.6606,
                "minutes": 12.79,
                "total_pass": 2.1467,
                "accurate_pass": 1.4831,
                "duels_won": 0.7705,
                "total_long_balls": 0.3274,
                "accurate_long_balls": 0.3274,
                "total_opp_half_passes": 2.1467,
                "accurate_opp_half_passes": 1.4831,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 5.4,
                "possession_lost": 2.0976,
                "dispossessed": 0.7705,
                "duels_lost": 1.0488,
                "aerial_lost": 0.2784,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 1.1557,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.3852,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0,
                "tackles_won": 0.3852,
                "tackles": 0.3852,
                "clearances": 0.2784,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "offsides": 0.0,
                "ball_carries": 1.8683,
                "total_progression": 15.4724,
                "progressive_carries": 0.3852,
                "shots_off_target": 0.343
              },
              "params": {
                "market_value_eur": 4600000,
                "quality_factor": 0.4572,
                "boost_factor": 0.991,
                "reference_quality": 0.505,
                "history_matches": 3,
                "history_shrink": 0.625,
                "market_value_known": true
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 12.8 to 25.4 expected minutes (appearance prob 0.56)",
              "stats": {
                "expected_goals": 0.0872,
                "goals": 0.1064,
                "goal_rate": 0.1064,
                "shots_on_target": 0.3152,
                "total_shots": 0.8298,
                "expected_assists": 0.0351,
                "key_pass": 0.5333,
                "rating": 6.6606,
                "minutes": 25.37,
                "total_pass": 3.2201,
                "accurate_pass": 2.2247,
                "duels_won": 1.1557,
                "total_long_balls": 0.4911,
                "accurate_long_balls": 0.4911,
                "total_opp_half_passes": 3.2201,
                "accurate_opp_half_passes": 2.2247,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 8.1,
                "possession_lost": 3.1464,
                "dispossessed": 0.7705,
                "duels_lost": 1.5732,
                "aerial_lost": 0.2784,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 1.7335,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.5778,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0,
                "tackles_won": 0.5778,
                "tackles": 0.5778,
                "clearances": 0.4176,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "offsides": 0.0,
                "ball_carries": 2.8025,
                "total_progression": 23.2086,
                "progressive_carries": 0.5778,
                "shots_off_target": 0.5145,
                "bench_appearance_probability": 0.562,
                "bench_expected_minutes": 25.37
              },
              "params": {
                "expected_minutes": 25.37,
                "projection_minutes": 12.79,
                "minutes_scale": 1.5,
                "appearance_probability": 0.562
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0872,
                "goals": 0.1064,
                "goal_rate": 0.1064,
                "shots_on_target": 0.3152,
                "total_shots": 0.8298,
                "expected_assists": 0.0351,
                "key_pass": 0.5333,
                "rating": 6.6606,
                "minutes": 25.37,
                "total_pass": 3.2201,
                "accurate_pass": 2.2247,
                "duels_won": 1.1557,
                "total_long_balls": 0.4911,
                "accurate_long_balls": 0.4911,
                "total_opp_half_passes": 3.2201,
                "accurate_opp_half_passes": 2.2247,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 8.1,
                "possession_lost": 3.1464,
                "dispossessed": 0.7705,
                "duels_lost": 1.5732,
                "aerial_lost": 0.2784,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 1.7335,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.5778,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0,
                "tackles_won": 0.5778,
                "tackles": 0.5778,
                "clearances": 0.4176,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "offsides": 0.0,
                "ball_carries": 2.8025,
                "total_progression": 23.2086,
                "progressive_carries": 0.5778,
                "shots_off_target": 0.5145,
                "bench_appearance_probability": 0.562,
                "bench_expected_minutes": 25.37
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "expected_goals": 0.0872,
                "goal_rate": 0.1064,
                "goals": 0,
                "shots_on_target": 0.3152,
                "total_shots": 0.8298,
                "expected_assists": 0.0351,
                "key_pass": 0.5333,
                "rating": 6.6606,
                "minutes": 25.37,
                "total_pass": 3.2201,
                "accurate_pass": 2.2247,
                "duels_won": 1.1557,
                "total_long_balls": 0.4911,
                "accurate_long_balls": 0.4911,
                "total_opp_half_passes": 3.2201,
                "accurate_opp_half_passes": 2.2247,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 8.1,
                "possession_lost": 3.1464,
                "dispossessed": 0.7705,
                "duels_lost": 1.5732,
                "aerial_lost": 0.2784,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 1.7335,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.5778,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.5778,
                "tackles": 0.5778,
                "clearances": 0.4176,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "offsides": 0.0,
                "ball_carries": 2.8025,
                "total_progression": 23.2086,
                "progressive_carries": 0.5778,
                "shots_off_target": 0.5145,
                "bench_appearance_probability": 0.562,
                "bench_expected_minutes": 25.37,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "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": {
                "scoreline_reset": true,
                "team_goals": 1
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.26 (squad xG sum 1.2639, xG scale 0.9946, xA scale 1.0687, team xA 0.82 = 0.65 x lambda)",
              "stats": {
                "expected_goals": 0.0487,
                "goal_rate": 0.1064,
                "goals": 0,
                "shots_on_target": 0.3152,
                "total_shots": 0.8298,
                "expected_assists": 0.0211,
                "key_pass": 0.5333,
                "rating": 6.6606,
                "minutes": 25.37,
                "total_pass": 3.2201,
                "accurate_pass": 2.2247,
                "duels_won": 1.1557,
                "total_long_balls": 0.4911,
                "accurate_long_balls": 0.4911,
                "total_opp_half_passes": 3.2201,
                "accurate_opp_half_passes": 2.2247,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 8.1,
                "possession_lost": 3.1464,
                "dispossessed": 0.7705,
                "duels_lost": 1.5732,
                "aerial_lost": 0.2784,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 1.7335,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.5778,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.5778,
                "tackles": 0.5778,
                "clearances": 0.4176,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "offsides": 0.0,
                "ball_carries": 2.8025,
                "total_progression": 23.2086,
                "progressive_carries": 0.5778,
                "shots_off_target": 0.5145,
                "bench_appearance_probability": 0.562,
                "bench_expected_minutes": 25.37,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "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,
                "finishing_factor": 1.1399,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 1.257,
                "squad_xg_sum": 1.2639,
                "squad_xa_sum": 0.7645,
                "team_expected_assists": 0.817,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.9946,
                "xa_scale": 1.0687,
                "opponent_lambda": 0.869,
                "scoreline_reset": true,
                "appearance_weight": 0.562
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0872,
                  "after": 0.0487
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0351,
                  "after": 0.0211
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 72.0)",
              "stats": {
                "expected_goals": 0.0487,
                "goal_rate": 0.1064,
                "goals": 0,
                "shots_on_target": 0.3152,
                "total_shots": 0.8298,
                "expected_assists": 0.0211,
                "key_pass": 0.5333,
                "rating": 6.6606,
                "minutes": 25.37,
                "total_pass": 3.2201,
                "accurate_pass": 2.2247,
                "duels_won": 1.1557,
                "total_long_balls": 0.4911,
                "accurate_long_balls": 0.4911,
                "total_opp_half_passes": 3.2201,
                "accurate_opp_half_passes": 2.2247,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 8.1,
                "possession_lost": 3.1464,
                "dispossessed": 0.7705,
                "duels_lost": 1.5732,
                "aerial_lost": 0.2784,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 1.7335,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.5778,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.5778,
                "tackles": 0.5778,
                "clearances": 0.4176,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "offsides": 0.0,
                "ball_carries": 2.8025,
                "total_progression": 23.2086,
                "progressive_carries": 0.5778,
                "shots_off_target": 0.5145,
                "bench_appearance_probability": 0.562,
                "bench_expected_minutes": 25.37,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "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,
                "finishing_factor": 1.1399,
                "creation_factor": 0.8,
                "fifa_overall": 72.0
              },
              "params": {
                "match_squad_rank": 17,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 4196,
                "fifa_rank": 4258.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 72.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "expected_goals": 0.0487,
                "goal_rate": 0.1064,
                "goals": 0,
                "shots_on_target": 0.3152,
                "total_shots": 0.8298,
                "expected_assists": 0.0211,
                "key_pass": 0.5333,
                "rating": 6.6606,
                "minutes": 25.37,
                "total_pass": 3.2201,
                "accurate_pass": 2.2247,
                "duels_won": 1.1557,
                "total_long_balls": 0.4911,
                "accurate_long_balls": 0.4911,
                "total_opp_half_passes": 3.2201,
                "accurate_opp_half_passes": 2.2247,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 8.1,
                "possession_lost": 3.1464,
                "dispossessed": 0.7705,
                "duels_lost": 1.5732,
                "aerial_lost": 0.2784,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 1.7335,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.5778,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.5778,
                "tackles": 0.5778,
                "clearances": 0.4176,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "offsides": 0.0,
                "ball_carries": 2.8025,
                "total_progression": 23.2086,
                "progressive_carries": 0.5778,
                "shots_off_target": 0.5145,
                "bench_appearance_probability": 0.562,
                "bench_expected_minutes": 25.37,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0466,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.1399,
                "creation_factor": 0.8,
                "fifa_overall": 72.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0466,
                "goal_rate": 0.1064,
                "scorer_weight": 0.0555,
                "squad_weight_total": 1.3303,
                "weight_share": 0.0417,
                "finishing_factor": 1.1399,
                "appearance_weight": 0.562,
                "weight_rank": 8,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lucas Boyé",
                    "weight": 0.3448,
                    "already": 0,
                    "effective_weight": 0.3448,
                    "runner_up": "Mariano Díaz",
                    "runner_up_effective_weight": 0.2151
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "expected_goals": 0.0487,
                "goal_rate": 0.1064,
                "goals": 0,
                "shots_on_target": 0.3152,
                "total_shots": 0.8298,
                "expected_assists": 0.0211,
                "key_pass": 0.5333,
                "rating": 6.6606,
                "minutes": 25.37,
                "total_pass": 3.2201,
                "accurate_pass": 2.2247,
                "duels_won": 1.1557,
                "total_long_balls": 0.4911,
                "accurate_long_balls": 0.4911,
                "total_opp_half_passes": 3.2201,
                "accurate_opp_half_passes": 2.2247,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 8.1,
                "possession_lost": 3.1464,
                "dispossessed": 0.7705,
                "duels_lost": 1.5732,
                "aerial_lost": 0.2784,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 1.7335,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.5778,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.5778,
                "tackles": 0.5778,
                "clearances": 0.4176,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "offsides": 0.0,
                "ball_carries": 2.8025,
                "total_progression": 23.2086,
                "progressive_carries": 0.5778,
                "shots_off_target": 0.5145,
                "bench_appearance_probability": 0.562,
                "bench_expected_minutes": 25.37,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0466,
                "projected_assists": 0,
                "assist_probability": 0.0207,
                "finishing_factor": 1.1399,
                "creation_factor": 0.8,
                "fifa_overall": 72.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0207,
                "assist_rate": 0.0,
                "provider_weight": 0.0169,
                "squad_weight_total": 0.7993,
                "weight_share": 0.0211,
                "creation_factor": 0.8,
                "appearance_weight": 0.562,
                "weight_rank": 11,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Ángel Pérez",
                    "weight": 0.1707,
                    "already": 0,
                    "effective_weight": 0.1707,
                    "runner_up": "Denis Suárez",
                    "runner_up_effective_weight": 0.1469,
                    "blocked_own_goal": [
                      "Lucas Boyé"
                    ]
                  }
                ]
              }
            }
          ]
        }
      },
      "substitutes": {
        "Carles Aleñá": {
          "player_id": 794937,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 10,
          "height": 180,
          "market_value": 2800000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0278,
            "assist_rate": 0.0612,
            "assists": 0,
            "expected_goals": 0.0228,
            "goal_rate": 0.0393,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 0,
            "rating": 6.7243,
            "minutes": 13,
            "total_pass": 7,
            "accurate_pass": 7,
            "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": 6,
            "accurate_opp_half_passes": 5,
            "crosses_total": 1,
            "crosses_accurate": 0,
            "touches": 11,
            "possession_lost": 2.5505,
            "dispossessed": 0.8022,
            "duels_lost": 1,
            "aerial_won": 0,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0009,
            "ball_carries": 3,
            "total_progression": 4,
            "progressive_carries": 0,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.692,
            "bench_expected_minutes": 13.19,
            "projected_substitution_order": 1,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.588,
            "projected_substitution_game_state_adjustment": 0,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0224,
            "projected_assists": 0,
            "assist_probability": 0.0272,
            "finishing_factor": 1.0733,
            "creation_factor": 1.25,
            "fifa_overall": 78.0
          },
          "latest_10_games": [
            {
              "match_id": 16421069,
              "match_date": "2026-10-18",
              "home_team": "Celta Vigo",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 62,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0714,
                "expected_assists": 0.0742,
                "total_shots": 1,
                "total_pass": 32,
                "accurate_pass": 28,
                "key_pass": 2,
                "aerial_won": 1,
                "duels_won": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416337,
              "match_date": "2026-09-19",
              "home_team": "Athletic Club",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 11,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0012,
                "total_shots": 0,
                "total_pass": 5,
                "accurate_pass": 5,
                "duels_won": 1,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416334,
              "match_date": "2026-09-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Valencia",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Valencia",
              "stats": {
                "minutes": 11,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0065,
                "total_shots": 0,
                "total_pass": 7,
                "accurate_pass": 6,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416328,
              "match_date": "2026-09-12",
              "home_team": "Real Racing Club",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 23,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0039,
                "total_shots": 0,
                "total_pass": 10,
                "accurate_pass": 5,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416318,
              "match_date": "2026-09-06",
              "home_team": "Deportivo Alavés",
              "away_team": "Osasuna",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 71,
                "rating": 6.6,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.0901,
                "expected_assists": 0.0221,
                "total_shots": 1,
                "total_pass": 30,
                "accurate_pass": 25,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 1,
                "clearances": 2,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416292,
              "match_date": "2026-08-20",
              "home_team": "Rayo Vallecano",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 10,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0106,
                "total_shots": 0,
                "total_pass": 9,
                "accurate_pass": 8,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421047,
              "match_date": "2026-08-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Getafe",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Getafe",
              "stats": {
                "minutes": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0174,
                "expected_assists": 0.0054,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 9,
                "accurate_pass": 9
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083364,
              "match_date": "2026-05-02",
              "home_team": "Deportivo Alavés",
              "away_team": "Athletic Club",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 17,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0495,
                "total_shots": 0,
                "total_pass": 7,
                "accurate_pass": 7,
                "tackles": 1,
                "duels_won": 1
              },
              "has_player_stats": true
            },
            {
              "match_id": 14083202,
              "match_date": "2026-04-25",
              "home_team": "Deportivo Alavés",
              "away_team": "Mallorca",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Mallorca",
              "stats": {
                "minutes": 63,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0271,
                "expected_assists": 0.1834,
                "total_shots": 1,
                "total_pass": 23,
                "accurate_pass": 18,
                "key_pass": 3,
                "tackles": 1,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true
            },
            {
              "match_id": 14083295,
              "match_date": "2026-04-21",
              "home_team": "Real Madrid",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 32,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1123,
                "expected_assists": 0.1614,
                "total_shots": 2,
                "shots_off_target": 1,
                "total_pass": 27,
                "accurate_pass": 25,
                "key_pass": 2,
                "duels_won": 1
              },
              "has_player_stats": true
            }
          ],
          "ranking": {
            "global_player_rank": 2212,
            "combined_rank_score": 1041.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 822.0,
            "sofascore_rating": 6.6,
            "sofascore_appearances": 2.0,
            "fifa_rank": 1260.0,
            "fifa_overall": 78.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 13,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.7243,
            "source_file": "data/player_rankings.csv",
            "player_name": "Carles Aleñá",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Darko Velkovski",
                  "ranking": 2207
                },
                {
                  "player_name": "Sandro Wieser",
                  "ranking": 2208
                },
                {
                  "player_name": "Zafar Sadullayev",
                  "ranking": 2209
                },
                {
                  "player_name": "Tyrell Malacia",
                  "ranking": 2210
                },
                {
                  "player_name": "Yeremay Hernández",
                  "ranking": 2211
                }
              ],
              "lower": [
                {
                  "player_name": "Jorge Cestero",
                  "ranking": 2213
                },
                {
                  "player_name": "Wallace Yan",
                  "ranking": 2214
                },
                {
                  "player_name": "Behruz Uktamov",
                  "ranking": 2215
                },
                {
                  "player_name": "Ilkhomzhon Kenzhaev",
                  "ranking": 2216
                },
                {
                  "player_name": "Ravshanbek Yagudin",
                  "ranking": 2217
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.751,
          "history_matches": 41,
          "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",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "rating",
              "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",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 41,
            "data_confidence": 0.751,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 13.19,
            "bench_appearance_prob": 0.692,
            "market_value_adjustment": 0.9978,
            "fbref_prior_metrics": {
              "squad": "Alavés",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 0.0,
              "sub_appearances": 2.0,
              "minutes_per_sub": 6.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "prior_reliability": 0.0067
            },
            "rationale": "Bench projection scaled from XGBoost M_service (41 historical appearances) to 13.2 expected mins (appearance prob 0.69); FBref playing time empirical prior: 2.0 sub appearances, 6.0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 0.5133,
                "expected_assists": 0.0519,
                "assists": 0.0844,
                "assist_rate": 0.0844,
                "expected_goals": 0.0458,
                "goals": 0.0542,
                "goal_rate": 0.0542,
                "shots_on_target": 0.153,
                "total_shots": 0.5269,
                "rating": 6.7243,
                "minutes": 18.18,
                "total_pass": 10.3258,
                "accurate_pass": 9.0704,
                "duels_won": 0.9854,
                "total_long_balls": 0.467,
                "accurate_long_balls": 0.3216,
                "total_own_half_passes": 2.4329,
                "accurate_own_half_passes": 2.2796,
                "total_opp_half_passes": 7.8929,
                "accurate_opp_half_passes": 6.7908,
                "crosses_total": 1.4543,
                "crosses_accurate": 0.2959,
                "touches": 15.2867,
                "possession_lost": 3.5232,
                "dispossessed": 0.804,
                "duels_lost": 1.4241,
                "aerial_won": 0.0,
                "aerial_lost": 0.2203,
                "interceptions": 0.0,
                "tackles_won": 0.2812,
                "tackles": 0.3531,
                "clearances": 0.0196,
                "total_contest": 0.3506,
                "won_contest": 0.149,
                "challenges_lost": 0.0271,
                "fouls": 0.171,
                "fouls_drawn": 0.4833,
                "blocks": 0.0,
                "big_chances_created": 0.1386,
                "big_chances_missed": 0.0,
                "xgot": 0.0018,
                "ball_carries": 4.2971,
                "total_progression": 5.2545,
                "progressive_carries": 0.0,
                "shots_off_target": 0.3739
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 7,
                  "trained_at": "2026-10-23T10:05:23.571433+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 903,
                    "rows": 24475
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Celta Vigo",
                    "minutes": 62.0,
                    "is_starting": true,
                    "weight": 0.1502,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Athletic Club",
                    "minutes": 11.0,
                    "is_starting": false,
                    "weight": 0.1277,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-09-15",
                    "opponent": "Valencia",
                    "minutes": 11.0,
                    "is_starting": false,
                    "weight": 0.1085,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Real Racing Club",
                    "minutes": 23.0,
                    "is_starting": false,
                    "weight": 0.0922,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Osasuna",
                    "minutes": 71.0,
                    "is_starting": true,
                    "weight": 0.0784,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-08-20",
                    "opponent": "Rayo Vallecano",
                    "minutes": 10.0,
                    "is_starting": false,
                    "weight": 0.0666,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-08-15",
                    "opponent": "Getafe",
                    "minutes": 1.0,
                    "is_starting": false,
                    "weight": 0.0566,
                    "rating": 0.0
                  },
                  {
                    "match_date": "2026-05-02",
                    "opponent": "Athletic Club",
                    "minutes": 17.0,
                    "is_starting": false,
                    "weight": 0.0481,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-04-25",
                    "opponent": "Mallorca",
                    "minutes": 63.0,
                    "is_starting": true,
                    "weight": 0.0409,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-04-21",
                    "opponent": "Real Madrid",
                    "minutes": 32.0,
                    "is_starting": false,
                    "weight": 0.0348,
                    "rating": 6.7
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 0.0,
                  "creative_index": 0.3748,
                  "totalShots": 0.5602,
                  "expectedGoals": 0.0398,
                  "expectedAssists": 0.0496,
                  "onTargetScoringAttempt": 0.0821
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.5132712721824646,
                    "model_output": 0.5133,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1647
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1377
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0663
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0524
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0316
                      }
                    ],
                    "decomposition": {
                      "base": 0.8945,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.441
                        },
                        {
                          "name": "totalCross",
                          "contribution": 0.0267
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0233
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0223
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.0145
                        }
                      ],
                      "others": 0.0176,
                      "total": 0.5133,
                      "log_link": true,
                      "margin_base": -0.111507,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.679245
                        },
                        {
                          "name": "totalCross",
                          "margin": 0.057291
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.047285
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.045402
                        },
                        {
                          "name": "cross_creative_contribution",
                          "margin": 0.029626
                        }
                      ],
                      "others_margin": 0.035001
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.05190287157893181,
                    "model_output": 0.0519,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1545
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1048
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.1021
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0476
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0472
                      }
                    ],
                    "decomposition": {
                      "base": 0.0859,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0391
                        },
                        {
                          "name": "totalCross",
                          "contribution": 0.0095
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0035
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0032
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0028
                        }
                      ],
                      "others": -0.0019,
                      "total": 0.0519,
                      "log_link": true,
                      "margin_base": -2.454719,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.606473
                        },
                        {
                          "name": "totalCross",
                          "margin": 0.184207
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.061047
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.054752
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.051166
                        }
                      ],
                      "others_margin": -0.036525
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.0844392403960228,
                    "model_output": 0.0844,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.0619
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0395
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0343
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0335
                      }
                    ],
                    "decomposition": {
                      "base": 0.0874,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0237
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0086
                        },
                        {
                          "name": "press_vulnerability",
                          "contribution": 0.0074
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0078
                        },
                        {
                          "name": "totalCross",
                          "contribution": 0.0069
                        }
                      ],
                      "others": -0.01,
                      "total": 0.0844,
                      "log_link": true,
                      "margin_base": -2.437263,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.316401
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.1272
                        },
                        {
                          "name": "press_vulnerability",
                          "margin": 0.096957
                        },
                        {
                          "name": "creative_index",
                          "margin": 0.092836
                        },
                        {
                          "name": "totalCross",
                          "margin": 0.075873
                        }
                      ],
                      "others_margin": -0.110925
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.04575786367058754,
                    "model_output": 0.0458,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedGoals",
                        "importance": 0.134
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.074
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0705
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.039
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0273
                      }
                    ],
                    "decomposition": {
                      "base": 0.094,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0411
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0078
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0041
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": 0.0034
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0026
                        }
                      ],
                      "others": -0.0042,
                      "total": 0.0458,
                      "log_link": true,
                      "margin_base": -2.364919,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.575588
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.158822
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.087993
                        },
                        {
                          "name": "interceptionWon",
                          "margin": 0.067331
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.050437
                        }
                      ],
                      "others_margin": -0.089948
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.05418189987540245,
                    "model_output": 0.0542,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0974
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0527
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0513
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0365
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.03
                      }
                    ],
                    "decomposition": {
                      "base": 0.0993,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0377
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0076
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0067
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0052
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0043
                        }
                      ],
                      "others": -0.0056,
                      "total": 0.0542,
                      "log_link": true,
                      "margin_base": -2.309444,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.476858
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.131953
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.11609
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.088986
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.073855
                        }
                      ],
                      "others_margin": -0.098112
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.1529776006937027,
                    "model_output": 0.153,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1106
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0885
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0762
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0292
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0279
                      }
                    ],
                    "decomposition": {
                      "base": 0.326,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1233
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0437
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0202
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0188
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0072
                        }
                      ],
                      "others": 0.0026,
                      "total": 0.153,
                      "log_link": true,
                      "margin_base": -1.120773,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.47528
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.242517
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": -0.136143
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.126988
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.046678
                        }
                      ],
                      "others_margin": 0.016939
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.5268528461456299,
                    "model_output": 0.5269,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1261
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1167
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0633
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0419
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.9969,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.3951
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.2033
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0763
                        },
                        {
                          "name": "press_vulnerability",
                          "contribution": 0.0336
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.027
                        }
                      ],
                      "others": 0.0455,
                      "total": 0.5269,
                      "log_link": false,
                      "margin_base": 0.996896,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.395139
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.203301
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.076268
                        },
                        {
                          "name": "press_vulnerability",
                          "margin": 0.033618
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": -0.027001
                        }
                      ],
                      "others_margin": 0.045511
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.724302768707275,
                    "model_output": 6.7243,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "rating",
                        "importance": 0.0947
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0836
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0491
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0438
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.036
                      }
                    ],
                    "decomposition": {
                      "base": 6.8561,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0963
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0455
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0279
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0252
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0142
                        }
                      ],
                      "others": -0.0015,
                      "total": 6.7243,
                      "log_link": false,
                      "margin_base": 6.856052,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.096344
                        },
                        {
                          "name": "rating",
                          "margin": -0.045537
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.027872
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.025181
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.014195
                        }
                      ],
                      "others_margin": -0.00137
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "substitute",
                  "history_matches": 41,
                  "role_matches": 16,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "role_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9978, quality 0.437)",
              "stats": {
                "key_pass": 0.5121,
                "expected_assists": 0.0518,
                "assists": 0.0843,
                "assist_rate": 0.0843,
                "expected_goals": 0.0457,
                "goals": 0.0541,
                "goal_rate": 0.0541,
                "shots_on_target": 0.1526,
                "total_shots": 0.5257,
                "rating": 6.7243,
                "minutes": 18.18,
                "total_pass": 10.3031,
                "accurate_pass": 9.0504,
                "duels_won": 0.9832,
                "total_long_balls": 0.466,
                "accurate_long_balls": 0.3209,
                "total_own_half_passes": 2.4275,
                "accurate_own_half_passes": 2.2746,
                "total_opp_half_passes": 7.8755,
                "accurate_opp_half_passes": 6.7759,
                "crosses_total": 1.4511,
                "crosses_accurate": 0.2952,
                "touches": 15.2531,
                "possession_lost": 3.5154,
                "dispossessed": 0.8022,
                "duels_lost": 1.421,
                "aerial_won": 0.0,
                "aerial_lost": 0.2198,
                "interceptions": 0.0,
                "tackles_won": 0.2806,
                "tackles": 0.3523,
                "clearances": 0.0196,
                "total_contest": 0.3498,
                "won_contest": 0.1487,
                "challenges_lost": 0.027,
                "fouls": 0.1706,
                "fouls_drawn": 0.4822,
                "blocks": 0.0,
                "big_chances_created": 0.1383,
                "big_chances_missed": 0.0,
                "xgot": 0.0018,
                "ball_carries": 4.2876,
                "total_progression": 5.2429,
                "progressive_carries": 0.0,
                "shots_off_target": 0.3731
              },
              "params": {
                "market_value_eur": 2800000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9978,
                "reference_quality": 0.505,
                "history_matches": 41,
                "history_shrink": 0.1087,
                "market_value_known": true
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0005)",
              "stats": {
                "key_pass": 0.5121,
                "expected_assists": 0.0518,
                "assists": 0.0843,
                "assist_rate": 0.0843,
                "expected_goals": 0.0457,
                "goals": 0.0541,
                "goal_rate": 0.0541,
                "shots_on_target": 0.1532,
                "total_shots": 0.5262,
                "rating": 6.7243,
                "minutes": 18.18,
                "total_pass": 10.3031,
                "accurate_pass": 9.0504,
                "duels_won": 0.9832,
                "total_long_balls": 0.466,
                "accurate_long_balls": 0.3209,
                "total_own_half_passes": 2.4275,
                "accurate_own_half_passes": 2.2746,
                "total_opp_half_passes": 7.8755,
                "accurate_opp_half_passes": 6.7759,
                "crosses_total": 1.4523,
                "crosses_accurate": 0.2952,
                "touches": 15.2531,
                "possession_lost": 3.5154,
                "dispossessed": 0.8022,
                "duels_lost": 1.421,
                "aerial_won": 0.0,
                "aerial_lost": 0.2198,
                "interceptions": 0.0,
                "tackles_won": 0.2814,
                "tackles": 0.3523,
                "clearances": 0.0196,
                "total_contest": 0.3498,
                "won_contest": 0.1487,
                "challenges_lost": 0.027,
                "fouls": 0.1705,
                "fouls_drawn": 0.482,
                "blocks": 0.0,
                "big_chances_created": 0.1383,
                "big_chances_missed": 0.0,
                "xgot": 0.0018,
                "ball_carries": 4.2876,
                "total_progression": 5.2429,
                "progressive_carries": 0.0,
                "shots_off_target": 0.3731
              },
              "params": {
                "blend_weight": 0.0005,
                "history_matches": 41,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.202,
                "prior_reliability": 0.0067,
                "competition": "La Liga",
                "squad": "Alavés"
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 18.2 to 13.2 expected minutes (appearance prob 0.69)",
              "stats": {
                "key_pass": 0.3715,
                "expected_assists": 0.0376,
                "assists": 0.0612,
                "assist_rate": 0.0612,
                "expected_goals": 0.0332,
                "goals": 0.0393,
                "goal_rate": 0.0393,
                "shots_on_target": 0.1112,
                "total_shots": 0.3819,
                "rating": 6.7243,
                "minutes": 13.19,
                "total_pass": 7.4751,
                "accurate_pass": 6.5663,
                "duels_won": 0.7133,
                "total_long_balls": 0.3381,
                "accurate_long_balls": 0.2328,
                "total_own_half_passes": 1.7612,
                "accurate_own_half_passes": 1.6503,
                "total_opp_half_passes": 5.7139,
                "accurate_opp_half_passes": 4.9161,
                "crosses_total": 1.0537,
                "crosses_accurate": 0.2142,
                "touches": 11.0665,
                "possession_lost": 2.5505,
                "dispossessed": 0.8022,
                "duels_lost": 1.031,
                "aerial_won": 0.0,
                "aerial_lost": 0.2198,
                "interceptions": 0.0,
                "tackles_won": 0.2042,
                "tackles": 0.2556,
                "clearances": 0.0142,
                "total_contest": 0.2538,
                "won_contest": 0.1079,
                "challenges_lost": 0.027,
                "fouls": 0.1237,
                "fouls_drawn": 0.3497,
                "blocks": 0.0,
                "big_chances_created": 0.1003,
                "big_chances_missed": 0.0,
                "xgot": 0.0013,
                "ball_carries": 3.1108,
                "total_progression": 3.8038,
                "progressive_carries": 0.0,
                "shots_off_target": 0.2707,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 13.19
              },
              "params": {
                "expected_minutes": 13.19,
                "projection_minutes": 18.18,
                "minutes_scale": 0.7255,
                "appearance_probability": 0.692
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0.3715,
                "expected_assists": 0.0376,
                "assists": 0.0612,
                "assist_rate": 0.0612,
                "expected_goals": 0.0332,
                "goals": 0.0393,
                "goal_rate": 0.0393,
                "shots_on_target": 0.1112,
                "total_shots": 0.3819,
                "rating": 6.7243,
                "minutes": 13.19,
                "total_pass": 7.4751,
                "accurate_pass": 6.5663,
                "duels_won": 0.7133,
                "total_long_balls": 0.3381,
                "accurate_long_balls": 0.2328,
                "total_own_half_passes": 1.7612,
                "accurate_own_half_passes": 1.6503,
                "total_opp_half_passes": 5.7139,
                "accurate_opp_half_passes": 4.9161,
                "crosses_total": 1.0537,
                "crosses_accurate": 0.2142,
                "touches": 11.0665,
                "possession_lost": 2.5505,
                "dispossessed": 0.8022,
                "duels_lost": 1.031,
                "aerial_won": 0.0,
                "aerial_lost": 0.2198,
                "interceptions": 0.0,
                "tackles_won": 0.2042,
                "tackles": 0.2556,
                "clearances": 0.0142,
                "total_contest": 0.2538,
                "won_contest": 0.1079,
                "challenges_lost": 0.027,
                "fouls": 0.1237,
                "fouls_drawn": 0.3497,
                "blocks": 0.0,
                "big_chances_created": 0.1003,
                "big_chances_missed": 0.0,
                "xgot": 0.0013,
                "ball_carries": 3.1108,
                "total_progression": 3.8038,
                "progressive_carries": 0.0,
                "shots_off_target": 0.2707,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 13.19
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "key_pass": 0.3715,
                "expected_assists": 0.0376,
                "assist_rate": 0.0612,
                "assists": 0,
                "expected_goals": 0.0332,
                "goal_rate": 0.0393,
                "goals": 0,
                "shots_on_target": 0.1112,
                "total_shots": 0.3819,
                "rating": 6.7243,
                "minutes": 13.19,
                "total_pass": 7.4751,
                "accurate_pass": 6.5663,
                "duels_won": 0.7133,
                "total_long_balls": 0.3381,
                "accurate_long_balls": 0.2328,
                "total_own_half_passes": 1.7612,
                "accurate_own_half_passes": 1.6503,
                "total_opp_half_passes": 5.7139,
                "accurate_opp_half_passes": 4.9161,
                "crosses_total": 1.0537,
                "crosses_accurate": 0.2142,
                "touches": 11.0665,
                "possession_lost": 2.5505,
                "dispossessed": 0.8022,
                "duels_lost": 1.031,
                "aerial_won": 0.0,
                "aerial_lost": 0.2198,
                "interceptions": 0.0,
                "tackles_won": 0.2042,
                "tackles": 0.2556,
                "clearances": 0.0142,
                "total_contest": 0.2538,
                "won_contest": 0.1079,
                "challenges_lost": 0.027,
                "fouls": 0.1237,
                "fouls_drawn": 0.3497,
                "blocks": 0.0,
                "big_chances_created": 0.1003,
                "big_chances_missed": 0.0,
                "xgot": 0.0013,
                "ball_carries": 3.1108,
                "total_progression": 3.8038,
                "progressive_carries": 0.0,
                "shots_off_target": 0.2707,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 13.19,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "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": {
                "scoreline_reset": true,
                "team_goals": 1
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.26 (squad xG sum 1.2639, xG scale 0.9946, xA scale 1.0687, team xA 0.82 = 0.65 x lambda)",
              "stats": {
                "key_pass": 0.3715,
                "expected_assists": 0.0278,
                "assist_rate": 0.0612,
                "assists": 0,
                "expected_goals": 0.0228,
                "goal_rate": 0.0393,
                "goals": 0,
                "shots_on_target": 0.1112,
                "total_shots": 0.3819,
                "rating": 6.7243,
                "minutes": 13.19,
                "total_pass": 7.4751,
                "accurate_pass": 6.5663,
                "duels_won": 0.7133,
                "total_long_balls": 0.3381,
                "accurate_long_balls": 0.2328,
                "total_own_half_passes": 1.7612,
                "accurate_own_half_passes": 1.6503,
                "total_opp_half_passes": 5.7139,
                "accurate_opp_half_passes": 4.9161,
                "crosses_total": 1.0537,
                "crosses_accurate": 0.2142,
                "touches": 11.0665,
                "possession_lost": 2.5505,
                "dispossessed": 0.8022,
                "duels_lost": 1.031,
                "aerial_won": 0.0,
                "aerial_lost": 0.2198,
                "interceptions": 0.0,
                "tackles_won": 0.2042,
                "tackles": 0.2556,
                "clearances": 0.0142,
                "total_contest": 0.2538,
                "won_contest": 0.1079,
                "challenges_lost": 0.027,
                "fouls": 0.1237,
                "fouls_drawn": 0.3497,
                "blocks": 0.0,
                "big_chances_created": 0.1003,
                "big_chances_missed": 0.0,
                "xgot": 0.0009,
                "ball_carries": 3.1108,
                "total_progression": 3.8038,
                "progressive_carries": 0.0,
                "shots_off_target": 0.2707,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 13.19,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "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,
                "finishing_factor": 1.0733,
                "creation_factor": 1.25
              },
              "params": {
                "team_lambda": 1.257,
                "squad_xg_sum": 1.2639,
                "squad_xa_sum": 0.7645,
                "team_expected_assists": 0.817,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.9946,
                "xa_scale": 1.0687,
                "opponent_lambda": 0.869,
                "scoreline_reset": true,
                "appearance_weight": 0.692
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0332,
                  "after": 0.0228
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0376,
                  "after": 0.0278
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 78.0)",
              "stats": {
                "key_pass": 0.3715,
                "expected_assists": 0.0278,
                "assist_rate": 0.0612,
                "assists": 0,
                "expected_goals": 0.0228,
                "goal_rate": 0.0393,
                "goals": 0,
                "shots_on_target": 0.1112,
                "total_shots": 0.3819,
                "rating": 6.7243,
                "minutes": 13.19,
                "total_pass": 7.4751,
                "accurate_pass": 6.5663,
                "duels_won": 0.7133,
                "total_long_balls": 0.3381,
                "accurate_long_balls": 0.2328,
                "total_own_half_passes": 1.7612,
                "accurate_own_half_passes": 1.6503,
                "total_opp_half_passes": 5.7139,
                "accurate_opp_half_passes": 4.9161,
                "crosses_total": 1.0537,
                "crosses_accurate": 0.2142,
                "touches": 11.0665,
                "possession_lost": 2.5505,
                "dispossessed": 0.8022,
                "duels_lost": 1.031,
                "aerial_won": 0.0,
                "aerial_lost": 0.2198,
                "interceptions": 0.0,
                "tackles_won": 0.2042,
                "tackles": 0.2556,
                "clearances": 0.0142,
                "total_contest": 0.2538,
                "won_contest": 0.1079,
                "challenges_lost": 0.027,
                "fouls": 0.1237,
                "fouls_drawn": 0.3497,
                "blocks": 0.0,
                "big_chances_created": 0.1003,
                "big_chances_missed": 0.0,
                "xgot": 0.0009,
                "ball_carries": 3.1108,
                "total_progression": 3.8038,
                "progressive_carries": 0.0,
                "shots_off_target": 0.2707,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 13.19,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "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,
                "finishing_factor": 1.0733,
                "creation_factor": 1.25,
                "fifa_overall": 78.0
              },
              "params": {
                "match_squad_rank": 13,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 2212,
                "fifa_rank": 1260.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 78.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "key_pass": 0.3715,
                "expected_assists": 0.0278,
                "assist_rate": 0.0612,
                "assists": 0,
                "expected_goals": 0.0228,
                "goal_rate": 0.0393,
                "goals": 0,
                "shots_on_target": 0.1112,
                "total_shots": 0.3819,
                "rating": 6.7243,
                "minutes": 13.19,
                "total_pass": 7.4751,
                "accurate_pass": 6.5663,
                "duels_won": 0.7133,
                "total_long_balls": 0.3381,
                "accurate_long_balls": 0.2328,
                "total_own_half_passes": 1.7612,
                "accurate_own_half_passes": 1.6503,
                "total_opp_half_passes": 5.7139,
                "accurate_opp_half_passes": 4.9161,
                "crosses_total": 1.0537,
                "crosses_accurate": 0.2142,
                "touches": 11.0665,
                "possession_lost": 2.5505,
                "dispossessed": 0.8022,
                "duels_lost": 1.031,
                "aerial_won": 0.0,
                "aerial_lost": 0.2198,
                "interceptions": 0.0,
                "tackles_won": 0.2042,
                "tackles": 0.2556,
                "clearances": 0.0142,
                "total_contest": 0.2538,
                "won_contest": 0.1079,
                "challenges_lost": 0.027,
                "fouls": 0.1237,
                "fouls_drawn": 0.3497,
                "blocks": 0.0,
                "big_chances_created": 0.1003,
                "big_chances_missed": 0.0,
                "xgot": 0.0009,
                "ball_carries": 3.1108,
                "total_progression": 3.8038,
                "progressive_carries": 0.0,
                "shots_off_target": 0.2707,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 13.19,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0224,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0733,
                "creation_factor": 1.25,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0224,
                "goal_rate": 0.0393,
                "scorer_weight": 0.0245,
                "squad_weight_total": 1.3303,
                "weight_share": 0.0184,
                "finishing_factor": 1.0733,
                "appearance_weight": 0.692,
                "weight_rank": 12,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lucas Boyé",
                    "weight": 0.3448,
                    "already": 0,
                    "effective_weight": 0.3448,
                    "runner_up": "Mariano Díaz",
                    "runner_up_effective_weight": 0.2151
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "key_pass": 0.3715,
                "expected_assists": 0.0278,
                "assist_rate": 0.0612,
                "assists": 0,
                "expected_goals": 0.0228,
                "goal_rate": 0.0393,
                "goals": 0,
                "shots_on_target": 0.1112,
                "total_shots": 0.3819,
                "rating": 6.7243,
                "minutes": 13.19,
                "total_pass": 7.4751,
                "accurate_pass": 6.5663,
                "duels_won": 0.7133,
                "total_long_balls": 0.3381,
                "accurate_long_balls": 0.2328,
                "total_own_half_passes": 1.7612,
                "accurate_own_half_passes": 1.6503,
                "total_opp_half_passes": 5.7139,
                "accurate_opp_half_passes": 4.9161,
                "crosses_total": 1.0537,
                "crosses_accurate": 0.2142,
                "touches": 11.0665,
                "possession_lost": 2.5505,
                "dispossessed": 0.8022,
                "duels_lost": 1.031,
                "aerial_won": 0.0,
                "aerial_lost": 0.2198,
                "interceptions": 0.0,
                "tackles_won": 0.2042,
                "tackles": 0.2556,
                "clearances": 0.0142,
                "total_contest": 0.2538,
                "won_contest": 0.1079,
                "challenges_lost": 0.027,
                "fouls": 0.1237,
                "fouls_drawn": 0.3497,
                "blocks": 0.0,
                "big_chances_created": 0.1003,
                "big_chances_missed": 0.0,
                "xgot": 0.0009,
                "ball_carries": 3.1108,
                "total_progression": 3.8038,
                "progressive_carries": 0.0,
                "shots_off_target": 0.2707,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 13.19,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0224,
                "projected_assists": 0,
                "assist_probability": 0.0272,
                "finishing_factor": 1.0733,
                "creation_factor": 1.25,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0272,
                "assist_rate": 0.0612,
                "provider_weight": 0.0347,
                "squad_weight_total": 0.7993,
                "weight_share": 0.0435,
                "creation_factor": 1.25,
                "appearance_weight": 0.692,
                "weight_rank": 8,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Ángel Pérez",
                    "weight": 0.1707,
                    "already": 0,
                    "effective_weight": 0.1707,
                    "runner_up": "Denis Suárez",
                    "runner_up_effective_weight": 0.1469,
                    "blocked_own_goal": [
                      "Lucas Boyé"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Ander Guevara": {
          "player_id": 891931,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 6,
          "height": 180,
          "market_value": 2700000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0116,
            "assist_rate": 0.0171,
            "assists": 0,
            "expected_goals": 0.0089,
            "goal_rate": 0.0232,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 0,
            "rating": 6.7081,
            "minutes": 10,
            "total_pass": 8,
            "accurate_pass": 7,
            "duels_won": 1,
            "total_long_balls": 1,
            "accurate_long_balls": 1,
            "total_own_half_passes": 3,
            "accurate_own_half_passes": 3,
            "total_opp_half_passes": 5,
            "accurate_opp_half_passes": 4,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 10,
            "possession_lost": 1.914,
            "dispossessed": 0.4095,
            "duels_lost": 1,
            "aerial_won": 0,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 3,
            "total_progression": 12,
            "progressive_carries": 0,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.692,
            "bench_expected_minutes": 10.44,
            "projected_substitution_order": 2,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.588,
            "projected_substitution_game_state_adjustment": 0,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0088,
            "projected_assists": 0,
            "assist_probability": 0.0115,
            "finishing_factor": 1.1619,
            "creation_factor": 1.0213,
            "fifa_overall": 74.0
          },
          "latest_10_games": [
            {
              "match_id": 16421069,
              "match_date": "2026-10-18",
              "home_team": "Celta Vigo",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 8,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0213,
                "expected_assists": 0.0078,
                "total_shots": 1,
                "total_pass": 7,
                "accurate_pass": 7,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421056,
              "match_date": "2026-10-10",
              "home_team": "Deportivo Alavés",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 26,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0006,
                "total_shots": 0,
                "total_pass": 10,
                "accurate_pass": 6,
                "tackles": 1,
                "interceptions": 2,
                "duels_won": 1,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416337,
              "match_date": "2026-09-19",
              "home_team": "Athletic Club",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Deportivo Alavés",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 90,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0015,
                "total_shots": 0,
                "total_pass": 38,
                "accurate_pass": 32,
                "tackles": 4,
                "tackles_won": 2,
                "interceptions": 3,
                "clearances": 2,
                "duels_won": 5,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416334,
              "match_date": "2026-09-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Valencia",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Valencia",
              "stats": {
                "minutes": 11,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0076,
                "total_shots": 0,
                "total_pass": 16,
                "accurate_pass": 14,
                "key_pass": 1,
                "tackles": 1,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421047,
              "match_date": "2026-08-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Getafe",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Getafe",
              "stats": {
                "minutes": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0009,
                "total_shots": 0,
                "total_pass": 4,
                "accurate_pass": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083706,
              "match_date": "2026-05-23",
              "home_team": "Deportivo Alavés",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 12,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.006,
                "total_shots": 0,
                "total_pass": 7,
                "accurate_pass": 7,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083578,
              "match_date": "2026-05-09",
              "home_team": "Elche",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Elche",
              "stats": {
                "minutes": 8,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0005,
                "total_shots": 0,
                "total_pass": 2,
                "accurate_pass": 1
              },
              "has_player_stats": true
            },
            {
              "match_id": 14083364,
              "match_date": "2026-05-02",
              "home_team": "Deportivo Alavés",
              "away_team": "Athletic Club",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 28,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.1079,
                "total_shots": 0,
                "total_pass": 24,
                "accurate_pass": 18,
                "key_pass": 1,
                "ball_recovery": 3
              },
              "has_player_stats": true
            },
            {
              "match_id": 14083295,
              "match_date": "2026-04-21",
              "home_team": "Real Madrid",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 15,
                "rating": 6.8,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.035,
                "expected_assists": 0.0174,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 19,
                "accurate_pass": 19,
                "key_pass": 2,
                "clearances": 1
              },
              "has_player_stats": true
            },
            {
              "match_id": 14083152,
              "match_date": "2026-04-11",
              "home_team": "Real Sociedad",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 24,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0669,
                "total_shots": 0,
                "total_pass": 28,
                "accurate_pass": 25,
                "key_pass": 1,
                "ball_recovery": 2
              },
              "has_player_stats": true
            }
          ],
          "ranking": {
            "global_player_rank": 3847,
            "combined_rank_score": 1841.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 796.0,
            "sofascore_rating": 6.624,
            "sofascore_appearances": 25.0,
            "fifa_rank": 2886.0,
            "fifa_overall": 74.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 14,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.7081,
            "source_file": "data/player_rankings.csv",
            "player_name": "Ander Guevara",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Thierry Correia",
                  "ranking": 3842
                },
                {
                  "player_name": "Anthony Rouault",
                  "ranking": 3843
                },
                {
                  "player_name": "Abner Vinícius",
                  "ranking": 3844
                },
                {
                  "player_name": "Saša Kalajdžić",
                  "ranking": 3845
                },
                {
                  "player_name": "Matthis Abline",
                  "ranking": 3846
                }
              ],
              "lower": [
                {
                  "player_name": "Pablo Pagis",
                  "ranking": 3848
                },
                {
                  "player_name": "Jacob Greaves",
                  "ranking": 3849
                },
                {
                  "player_name": "Martial Godo",
                  "ranking": 3850
                },
                {
                  "player_name": "Tomasz Kędziora",
                  "ranking": 3851
                },
                {
                  "player_name": "Kévin Danois",
                  "ranking": 3852
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.75,
          "history_matches": 30,
          "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",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "rating",
              "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",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 30,
            "data_confidence": 0.75,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 10.44,
            "bench_appearance_prob": 0.692,
            "market_value_adjustment": 0.9971,
            "fbref_prior_metrics": {
              "squad": "Alavés",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 1.0,
              "starts": 0.0,
              "sub_appearances": 1.0,
              "minutes_per_sub": 1.0,
              "prior_reliability": 0.0
            },
            "rationale": "Bench projection scaled from XGBoost M_service (30 historical appearances) to 10.4 expected mins (appearance prob 0.69); FBref playing time empirical prior: 1.0 sub appearances, 1.0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 0.2833,
                "expected_assists": 0.0242,
                "assists": 0.0265,
                "assist_rate": 0.0265,
                "expected_goals": 0.0202,
                "goals": 0.0358,
                "goal_rate": 0.0358,
                "shots_on_target": 0.0755,
                "total_shots": 0.3041,
                "rating": 6.7081,
                "minutes": 16.09,
                "total_pass": 12.1552,
                "accurate_pass": 10.329,
                "duels_won": 0.8766,
                "total_long_balls": 1.1478,
                "accurate_long_balls": 0.8468,
                "total_own_half_passes": 4.496,
                "accurate_own_half_passes": 4.2092,
                "total_opp_half_passes": 7.6592,
                "accurate_opp_half_passes": 6.1198,
                "crosses_total": 0.2719,
                "crosses_accurate": 0.0613,
                "touches": 15.7154,
                "possession_lost": 2.9585,
                "dispossessed": 0.4107,
                "duels_lost": 0.8822,
                "aerial_won": 0.2452,
                "aerial_lost": 0.0787,
                "interceptions": 0.3019,
                "tackles_won": 0.153,
                "tackles": 0.4296,
                "clearances": 0.242,
                "total_contest": 0.157,
                "won_contest": 0.0189,
                "challenges_lost": 0.1154,
                "fouls": 0.1419,
                "fouls_drawn": 0.183,
                "blocks": 0.159,
                "big_chances_created": 0.1063,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 4.6475,
                "total_progression": 19.0356,
                "progressive_carries": 0.3631,
                "shots_off_target": 0.2285
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 7,
                  "trained_at": "2026-10-23T10:05:23.571433+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 903,
                    "rows": 24475
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Celta Vigo",
                    "minutes": 8.0,
                    "is_starting": false,
                    "weight": 0.1512,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-10-10",
                    "opponent": "Atlético Madrid",
                    "minutes": 26.0,
                    "is_starting": false,
                    "weight": 0.1285,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Athletic Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1092,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-09-15",
                    "opponent": "Valencia",
                    "minutes": 11.0,
                    "is_starting": false,
                    "weight": 0.0928,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-08-15",
                    "opponent": "Getafe",
                    "minutes": 1.0,
                    "is_starting": false,
                    "weight": 0.0789,
                    "rating": 0.0
                  },
                  {
                    "match_date": "2026-05-23",
                    "opponent": "Rayo Vallecano",
                    "minutes": 12.0,
                    "is_starting": false,
                    "weight": 0.0671,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-05-09",
                    "opponent": "Elche",
                    "minutes": 8.0,
                    "is_starting": false,
                    "weight": 0.057,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-05-02",
                    "opponent": "Athletic Club",
                    "minutes": 28.0,
                    "is_starting": false,
                    "weight": 0.0485,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-04-21",
                    "opponent": "Real Madrid",
                    "minutes": 15.0,
                    "is_starting": false,
                    "weight": 0.0412,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-04-11",
                    "opponent": "Real Sociedad",
                    "minutes": 24.0,
                    "is_starting": false,
                    "weight": 0.035,
                    "rating": 6.6
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 0.0,
                  "creative_index": 0.1135,
                  "totalShots": 0.2254,
                  "expectedGoals": 0.0058,
                  "expectedAssists": 0.0132,
                  "onTargetScoringAttempt": 0.0022
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.2832811772823334,
                    "model_output": 0.2833,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1647
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1377
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0663
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0524
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0316
                      }
                    ],
                    "decomposition": {
                      "base": 0.8945,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.4512
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0603
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0368
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0229
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0209
                        }
                      ],
                      "others": -0.0191,
                      "total": 0.2833,
                      "log_link": true,
                      "margin_base": -0.111507,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.702065
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.146311
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.101037
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.068422
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": -0.066739
                        }
                      ],
                      "others_margin": -0.065234
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.02424534596502781,
                    "model_output": 0.0242,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1545
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1048
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.1021
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0476
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0472
                      }
                    ],
                    "decomposition": {
                      "base": 0.0859,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0386
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0076
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0062
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0027
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0021
                        }
                      ],
                      "others": -0.0045,
                      "total": 0.0242,
                      "log_link": true,
                      "margin_base": -2.454719,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.596716
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.175326
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.169489
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.082987
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.072096
                        }
                      ],
                      "others_margin": -0.168197
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.026479041203856468,
                    "model_output": 0.0265,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.0619
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0395
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0343
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0335
                      }
                    ],
                    "decomposition": {
                      "base": 0.0874,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0247
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0099
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0076
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0062
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": -0.0029
                        }
                      ],
                      "others": -0.0096,
                      "total": 0.0265,
                      "log_link": true,
                      "margin_base": -2.437263,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.332038
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.171631
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.154302
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.146172
                        },
                        {
                          "name": "ballRecovery_p90",
                          "margin": -0.077468
                        }
                      ],
                      "others_margin": -0.312527
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.02020363137125969,
                    "model_output": 0.0202,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedGoals",
                        "importance": 0.134
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.074
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0705
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.039
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0273
                      }
                    ],
                    "decomposition": {
                      "base": 0.094,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0428
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0163
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0078
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0016
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0009
                        }
                      ],
                      "others": -0.0044,
                      "total": 0.0202,
                      "log_link": true,
                      "margin_base": -2.364919,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.608693
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.383703
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.254478
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.060406
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.037891
                        }
                      ],
                      "others_margin": -0.191803
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.03576302155852318,
                    "model_output": 0.0358,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0974
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0527
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0513
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0365
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.03
                      }
                    ],
                    "decomposition": {
                      "base": 0.0993,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0338
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0144
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0085
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0034
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0018
                        }
                      ],
                      "others": -0.0052,
                      "total": 0.0358,
                      "log_link": true,
                      "margin_base": -2.309444,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.415424
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.248496
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.182562
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.083713
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.044323
                        }
                      ],
                      "others_margin": -0.135522
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.07553756982088089,
                    "model_output": 0.0755,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1106
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0885
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0762
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0292
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0279
                      }
                    ],
                    "decomposition": {
                      "base": 0.326,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.143
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0565
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0273
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0093
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0031
                        }
                      ],
                      "others": -0.0113,
                      "total": 0.0755,
                      "log_link": true,
                      "margin_base": -1.120773,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.577206
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.369055
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.243335
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": -0.098238
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.035439
                        }
                      ],
                      "others_margin": -0.139077
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.30406704545021057,
                    "model_output": 0.3041,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1261
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1167
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0633
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0419
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.9969,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.3237
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.2315
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0365
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0257
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0248
                        }
                      ],
                      "others": -0.0506,
                      "total": 0.3041,
                      "log_link": false,
                      "margin_base": 0.996896,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.323687
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.231452
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.03649
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.02569
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.024795
                        }
                      ],
                      "others_margin": -0.050715
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.708081245422363,
                    "model_output": 6.7081,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "rating",
                        "importance": 0.0947
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0836
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0491
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0438
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.036
                      }
                    ],
                    "decomposition": {
                      "base": 6.8561,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0984
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0501
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0263
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0239
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0164
                        }
                      ],
                      "others": -0.0135,
                      "total": 6.7081,
                      "log_link": false,
                      "margin_base": 6.856052,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.098364
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.050054
                        },
                        {
                          "name": "rating",
                          "margin": -0.026342
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.02393
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.016422
                        }
                      ],
                      "others_margin": -0.013562
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "substitute",
                  "history_matches": 30,
                  "role_matches": 27,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "role_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9971, quality 0.437)",
              "stats": {
                "key_pass": 0.2825,
                "expected_assists": 0.0242,
                "assists": 0.0264,
                "assist_rate": 0.0264,
                "expected_goals": 0.0201,
                "goals": 0.0357,
                "goal_rate": 0.0357,
                "shots_on_target": 0.0753,
                "total_shots": 0.3032,
                "rating": 6.7081,
                "minutes": 16.09,
                "total_pass": 12.1199,
                "accurate_pass": 10.299,
                "duels_won": 0.8741,
                "total_long_balls": 1.1445,
                "accurate_long_balls": 0.8443,
                "total_own_half_passes": 4.483,
                "accurate_own_half_passes": 4.197,
                "total_opp_half_passes": 7.637,
                "accurate_opp_half_passes": 6.1021,
                "crosses_total": 0.2711,
                "crosses_accurate": 0.0611,
                "touches": 15.6698,
                "possession_lost": 2.9499,
                "dispossessed": 0.4095,
                "duels_lost": 0.8796,
                "aerial_won": 0.2445,
                "aerial_lost": 0.0785,
                "interceptions": 0.301,
                "tackles_won": 0.1526,
                "tackles": 0.4284,
                "clearances": 0.2413,
                "total_contest": 0.1565,
                "won_contest": 0.0188,
                "challenges_lost": 0.1151,
                "fouls": 0.1415,
                "fouls_drawn": 0.1825,
                "blocks": 0.1585,
                "big_chances_created": 0.106,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 4.634,
                "total_progression": 18.9804,
                "progressive_carries": 0.362,
                "shots_off_target": 0.2278
              },
              "params": {
                "market_value_eur": 2700000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9971,
                "reference_quality": 0.505,
                "history_matches": 30,
                "history_shrink": 0.1429,
                "market_value_known": true
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 16.1 to 10.4 expected minutes (appearance prob 0.69)",
              "stats": {
                "key_pass": 0.1833,
                "expected_assists": 0.0157,
                "assists": 0.0171,
                "assist_rate": 0.0171,
                "expected_goals": 0.013,
                "goals": 0.0232,
                "goal_rate": 0.0232,
                "shots_on_target": 0.0489,
                "total_shots": 0.1967,
                "rating": 6.7081,
                "minutes": 10.44,
                "total_pass": 7.864,
                "accurate_pass": 6.6825,
                "duels_won": 0.5672,
                "total_long_balls": 0.7426,
                "accurate_long_balls": 0.5478,
                "total_own_half_passes": 2.9088,
                "accurate_own_half_passes": 2.7232,
                "total_opp_half_passes": 4.9553,
                "accurate_opp_half_passes": 3.9593,
                "crosses_total": 0.1759,
                "crosses_accurate": 0.0396,
                "touches": 10.1674,
                "possession_lost": 1.914,
                "dispossessed": 0.4095,
                "duels_lost": 0.5707,
                "aerial_won": 0.1586,
                "aerial_lost": 0.0785,
                "interceptions": 0.1953,
                "tackles_won": 0.099,
                "tackles": 0.278,
                "clearances": 0.1566,
                "total_contest": 0.1015,
                "won_contest": 0.0122,
                "challenges_lost": 0.1151,
                "fouls": 0.0918,
                "fouls_drawn": 0.1184,
                "blocks": 0.1028,
                "big_chances_created": 0.0688,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 3.0068,
                "total_progression": 12.3154,
                "progressive_carries": 0.2349,
                "shots_off_target": 0.1478,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 10.44
              },
              "params": {
                "expected_minutes": 10.44,
                "projection_minutes": 16.09,
                "minutes_scale": 0.6489,
                "appearance_probability": 0.692
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0.1833,
                "expected_assists": 0.0157,
                "assists": 0.0171,
                "assist_rate": 0.0171,
                "expected_goals": 0.013,
                "goals": 0.0232,
                "goal_rate": 0.0232,
                "shots_on_target": 0.0489,
                "total_shots": 0.1967,
                "rating": 6.7081,
                "minutes": 10.44,
                "total_pass": 7.864,
                "accurate_pass": 6.6825,
                "duels_won": 0.5672,
                "total_long_balls": 0.7426,
                "accurate_long_balls": 0.5478,
                "total_own_half_passes": 2.9088,
                "accurate_own_half_passes": 2.7232,
                "total_opp_half_passes": 4.9553,
                "accurate_opp_half_passes": 3.9593,
                "crosses_total": 0.1759,
                "crosses_accurate": 0.0396,
                "touches": 10.1674,
                "possession_lost": 1.914,
                "dispossessed": 0.4095,
                "duels_lost": 0.5707,
                "aerial_won": 0.1586,
                "aerial_lost": 0.0785,
                "interceptions": 0.1953,
                "tackles_won": 0.099,
                "tackles": 0.278,
                "clearances": 0.1566,
                "total_contest": 0.1015,
                "won_contest": 0.0122,
                "challenges_lost": 0.1151,
                "fouls": 0.0918,
                "fouls_drawn": 0.1184,
                "blocks": 0.1028,
                "big_chances_created": 0.0688,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 3.0068,
                "total_progression": 12.3154,
                "progressive_carries": 0.2349,
                "shots_off_target": 0.1478,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 10.44
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "key_pass": 0.1833,
                "expected_assists": 0.0157,
                "assist_rate": 0.0171,
                "assists": 0,
                "expected_goals": 0.013,
                "goal_rate": 0.0232,
                "goals": 0,
                "shots_on_target": 0.0489,
                "total_shots": 0.1967,
                "rating": 6.7081,
                "minutes": 10.44,
                "total_pass": 7.864,
                "accurate_pass": 6.6825,
                "duels_won": 0.5672,
                "total_long_balls": 0.7426,
                "accurate_long_balls": 0.5478,
                "total_own_half_passes": 2.9088,
                "accurate_own_half_passes": 2.7232,
                "total_opp_half_passes": 4.9553,
                "accurate_opp_half_passes": 3.9593,
                "crosses_total": 0.1759,
                "crosses_accurate": 0.0396,
                "touches": 10.1674,
                "possession_lost": 1.914,
                "dispossessed": 0.4095,
                "duels_lost": 0.5707,
                "aerial_won": 0.1586,
                "aerial_lost": 0.0785,
                "interceptions": 0.1953,
                "tackles_won": 0.099,
                "tackles": 0.278,
                "clearances": 0.1566,
                "total_contest": 0.1015,
                "won_contest": 0.0122,
                "challenges_lost": 0.1151,
                "fouls": 0.0918,
                "fouls_drawn": 0.1184,
                "blocks": 0.1028,
                "big_chances_created": 0.0688,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 3.0068,
                "total_progression": 12.3154,
                "progressive_carries": 0.2349,
                "shots_off_target": 0.1478,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 10.44,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "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": {
                "scoreline_reset": true,
                "team_goals": 1
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.26 (squad xG sum 1.2639, xG scale 0.9946, xA scale 1.0687, team xA 0.82 = 0.65 x lambda)",
              "stats": {
                "key_pass": 0.1833,
                "expected_assists": 0.0116,
                "assist_rate": 0.0171,
                "assists": 0,
                "expected_goals": 0.0089,
                "goal_rate": 0.0232,
                "goals": 0,
                "shots_on_target": 0.0489,
                "total_shots": 0.1967,
                "rating": 6.7081,
                "minutes": 10.44,
                "total_pass": 7.864,
                "accurate_pass": 6.6825,
                "duels_won": 0.5672,
                "total_long_balls": 0.7426,
                "accurate_long_balls": 0.5478,
                "total_own_half_passes": 2.9088,
                "accurate_own_half_passes": 2.7232,
                "total_opp_half_passes": 4.9553,
                "accurate_opp_half_passes": 3.9593,
                "crosses_total": 0.1759,
                "crosses_accurate": 0.0396,
                "touches": 10.1674,
                "possession_lost": 1.914,
                "dispossessed": 0.4095,
                "duels_lost": 0.5707,
                "aerial_won": 0.1586,
                "aerial_lost": 0.0785,
                "interceptions": 0.1953,
                "tackles_won": 0.099,
                "tackles": 0.278,
                "clearances": 0.1566,
                "total_contest": 0.1015,
                "won_contest": 0.0122,
                "challenges_lost": 0.1151,
                "fouls": 0.0918,
                "fouls_drawn": 0.1184,
                "blocks": 0.1028,
                "big_chances_created": 0.0688,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 3.0068,
                "total_progression": 12.3154,
                "progressive_carries": 0.2349,
                "shots_off_target": 0.1478,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 10.44,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "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,
                "finishing_factor": 1.1619,
                "creation_factor": 1.0213
              },
              "params": {
                "team_lambda": 1.257,
                "squad_xg_sum": 1.2639,
                "squad_xa_sum": 0.7645,
                "team_expected_assists": 0.817,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.9946,
                "xa_scale": 1.0687,
                "opponent_lambda": 0.869,
                "scoreline_reset": true,
                "appearance_weight": 0.692
              }
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 74.0)",
              "stats": {
                "key_pass": 0.1833,
                "expected_assists": 0.0116,
                "assist_rate": 0.0171,
                "assists": 0,
                "expected_goals": 0.0089,
                "goal_rate": 0.0232,
                "goals": 0,
                "shots_on_target": 0.0489,
                "total_shots": 0.1967,
                "rating": 6.7081,
                "minutes": 10.44,
                "total_pass": 7.864,
                "accurate_pass": 6.6825,
                "duels_won": 0.5672,
                "total_long_balls": 0.7426,
                "accurate_long_balls": 0.5478,
                "total_own_half_passes": 2.9088,
                "accurate_own_half_passes": 2.7232,
                "total_opp_half_passes": 4.9553,
                "accurate_opp_half_passes": 3.9593,
                "crosses_total": 0.1759,
                "crosses_accurate": 0.0396,
                "touches": 10.1674,
                "possession_lost": 1.914,
                "dispossessed": 0.4095,
                "duels_lost": 0.5707,
                "aerial_won": 0.1586,
                "aerial_lost": 0.0785,
                "interceptions": 0.1953,
                "tackles_won": 0.099,
                "tackles": 0.278,
                "clearances": 0.1566,
                "total_contest": 0.1015,
                "won_contest": 0.0122,
                "challenges_lost": 0.1151,
                "fouls": 0.0918,
                "fouls_drawn": 0.1184,
                "blocks": 0.1028,
                "big_chances_created": 0.0688,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 3.0068,
                "total_progression": 12.3154,
                "progressive_carries": 0.2349,
                "shots_off_target": 0.1478,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 10.44,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "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,
                "finishing_factor": 1.1619,
                "creation_factor": 1.0213,
                "fifa_overall": 74.0
              },
              "params": {
                "match_squad_rank": 14,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3847,
                "fifa_rank": 2886.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 74.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "key_pass": 0.1833,
                "expected_assists": 0.0116,
                "assist_rate": 0.0171,
                "assists": 0,
                "expected_goals": 0.0089,
                "goal_rate": 0.0232,
                "goals": 0,
                "shots_on_target": 0.0489,
                "total_shots": 0.1967,
                "rating": 6.7081,
                "minutes": 10.44,
                "total_pass": 7.864,
                "accurate_pass": 6.6825,
                "duels_won": 0.5672,
                "total_long_balls": 0.7426,
                "accurate_long_balls": 0.5478,
                "total_own_half_passes": 2.9088,
                "accurate_own_half_passes": 2.7232,
                "total_opp_half_passes": 4.9553,
                "accurate_opp_half_passes": 3.9593,
                "crosses_total": 0.1759,
                "crosses_accurate": 0.0396,
                "touches": 10.1674,
                "possession_lost": 1.914,
                "dispossessed": 0.4095,
                "duels_lost": 0.5707,
                "aerial_won": 0.1586,
                "aerial_lost": 0.0785,
                "interceptions": 0.1953,
                "tackles_won": 0.099,
                "tackles": 0.278,
                "clearances": 0.1566,
                "total_contest": 0.1015,
                "won_contest": 0.0122,
                "challenges_lost": 0.1151,
                "fouls": 0.0918,
                "fouls_drawn": 0.1184,
                "blocks": 0.1028,
                "big_chances_created": 0.0688,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 3.0068,
                "total_progression": 12.3154,
                "progressive_carries": 0.2349,
                "shots_off_target": 0.1478,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 10.44,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0088,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.1619,
                "creation_factor": 1.0213,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0088,
                "goal_rate": 0.0232,
                "scorer_weight": 0.0103,
                "squad_weight_total": 1.3303,
                "weight_share": 0.0078,
                "finishing_factor": 1.1619,
                "appearance_weight": 0.692,
                "weight_rank": 13,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lucas Boyé",
                    "weight": 0.3448,
                    "already": 0,
                    "effective_weight": 0.3448,
                    "runner_up": "Mariano Díaz",
                    "runner_up_effective_weight": 0.2151
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "key_pass": 0.1833,
                "expected_assists": 0.0116,
                "assist_rate": 0.0171,
                "assists": 0,
                "expected_goals": 0.0089,
                "goal_rate": 0.0232,
                "goals": 0,
                "shots_on_target": 0.0489,
                "total_shots": 0.1967,
                "rating": 6.7081,
                "minutes": 10.44,
                "total_pass": 7.864,
                "accurate_pass": 6.6825,
                "duels_won": 0.5672,
                "total_long_balls": 0.7426,
                "accurate_long_balls": 0.5478,
                "total_own_half_passes": 2.9088,
                "accurate_own_half_passes": 2.7232,
                "total_opp_half_passes": 4.9553,
                "accurate_opp_half_passes": 3.9593,
                "crosses_total": 0.1759,
                "crosses_accurate": 0.0396,
                "touches": 10.1674,
                "possession_lost": 1.914,
                "dispossessed": 0.4095,
                "duels_lost": 0.5707,
                "aerial_won": 0.1586,
                "aerial_lost": 0.0785,
                "interceptions": 0.1953,
                "tackles_won": 0.099,
                "tackles": 0.278,
                "clearances": 0.1566,
                "total_contest": 0.1015,
                "won_contest": 0.0122,
                "challenges_lost": 0.1151,
                "fouls": 0.0918,
                "fouls_drawn": 0.1184,
                "blocks": 0.1028,
                "big_chances_created": 0.0688,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 3.0068,
                "total_progression": 12.3154,
                "progressive_carries": 0.2349,
                "shots_off_target": 0.1478,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 10.44,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0088,
                "projected_assists": 0,
                "assist_probability": 0.0115,
                "finishing_factor": 1.1619,
                "creation_factor": 1.0213,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0115,
                "assist_rate": 0.0171,
                "provider_weight": 0.0118,
                "squad_weight_total": 0.7993,
                "weight_share": 0.0148,
                "creation_factor": 1.0213,
                "appearance_weight": 0.692,
                "weight_rank": 12,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Ángel Pérez",
                    "weight": 0.1707,
                    "already": 0,
                    "effective_weight": 0.1707,
                    "runner_up": "Denis Suárez",
                    "runner_up_effective_weight": 0.1469,
                    "blocked_own_goal": [
                      "Lucas Boyé"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Miguel Rodríguez": {
          "player_id": 1014118,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 22,
          "height": 179,
          "market_value": 4600000,
          "stats": {
            "expected_goals": 0.0487,
            "goal_rate": 0.1064,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "expected_assists": 0.0211,
            "key_pass": 1,
            "rating": 6.6606,
            "minutes": 25,
            "total_pass": 3,
            "accurate_pass": 2,
            "duels_won": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 3,
            "accurate_opp_half_passes": 2,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 8,
            "possession_lost": 3.1464,
            "dispossessed": 0.7705,
            "duels_lost": 2,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 2,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 1,
            "assist_rate": 0.0,
            "assists": 0,
            "interceptions": 0,
            "tackles_won": 1,
            "tackles": 1,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "offsides": 0,
            "ball_carries": 3,
            "total_progression": 23,
            "progressive_carries": 1,
            "shots_off_target": 1,
            "bench_appearance_probability": 0.562,
            "bench_expected_minutes": 25.37,
            "projected_substitution_order": 3,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.588,
            "projected_substitution_game_state_adjustment": 0,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0466,
            "projected_assists": 0,
            "assist_probability": 0.0207,
            "finishing_factor": 1.1399,
            "creation_factor": 0.8,
            "fifa_overall": 72.0
          },
          "latest_10_games": [
            {
              "match_id": 16416334,
              "match_date": "2026-09-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Valencia",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Valencia",
              "stats": {
                "minutes": 11,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0172,
                "total_shots": 0,
                "total_pass": 4,
                "accurate_pass": 3,
                "key_pass": 2,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 2,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416328,
              "match_date": "2026-09-12",
              "home_team": "Real Racing Club",
              "away_team": "Deportivo Alavés",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0091,
                "total_shots": 0,
                "total_pass": 1,
                "accurate_pass": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416318,
              "match_date": "2026-09-06",
              "home_team": "Deportivo Alavés",
              "away_team": "Osasuna",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Deportivo Alavés",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 12,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 1,
                "clearances": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 4196,
            "combined_rank_score": 2227.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 4258.0,
            "fifa_overall": 72.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 17,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.6606,
            "source_file": "data/player_rankings.csv",
            "player_name": "Miguel Rodríguez",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "José Sosa",
                  "ranking": 4191
                },
                {
                  "player_name": "Jason Knight",
                  "ranking": 4192
                },
                {
                  "player_name": "Pablo Marín",
                  "ranking": 4193
                },
                {
                  "player_name": "Yvan Neyou",
                  "ranking": 4194
                },
                {
                  "player_name": "Sidiki Cherif",
                  "ranking": 4195
                }
              ],
              "lower": [
                {
                  "player_name": "Federico Navarro",
                  "ranking": 4197
                },
                {
                  "player_name": "Yukinari Sugawara",
                  "ranking": 4198
                },
                {
                  "player_name": "Patrick Pentz",
                  "ranking": 4199
                },
                {
                  "player_name": "Álex Sancris",
                  "ranking": 4200
                },
                {
                  "player_name": "Bartosz Slisz",
                  "ranking": 4201
                }
              ]
            }
          },
          "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",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "expectedGoals",
              "goals",
              "rating",
              "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",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.438,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 25.37070150421028,
            "bench_appearance_prob": 0.56230461382774,
            "market_value_adjustment": 0.991,
            "fbref_prior_metrics": {
              "squad": "Alavés",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 0.0,
              "starts": 0.0,
              "sub_appearances": 0.0,
              "prior_reliability": 0.0
            },
            "rationale": "Bench projection scaled from XGBoost F_service (3 historical appearances) to 25.4 expected mins (appearance prob 0.56); FBref playing time empirical prior: 0.0 sub appearances, 0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.0587,
                "goals": 0.0716,
                "goal_rate": 0.0716,
                "shots_on_target": 0.2121,
                "total_shots": 0.5582,
                "expected_assists": 0.0236,
                "key_pass": 0.3588,
                "rating": 6.6606,
                "minutes": 12.79,
                "total_pass": 2.1662,
                "accurate_pass": 1.4966,
                "duels_won": 0.7775,
                "total_long_balls": 0.3304,
                "accurate_long_balls": 0.3304,
                "total_opp_half_passes": 2.1662,
                "accurate_opp_half_passes": 1.4966,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 5.449,
                "possession_lost": 2.1166,
                "dispossessed": 0.7775,
                "duels_lost": 1.0583,
                "aerial_lost": 0.2809,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 1.1662,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.3887,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0,
                "tackles_won": 0.3887,
                "tackles": 0.3887,
                "clearances": 0.2809,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "offsides": 0.0,
                "ball_carries": 1.8853,
                "total_progression": 15.6129,
                "progressive_carries": 0.3887,
                "shots_off_target": 0.3461
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 6,
                  "trained_at": "2026-10-23T10:05:54.625928+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 611,
                    "rows": 16533
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-15",
                    "opponent": "Valencia",
                    "minutes": 11.0,
                    "is_starting": false,
                    "weight": 0.3887,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Real Racing Club",
                    "minutes": 1.0,
                    "is_starting": false,
                    "weight": 0.3304,
                    "rating": 0.0
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Osasuna",
                    "minutes": 12.0,
                    "is_starting": false,
                    "weight": 0.2809,
                    "rating": 6.4
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 0.0,
                  "expectedGoals": 0.0,
                  "totalOppositionHalfPasses": 2.1662,
                  "accurateOppositionHalfPasses": 1.4966,
                  "accuratePass": 1.4966,
                  "totalShots": 0.0
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.058651573956012726,
                    "model_output": 0.0587,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2858
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0881
                      },
                      {
                        "name": "goals",
                        "importance": 0.0357
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0272
                      },
                      {
                        "name": "bigChanceMissed",
                        "importance": 0.0231
                      }
                    ],
                    "decomposition": {
                      "base": 0.1979,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0935
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.017
                        },
                        {
                          "name": "goals",
                          "contribution": -0.007
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0049
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0042
                        }
                      ],
                      "others": -0.0126,
                      "total": 0.0587,
                      "log_link": true,
                      "margin_base": -1.619934,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.639413
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.177195
                        },
                        {
                          "name": "goals",
                          "margin": -0.083594
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.062888
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.057881
                        }
                      ],
                      "others_margin": -0.195236
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.0715729370713234,
                    "model_output": 0.0716,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1497
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0696
                      },
                      {
                        "name": "goals",
                        "importance": 0.0577
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0307
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0286
                      }
                    ],
                    "decomposition": {
                      "base": 0.2023,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0731
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0184
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": -0.009
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0079
                        },
                        {
                          "name": "goals",
                          "contribution": -0.0068
                        }
                      ],
                      "others": -0.0155,
                      "total": 0.0716,
                      "log_link": true,
                      "margin_base": -1.597983,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.448605
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.153953
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": -0.084583
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.081144
                        },
                        {
                          "name": "goals",
                          "margin": -0.075476
                        }
                      ],
                      "others_margin": -0.195296
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.21205155551433563,
                    "model_output": 0.2121,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2171
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0661
                      },
                      {
                        "name": "goals",
                        "importance": 0.0553
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0475
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0308
                      }
                    ],
                    "decomposition": {
                      "base": 0.5362,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2245
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.027
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0143
                        },
                        {
                          "name": "goals",
                          "contribution": -0.0117
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0107
                        }
                      ],
                      "others": -0.0573,
                      "total": 0.2121,
                      "log_link": true,
                      "margin_base": -0.623262,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.542409
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.090716
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.051657
                        },
                        {
                          "name": "goals",
                          "margin": -0.044092
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.040712
                        }
                      ],
                      "others_margin": -0.2395
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.5581737160682678,
                    "model_output": 0.5582,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2864
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0656
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.051
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.031
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0298
                      }
                    ],
                    "decomposition": {
                      "base": 1.3807,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.5097
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.1317
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0503
                        },
                        {
                          "name": "goals",
                          "contribution": -0.0491
                        },
                        {
                          "name": "duelWon",
                          "contribution": -0.0491
                        }
                      ],
                      "others": -0.1332,
                      "total": 0.5582,
                      "log_link": false,
                      "margin_base": 1.380749,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.509732
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.131655
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.05028
                        },
                        {
                          "name": "goals",
                          "margin": -0.049121
                        },
                        {
                          "name": "duelWon",
                          "margin": -0.049101
                        }
                      ],
                      "others_margin": -0.133245
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.02360641397535801,
                    "model_output": 0.0236,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.1157
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0645
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0607
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0558
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 0.0644,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0216
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.0113
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0064
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0029
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0015
                        }
                      ],
                      "others": 0.0029,
                      "total": 0.0236,
                      "log_link": true,
                      "margin_base": -2.741965,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.409229
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.306113
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.227718
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.123863
                        },
                        {
                          "name": "accuratePass",
                          "margin": -0.068015
                        }
                      ],
                      "others_margin": 0.130665
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.35877642035484314,
                    "model_output": 0.3588,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1481
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1244
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.1112
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.052
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0395
                      }
                    ],
                    "decomposition": {
                      "base": 0.6805,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.261
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0512
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0344
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.0317
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0258
                        }
                      ],
                      "others": -0.0716,
                      "total": 0.3588,
                      "log_link": true,
                      "margin_base": -0.384987,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.483695
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.115214
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.07583
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.075313
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.061695
                        }
                      ],
                      "others_margin": -0.182139
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.660581111907959,
                    "model_output": 6.6606,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.059
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0483
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0421
                      },
                      {
                        "name": "rating",
                        "importance": 0.0418
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0415
                      }
                    ],
                    "decomposition": {
                      "base": 6.7683,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0625
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0362
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.01
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0099
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0098
                        }
                      ],
                      "others": -0.0517,
                      "total": 6.6606,
                      "log_link": false,
                      "margin_base": 6.768281,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.062512
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.036189
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.010005
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.009914
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.009795
                        }
                      ],
                      "others_margin": -0.051663
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "substitute",
                  "history_matches": 3,
                  "role_matches": 3,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "role_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9910, quality 0.457)",
              "stats": {
                "expected_goals": 0.0581,
                "goals": 0.0709,
                "goal_rate": 0.0709,
                "shots_on_target": 0.2101,
                "total_shots": 0.5532,
                "expected_assists": 0.0234,
                "key_pass": 0.3555,
                "rating": 6.6606,
                "minutes": 12.79,
                "total_pass": 2.1467,
                "accurate_pass": 1.4831,
                "duels_won": 0.7705,
                "total_long_balls": 0.3274,
                "accurate_long_balls": 0.3274,
                "total_opp_half_passes": 2.1467,
                "accurate_opp_half_passes": 1.4831,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 5.4,
                "possession_lost": 2.0976,
                "dispossessed": 0.7705,
                "duels_lost": 1.0488,
                "aerial_lost": 0.2784,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 1.1557,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.3852,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0,
                "tackles_won": 0.3852,
                "tackles": 0.3852,
                "clearances": 0.2784,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "offsides": 0.0,
                "ball_carries": 1.8683,
                "total_progression": 15.4724,
                "progressive_carries": 0.3852,
                "shots_off_target": 0.343
              },
              "params": {
                "market_value_eur": 4600000,
                "quality_factor": 0.4572,
                "boost_factor": 0.991,
                "reference_quality": 0.505,
                "history_matches": 3,
                "history_shrink": 0.625,
                "market_value_known": true
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 12.8 to 25.4 expected minutes (appearance prob 0.56)",
              "stats": {
                "expected_goals": 0.0872,
                "goals": 0.1064,
                "goal_rate": 0.1064,
                "shots_on_target": 0.3152,
                "total_shots": 0.8298,
                "expected_assists": 0.0351,
                "key_pass": 0.5333,
                "rating": 6.6606,
                "minutes": 25.37,
                "total_pass": 3.2201,
                "accurate_pass": 2.2247,
                "duels_won": 1.1557,
                "total_long_balls": 0.4911,
                "accurate_long_balls": 0.4911,
                "total_opp_half_passes": 3.2201,
                "accurate_opp_half_passes": 2.2247,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 8.1,
                "possession_lost": 3.1464,
                "dispossessed": 0.7705,
                "duels_lost": 1.5732,
                "aerial_lost": 0.2784,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 1.7335,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.5778,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0,
                "tackles_won": 0.5778,
                "tackles": 0.5778,
                "clearances": 0.4176,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "offsides": 0.0,
                "ball_carries": 2.8025,
                "total_progression": 23.2086,
                "progressive_carries": 0.5778,
                "shots_off_target": 0.5145,
                "bench_appearance_probability": 0.562,
                "bench_expected_minutes": 25.37
              },
              "params": {
                "expected_minutes": 25.37,
                "projection_minutes": 12.79,
                "minutes_scale": 1.5,
                "appearance_probability": 0.562
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0872,
                "goals": 0.1064,
                "goal_rate": 0.1064,
                "shots_on_target": 0.3152,
                "total_shots": 0.8298,
                "expected_assists": 0.0351,
                "key_pass": 0.5333,
                "rating": 6.6606,
                "minutes": 25.37,
                "total_pass": 3.2201,
                "accurate_pass": 2.2247,
                "duels_won": 1.1557,
                "total_long_balls": 0.4911,
                "accurate_long_balls": 0.4911,
                "total_opp_half_passes": 3.2201,
                "accurate_opp_half_passes": 2.2247,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 8.1,
                "possession_lost": 3.1464,
                "dispossessed": 0.7705,
                "duels_lost": 1.5732,
                "aerial_lost": 0.2784,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 1.7335,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.5778,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0,
                "tackles_won": 0.5778,
                "tackles": 0.5778,
                "clearances": 0.4176,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "offsides": 0.0,
                "ball_carries": 2.8025,
                "total_progression": 23.2086,
                "progressive_carries": 0.5778,
                "shots_off_target": 0.5145,
                "bench_appearance_probability": 0.562,
                "bench_expected_minutes": 25.37
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "expected_goals": 0.0872,
                "goal_rate": 0.1064,
                "goals": 0,
                "shots_on_target": 0.3152,
                "total_shots": 0.8298,
                "expected_assists": 0.0351,
                "key_pass": 0.5333,
                "rating": 6.6606,
                "minutes": 25.37,
                "total_pass": 3.2201,
                "accurate_pass": 2.2247,
                "duels_won": 1.1557,
                "total_long_balls": 0.4911,
                "accurate_long_balls": 0.4911,
                "total_opp_half_passes": 3.2201,
                "accurate_opp_half_passes": 2.2247,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 8.1,
                "possession_lost": 3.1464,
                "dispossessed": 0.7705,
                "duels_lost": 1.5732,
                "aerial_lost": 0.2784,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 1.7335,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.5778,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.5778,
                "tackles": 0.5778,
                "clearances": 0.4176,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "offsides": 0.0,
                "ball_carries": 2.8025,
                "total_progression": 23.2086,
                "progressive_carries": 0.5778,
                "shots_off_target": 0.5145,
                "bench_appearance_probability": 0.562,
                "bench_expected_minutes": 25.37,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "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": {
                "scoreline_reset": true,
                "team_goals": 1
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.26 (squad xG sum 1.2639, xG scale 0.9946, xA scale 1.0687, team xA 0.82 = 0.65 x lambda)",
              "stats": {
                "expected_goals": 0.0487,
                "goal_rate": 0.1064,
                "goals": 0,
                "shots_on_target": 0.3152,
                "total_shots": 0.8298,
                "expected_assists": 0.0211,
                "key_pass": 0.5333,
                "rating": 6.6606,
                "minutes": 25.37,
                "total_pass": 3.2201,
                "accurate_pass": 2.2247,
                "duels_won": 1.1557,
                "total_long_balls": 0.4911,
                "accurate_long_balls": 0.4911,
                "total_opp_half_passes": 3.2201,
                "accurate_opp_half_passes": 2.2247,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 8.1,
                "possession_lost": 3.1464,
                "dispossessed": 0.7705,
                "duels_lost": 1.5732,
                "aerial_lost": 0.2784,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 1.7335,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.5778,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.5778,
                "tackles": 0.5778,
                "clearances": 0.4176,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "offsides": 0.0,
                "ball_carries": 2.8025,
                "total_progression": 23.2086,
                "progressive_carries": 0.5778,
                "shots_off_target": 0.5145,
                "bench_appearance_probability": 0.562,
                "bench_expected_minutes": 25.37,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "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,
                "finishing_factor": 1.1399,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 1.257,
                "squad_xg_sum": 1.2639,
                "squad_xa_sum": 0.7645,
                "team_expected_assists": 0.817,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.9946,
                "xa_scale": 1.0687,
                "opponent_lambda": 0.869,
                "scoreline_reset": true,
                "appearance_weight": 0.562
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0872,
                  "after": 0.0487
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0351,
                  "after": 0.0211
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 72.0)",
              "stats": {
                "expected_goals": 0.0487,
                "goal_rate": 0.1064,
                "goals": 0,
                "shots_on_target": 0.3152,
                "total_shots": 0.8298,
                "expected_assists": 0.0211,
                "key_pass": 0.5333,
                "rating": 6.6606,
                "minutes": 25.37,
                "total_pass": 3.2201,
                "accurate_pass": 2.2247,
                "duels_won": 1.1557,
                "total_long_balls": 0.4911,
                "accurate_long_balls": 0.4911,
                "total_opp_half_passes": 3.2201,
                "accurate_opp_half_passes": 2.2247,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 8.1,
                "possession_lost": 3.1464,
                "dispossessed": 0.7705,
                "duels_lost": 1.5732,
                "aerial_lost": 0.2784,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 1.7335,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.5778,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.5778,
                "tackles": 0.5778,
                "clearances": 0.4176,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "offsides": 0.0,
                "ball_carries": 2.8025,
                "total_progression": 23.2086,
                "progressive_carries": 0.5778,
                "shots_off_target": 0.5145,
                "bench_appearance_probability": 0.562,
                "bench_expected_minutes": 25.37,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "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,
                "finishing_factor": 1.1399,
                "creation_factor": 0.8,
                "fifa_overall": 72.0
              },
              "params": {
                "match_squad_rank": 17,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 4196,
                "fifa_rank": 4258.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 72.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "expected_goals": 0.0487,
                "goal_rate": 0.1064,
                "goals": 0,
                "shots_on_target": 0.3152,
                "total_shots": 0.8298,
                "expected_assists": 0.0211,
                "key_pass": 0.5333,
                "rating": 6.6606,
                "minutes": 25.37,
                "total_pass": 3.2201,
                "accurate_pass": 2.2247,
                "duels_won": 1.1557,
                "total_long_balls": 0.4911,
                "accurate_long_balls": 0.4911,
                "total_opp_half_passes": 3.2201,
                "accurate_opp_half_passes": 2.2247,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 8.1,
                "possession_lost": 3.1464,
                "dispossessed": 0.7705,
                "duels_lost": 1.5732,
                "aerial_lost": 0.2784,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 1.7335,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.5778,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.5778,
                "tackles": 0.5778,
                "clearances": 0.4176,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "offsides": 0.0,
                "ball_carries": 2.8025,
                "total_progression": 23.2086,
                "progressive_carries": 0.5778,
                "shots_off_target": 0.5145,
                "bench_appearance_probability": 0.562,
                "bench_expected_minutes": 25.37,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0466,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.1399,
                "creation_factor": 0.8,
                "fifa_overall": 72.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0466,
                "goal_rate": 0.1064,
                "scorer_weight": 0.0555,
                "squad_weight_total": 1.3303,
                "weight_share": 0.0417,
                "finishing_factor": 1.1399,
                "appearance_weight": 0.562,
                "weight_rank": 8,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lucas Boyé",
                    "weight": 0.3448,
                    "already": 0,
                    "effective_weight": 0.3448,
                    "runner_up": "Mariano Díaz",
                    "runner_up_effective_weight": 0.2151
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "expected_goals": 0.0487,
                "goal_rate": 0.1064,
                "goals": 0,
                "shots_on_target": 0.3152,
                "total_shots": 0.8298,
                "expected_assists": 0.0211,
                "key_pass": 0.5333,
                "rating": 6.6606,
                "minutes": 25.37,
                "total_pass": 3.2201,
                "accurate_pass": 2.2247,
                "duels_won": 1.1557,
                "total_long_balls": 0.4911,
                "accurate_long_balls": 0.4911,
                "total_opp_half_passes": 3.2201,
                "accurate_opp_half_passes": 2.2247,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 8.1,
                "possession_lost": 3.1464,
                "dispossessed": 0.7705,
                "duels_lost": 1.5732,
                "aerial_lost": 0.2784,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 1.7335,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.5778,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.5778,
                "tackles": 0.5778,
                "clearances": 0.4176,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "offsides": 0.0,
                "ball_carries": 2.8025,
                "total_progression": 23.2086,
                "progressive_carries": 0.5778,
                "shots_off_target": 0.5145,
                "bench_appearance_probability": 0.562,
                "bench_expected_minutes": 25.37,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.588,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0466,
                "projected_assists": 0,
                "assist_probability": 0.0207,
                "finishing_factor": 1.1399,
                "creation_factor": 0.8,
                "fifa_overall": 72.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0207,
                "assist_rate": 0.0,
                "provider_weight": 0.0169,
                "squad_weight_total": 0.7993,
                "weight_share": 0.0211,
                "creation_factor": 0.8,
                "appearance_weight": 0.562,
                "weight_rank": 11,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Ángel Pérez",
                    "weight": 0.1707,
                    "already": 0,
                    "effective_weight": 0.1707,
                    "runner_up": "Denis Suárez",
                    "runner_up_effective_weight": 0.1469,
                    "blocked_own_goal": [
                      "Lucas Boyé"
                    ]
                  }
                ]
              }
            }
          ]
        }
      },
      "team_totals": {
        "projected_goals": 1,
        "expected_goals": 1.26,
        "expected_assists": 0.82,
        "total_shots": 13,
        "shots_on_target": 3,
        "total_passes": 328,
        "interceptions": 8,
        "tackles": 15,
        "avg_rating": 6.85,
        "possession_estimated_pct": 50.3,
        "pressing_actions_per_90": 6.3
      }
    },
    "Málaga": {
      "formation": "4-4-2",
      "players": {
        "Chupete": {
          "player_id": 1913386,
          "position": "F",
          "position_depth": "F",
          "is_starter": true,
          "shirt_number": 9,
          "height": 185,
          "market_value": 10700000,
          "stats": {
            "expected_goals": 0.2252,
            "goal_rate": 0.318,
            "goals": 0,
            "shots_on_target": 1,
            "total_shots": 2,
            "expected_assists": 0.0287,
            "key_pass": 1,
            "rating": 6.7654,
            "minutes": 88,
            "total_pass": 17,
            "accurate_pass": 10,
            "duels_won": 3,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 11,
            "accurate_opp_half_passes": 7,
            "crosses_total": 1,
            "crosses_accurate": 0,
            "touches": 28,
            "possession_lost": 10.112,
            "dispossessed": 0.2847,
            "duels_lost": 5,
            "aerial_lost": 2,
            "total_contest": 1,
            "won_contest": 0,
            "ball_recovery": 1,
            "challenges_lost": 1,
            "fouls": 1,
            "fouls_drawn": 1,
            "assist_rate": 0.0,
            "assists": 0,
            "interceptions": 0,
            "tackles_won": 1,
            "tackles": 1,
            "clearances": 1,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.2157,
            "offsides": 1,
            "ball_carries": 6,
            "total_progression": 15,
            "progressive_carries": 1,
            "shots_off_target": 1,
            "duel_xg_multiplier": 1.0488,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.4,
            "aerial_won": 2,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.233,
            "pressing_faced": "LOW",
            "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "numerical_situation": "1v2",
            "opponent_defenders": "Ville Koski, Nicolás Valentini",
            "opponent_faced": "Ville Koski, Nicolás Valentini",
            "antagonist_source": "attacking_duel",
            "projected_goals": 0,
            "goal_probability": 0.2016,
            "projected_assists": 0,
            "assist_probability": 0.0283,
            "finishing_factor": 1.0387,
            "creation_factor": 0.8,
            "fifa_overall": 80.0
          },
          "latest_10_games": [
            {
              "match_id": 16421073,
              "match_date": "2026-10-18",
              "home_team": "Málaga CF",
              "away_team": "Real Sociedad",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 90,
                "rating": 6.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.4529,
                "expected_assists": 0.0196,
                "total_shots": 5,
                "shots_on_target": 2,
                "shots_off_target": 1,
                "total_pass": 20,
                "accurate_pass": 14,
                "tackles": 1,
                "tackles_won": 1,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421062,
              "match_date": "2026-10-09",
              "home_team": "Málaga CF",
              "away_team": "Espanyol",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 90,
                "rating": 6.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0277,
                "expected_assists": 0.0099,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 15,
                "accurate_pass": 7,
                "clearances": 2,
                "aerial_won": 2,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416303,
              "match_date": "2026-09-20",
              "home_team": "Getafe",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Málaga CF",
              "opponent": "Getafe",
              "stats": {
                "minutes": 23,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0006,
                "total_shots": 0,
                "total_pass": 3,
                "accurate_pass": 2,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416338,
              "match_date": "2026-09-17",
              "home_team": "Málaga CF",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0248,
                "expected_assists": 0.01,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 14,
                "accurate_pass": 10,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 5,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416347,
              "match_date": "2026-09-13",
              "home_team": "Celta Vigo",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 90,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0838,
                "expected_assists": 0.0107,
                "total_shots": 2,
                "shots_off_target": 1,
                "total_pass": 16,
                "accurate_pass": 7,
                "key_pass": 1,
                "interceptions": 1,
                "aerial_won": 4,
                "duels_won": 6,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416320,
              "match_date": "2026-09-06",
              "home_team": "Málaga CF",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 90,
                "rating": 5.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.9766,
                "expected_assists": 0.0189,
                "total_shots": 4,
                "shots_on_target": 2,
                "shots_off_target": 2,
                "total_pass": 14,
                "accurate_pass": 8,
                "clearances": 2,
                "aerial_won": 2,
                "duels_won": 4,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416312,
              "match_date": "2026-08-30",
              "home_team": "Real Madrid",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.2089,
                "expected_assists": 0.0182,
                "total_shots": 3,
                "shots_off_target": 2,
                "total_pass": 20,
                "accurate_pass": 16,
                "key_pass": 2,
                "clearances": 2,
                "duels_won": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416307,
              "match_date": "2026-08-24",
              "home_team": "Málaga CF",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 90,
                "rating": 7.3,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 1.6769,
                "expected_assists": 0.0102,
                "total_shots": 4,
                "shots_on_target": 1,
                "shots_off_target": 2,
                "total_pass": 14,
                "accurate_pass": 10,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 4,
                "duels_won": 6,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421055,
              "match_date": "2026-08-19",
              "home_team": "Atlético Madrid",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 90,
                "rating": 5.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0603,
                "expected_assists": 0.0553,
                "total_shots": 1,
                "total_pass": 18,
                "accurate_pass": 11,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 2054,
            "combined_rank_score": 783.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 784.0,
            "sofascore_rating": 6.6333,
            "sofascore_appearances": 3.0,
            "fifa_rank": 783.0,
            "fifa_overall": 80.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 10,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.7654,
            "source_file": "data/player_rankings.csv",
            "player_name": "Chupete",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Liam Jessop",
                  "ranking": 2049
                },
                {
                  "player_name": "Tohirjon Ashuboyev",
                  "ranking": 2050
                },
                {
                  "player_name": "Javier Méndez",
                  "ranking": 2051
                },
                {
                  "player_name": "Facundo Marín",
                  "ranking": 2052
                },
                {
                  "player_name": "Lee Rim",
                  "ranking": 2053
                }
              ],
              "lower": [
                {
                  "player_name": "Miguelito",
                  "ranking": 2055
                },
                {
                  "player_name": "Francisco Herrera",
                  "ranking": 2056
                },
                {
                  "player_name": "Joon-mo Kang",
                  "ranking": 2057
                },
                {
                  "player_name": "Maks Juraj Čelić",
                  "ranking": 2058
                },
                {
                  "player_name": "Eligijus Jankauskas",
                  "ranking": 2059
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.78,
          "history_matches": 9,
          "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",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "expectedGoals",
              "goals",
              "rating",
              "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",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 9,
            "data_confidence": 0.78,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0027,
            "fbref_prior_metrics": {
              "squad": "Málaga",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "minutes": 270.0,
              "goals_per90": 0.3333333333333333,
              "assists_per90": 0.0,
              "shots_per90": 2.67,
              "shots_on_target_pct": 12.5,
              "prior_reliability": 0.2
            },
            "rationale": "XGBoost regressor (F_service) evaluated 9 historical appearances across 7 target models; FBref 2026-2027 prior blended (La Liga, Málaga, rel: 0.20, gls/90: 0.3333333333333333, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.2893,
                "goals": 0.3013,
                "goal_rate": 0.3013,
                "shots_on_target": 0.8795,
                "total_shots": 2.1585,
                "expected_assists": 0.0359,
                "key_pass": 0.5943,
                "rating": 6.7654,
                "minutes": 88.0,
                "total_pass": 16.4789,
                "accurate_pass": 10.3188,
                "duels_won": 3.4136,
                "total_long_balls": 0.7706,
                "accurate_long_balls": 0.4124,
                "total_opp_half_passes": 11.4164,
                "accurate_opp_half_passes": 6.7096,
                "crosses_total": 0.8283,
                "crosses_accurate": 0.0,
                "touches": 27.6682,
                "possession_lost": 10.0848,
                "dispossessed": 0.2839,
                "duels_lost": 4.9836,
                "aerial_lost": 2.0342,
                "total_contest": 1.2385,
                "won_contest": 0.2979,
                "ball_recovery": 1.2519,
                "challenges_lost": 0.7192,
                "fouls": 1.0057,
                "fouls_drawn": 0.8782,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.1266,
                "tackles_won": 0.499,
                "tackles": 0.499,
                "clearances": 1.1738,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.3916,
                "xgot": 0.2772,
                "offsides": 0.5668,
                "ball_carries": 6.3407,
                "total_progression": 15.0731,
                "progressive_carries": 0.6939,
                "shots_off_target": 1.279
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 6,
                  "trained_at": "2026-10-23T10:05:54.625928+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 611,
                    "rows": 16533
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Real Sociedad",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1952,
                    "rating": 6.0
                  },
                  {
                    "match_date": "2026-10-09",
                    "opponent": "Espanyol",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1659,
                    "rating": 6.0
                  },
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Getafe",
                    "minutes": 23.0,
                    "is_starting": false,
                    "weight": 0.141,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Villarreal",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1199,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Celta Vigo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1019,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Levante UD",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0866,
                    "rating": 5.7
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Real Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0736,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-08-24",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0626,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-08-19",
                    "opponent": "Atlético Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0532,
                    "rating": 5.9
                  }
                ],
                "feature_row": {
                  "history_matches": 9.0,
                  "is_starting_11": 1.0,
                  "expectedGoals": 0.3126,
                  "totalOppositionHalfPasses": 10.0906,
                  "accurateOppositionHalfPasses": 5.8659,
                  "accuratePass": 9.1707,
                  "totalShots": 2.3366
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.28928449749946594,
                    "model_output": 0.2893,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2858
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0881
                      },
                      {
                        "name": "goals",
                        "importance": 0.0357
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0272
                      },
                      {
                        "name": "bigChanceMissed",
                        "importance": 0.0231
                      }
                    ],
                    "decomposition": {
                      "base": 0.1979,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.067
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0315
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0271
                        },
                        {
                          "name": "goals",
                          "contribution": -0.0195
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0095
                        }
                      ],
                      "others": 0.03,
                      "total": 0.2893,
                      "log_link": true,
                      "margin_base": -1.619934,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.291671
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.112224
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": -0.095749
                        },
                        {
                          "name": "goals",
                          "margin": -0.075065
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.037295
                        }
                      ],
                      "others_margin": 0.109213
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.301290363073349,
                    "model_output": 0.3013,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1497
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0696
                      },
                      {
                        "name": "goals",
                        "importance": 0.0577
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0307
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0286
                      }
                    ],
                    "decomposition": {
                      "base": 0.2023,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.058
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0331
                        },
                        {
                          "name": "goals",
                          "contribution": -0.0239
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.016
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0148
                        }
                      ],
                      "others": 0.033,
                      "total": 0.3013,
                      "log_link": true,
                      "margin_base": -1.597983,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.252125
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.119812
                        },
                        {
                          "name": "goals",
                          "margin": -0.084879
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": -0.061209
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.056765
                        }
                      ],
                      "others_margin": 0.115689
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.8795029520988464,
                    "model_output": 0.8795,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2171
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0661
                      },
                      {
                        "name": "goals",
                        "importance": 0.0553
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0475
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0308
                      }
                    ],
                    "decomposition": {
                      "base": 0.5362,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1473
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0537
                        },
                        {
                          "name": "goals",
                          "contribution": -0.0437
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": 0.0399
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0391
                        }
                      ],
                      "others": 0.107,
                      "total": 0.8795,
                      "log_link": true,
                      "margin_base": -0.623262,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.242759
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.075605
                        },
                        {
                          "name": "goals",
                          "margin": -0.061116
                        },
                        {
                          "name": "ballRecovery",
                          "margin": 0.055922
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.051903
                        }
                      ],
                      "others_margin": 0.12979
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 2.1584901809692383,
                    "model_output": 2.1585,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2864
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0656
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.051
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.031
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0298
                      }
                    ],
                    "decomposition": {
                      "base": 1.3807,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.4835
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.1611
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0624
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": 0.0412
                        },
                        {
                          "name": "goals",
                          "contribution": -0.0381
                        }
                      ],
                      "others": 0.0677,
                      "total": 2.1585,
                      "log_link": false,
                      "margin_base": 1.380749,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.483476
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.161145
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.062409
                        },
                        {
                          "name": "ballRecovery",
                          "margin": 0.041176
                        },
                        {
                          "name": "goals",
                          "margin": -0.03808
                        }
                      ],
                      "others_margin": 0.067614
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.035879991948604584,
                    "model_output": 0.0359,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.1157
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0645
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0607
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0558
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 0.0644,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0201
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0133
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.0106
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0063
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0038
                        }
                      ],
                      "others": -0.0146,
                      "total": 0.0359,
                      "log_link": true,
                      "margin_base": -2.741965,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.272035
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.170689
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.161431
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.109416
                        },
                        {
                          "name": "rating",
                          "margin": -0.072675
                        }
                      ],
                      "others_margin": -0.343435
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.5943196415901184,
                    "model_output": 0.5943,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1481
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1244
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.1112
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.052
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0395
                      }
                    ],
                    "decomposition": {
                      "base": 0.6805,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1996
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.0569
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.046
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0353
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0327
                        }
                      ],
                      "others": -0.1149,
                      "total": 0.5943,
                      "log_link": true,
                      "margin_base": -0.384987,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.25725
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.066878
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.057536
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.046449
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.045023
                        }
                      ],
                      "others_margin": -0.176715
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.765374660491943,
                    "model_output": 6.7654,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.059
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0483
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0421
                      },
                      {
                        "name": "rating",
                        "importance": 0.0418
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0415
                      }
                    ],
                    "decomposition": {
                      "base": 6.7683,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0437
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0256
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0231
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0158
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.0131
                        }
                      ],
                      "others": -0.0414,
                      "total": 6.7654,
                      "log_link": false,
                      "margin_base": 6.768281,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.043683
                        },
                        {
                          "name": "rating",
                          "margin": -0.025553
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.023092
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.015752
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": 0.013131
                        }
                      ],
                      "others_margin": -0.041504
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 9,
                  "role_matches": 8,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "role_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0027, quality 0.531)",
              "stats": {
                "expected_goals": 0.2901,
                "goals": 0.3021,
                "goal_rate": 0.3021,
                "shots_on_target": 0.8819,
                "total_shots": 2.1644,
                "expected_assists": 0.036,
                "key_pass": 0.5959,
                "rating": 6.7654,
                "minutes": 88.0,
                "total_pass": 16.5234,
                "accurate_pass": 10.3467,
                "duels_won": 3.4228,
                "total_long_balls": 0.7727,
                "accurate_long_balls": 0.4135,
                "total_opp_half_passes": 11.4472,
                "accurate_opp_half_passes": 6.7277,
                "crosses_total": 0.8305,
                "crosses_accurate": 0.0,
                "touches": 27.7429,
                "possession_lost": 10.112,
                "dispossessed": 0.2847,
                "duels_lost": 4.9971,
                "aerial_lost": 2.0397,
                "total_contest": 1.2418,
                "won_contest": 0.2987,
                "ball_recovery": 1.2553,
                "challenges_lost": 0.7211,
                "fouls": 1.0084,
                "fouls_drawn": 0.8806,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.1269,
                "tackles_won": 0.5003,
                "tackles": 0.5003,
                "clearances": 1.177,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.3927,
                "xgot": 0.2779,
                "offsides": 0.5683,
                "ball_carries": 6.3578,
                "total_progression": 15.1138,
                "progressive_carries": 0.6958,
                "shots_off_target": 1.2825
              },
              "params": {
                "market_value_eur": 10700000,
                "quality_factor": 0.5306,
                "boost_factor": 1.0027,
                "reference_quality": 0.505,
                "history_matches": 9,
                "history_shrink": 0.3571,
                "market_value_known": true
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0464)",
              "stats": {
                "expected_goals": 0.2901,
                "goals": 0.3032,
                "goal_rate": 0.3032,
                "shots_on_target": 0.8559,
                "total_shots": 2.1851,
                "expected_assists": 0.036,
                "key_pass": 0.5959,
                "rating": 6.7654,
                "minutes": 88.0,
                "total_pass": 16.5234,
                "accurate_pass": 10.3467,
                "duels_won": 3.4228,
                "total_long_balls": 0.7727,
                "accurate_long_balls": 0.4135,
                "total_opp_half_passes": 11.4472,
                "accurate_opp_half_passes": 6.7277,
                "crosses_total": 0.7919,
                "crosses_accurate": 0.0,
                "touches": 27.7429,
                "possession_lost": 10.112,
                "dispossessed": 0.2847,
                "duels_lost": 4.9971,
                "aerial_lost": 2.0397,
                "total_contest": 1.2418,
                "won_contest": 0.2987,
                "ball_recovery": 1.2553,
                "challenges_lost": 0.7211,
                "fouls": 1.007,
                "fouls_drawn": 0.8851,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.121,
                "tackles_won": 0.5073,
                "tackles": 0.5003,
                "clearances": 1.177,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.3927,
                "xgot": 0.2779,
                "offsides": 0.557,
                "ball_carries": 6.3578,
                "total_progression": 15.1138,
                "progressive_carries": 0.6958,
                "shots_off_target": 1.2825
              },
              "params": {
                "blend_weight": 0.0464,
                "history_matches": 9,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.9778,
                "prior_reliability": 0.2,
                "competition": "La Liga",
                "squad": "Málaga"
              },
              "changes": [
                {
                  "stat": "totalCross",
                  "before": 0.8305,
                  "after": 0.7919
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.8819,
                  "after": 0.8559
                },
                {
                  "stat": "totalShots",
                  "before": 2.1644,
                  "after": 2.1851
                },
                {
                  "stat": "totalOffside",
                  "before": 0.5683,
                  "after": 0.557
                },
                {
                  "stat": "wonTackle",
                  "before": 0.5003,
                  "after": 0.5073
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.1269,
                  "after": 0.121
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.2901,
                "goals": 0.3032,
                "goal_rate": 0.3032,
                "shots_on_target": 0.8559,
                "total_shots": 2.1851,
                "expected_assists": 0.036,
                "key_pass": 0.5959,
                "rating": 6.7654,
                "minutes": 88.0,
                "total_pass": 16.5234,
                "accurate_pass": 10.3467,
                "duels_won": 3.4228,
                "total_long_balls": 0.7727,
                "accurate_long_balls": 0.4135,
                "total_opp_half_passes": 11.4472,
                "accurate_opp_half_passes": 6.7277,
                "crosses_total": 0.7919,
                "crosses_accurate": 0.0,
                "touches": 27.7429,
                "possession_lost": 10.112,
                "dispossessed": 0.2847,
                "duels_lost": 4.9971,
                "aerial_lost": 2.0397,
                "total_contest": 1.2418,
                "won_contest": 0.2987,
                "ball_recovery": 1.2553,
                "challenges_lost": 0.7211,
                "fouls": 1.007,
                "fouls_drawn": 0.8851,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.121,
                "tackles_won": 0.5003,
                "tackles": 0.5003,
                "clearances": 1.177,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.3927,
                "xgot": 0.2779,
                "offsides": 0.557,
                "ball_carries": 6.3578,
                "total_progression": 15.1138,
                "progressive_carries": 0.6958,
                "shots_off_target": 1.2825
              },
              "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.3043,
                "goals": 0.318,
                "goal_rate": 0.318,
                "shots_on_target": 0.8977,
                "total_shots": 2.2917,
                "expected_assists": 0.036,
                "key_pass": 0.5959,
                "rating": 6.7654,
                "minutes": 88.0,
                "total_pass": 16.5234,
                "accurate_pass": 10.3467,
                "duels_won": 3.4228,
                "total_long_balls": 0.7727,
                "accurate_long_balls": 0.4135,
                "total_opp_half_passes": 11.4472,
                "accurate_opp_half_passes": 6.7277,
                "crosses_total": 0.7919,
                "crosses_accurate": 0.0,
                "touches": 27.7429,
                "possession_lost": 10.112,
                "dispossessed": 0.2847,
                "duels_lost": 4.9971,
                "aerial_lost": 2.0397,
                "total_contest": 1.2418,
                "won_contest": 0.2987,
                "ball_recovery": 1.2553,
                "challenges_lost": 0.7211,
                "fouls": 1.007,
                "fouls_drawn": 0.8851,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.121,
                "tackles_won": 0.5003,
                "tackles": 0.5003,
                "clearances": 1.177,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.4119,
                "xgot": 0.2915,
                "offsides": 0.557,
                "ball_carries": 6.3578,
                "total_progression": 15.1138,
                "progressive_carries": 0.6958,
                "shots_off_target": 1.3451,
                "duel_xg_multiplier": 1.0488,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.4,
                "aerial_won": 1.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.233,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Ville Koski, Nicolás Valentini",
                "opponent_faced": "Ville Koski, Nicolás Valentini",
                "antagonist_source": "attacking_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Ville Koski, Nicolás Valentini",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                  "duel_win_rate": 0.233,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v2",
                  "xg_multiplier": 1.0488,
                  "skill_edge": 0.0312,
                  "height_edge": 0.002,
                  "attacker_skill": 0.5306,
                  "defender_skill": 0.4613,
                  "attacker_role": "ST",
                  "attacker_mv_price_index": 1.0,
                  "defender_adjusted_parts": [
                    {
                      "player": "Ville Koski",
                      "market_value": 4300000,
                      "role": "CB",
                      "price_index": 0.75,
                      "adjusted_quality": 0.4712
                    },
                    {
                      "player": "Nicolás Valentini",
                      "market_value": 3100000,
                      "role": "CB",
                      "price_index": 0.75,
                      "adjusted_quality": 0.4515
                    }
                  ],
                  "xg_override": 0.3043
                }
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 2.1851,
                  "after": 2.2917
                },
                {
                  "stat": "shotOffTarget",
                  "before": 1.2825,
                  "after": 1.3451
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.8559,
                  "after": 0.8977
                },
                {
                  "stat": "bigChanceMissed",
                  "before": 0.3927,
                  "after": 0.4119
                },
                {
                  "stat": "goals",
                  "before": 0.3032,
                  "after": 0.318
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.2901,
                  "after": 0.3043
                },
                {
                  "stat": "expectedGoalsOnTarget",
                  "before": 0.2779,
                  "after": 0.2915
                }
              ]
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "expected_goals": 0.3043,
                "goal_rate": 0.318,
                "goals": 0,
                "shots_on_target": 0.8977,
                "total_shots": 2.2917,
                "expected_assists": 0.036,
                "key_pass": 0.5959,
                "rating": 6.7654,
                "minutes": 88.0,
                "total_pass": 16.5234,
                "accurate_pass": 10.3467,
                "duels_won": 3.4228,
                "total_long_balls": 0.7727,
                "accurate_long_balls": 0.4135,
                "total_opp_half_passes": 11.4472,
                "accurate_opp_half_passes": 6.7277,
                "crosses_total": 0.7919,
                "crosses_accurate": 0.0,
                "touches": 27.7429,
                "possession_lost": 10.112,
                "dispossessed": 0.2847,
                "duels_lost": 4.9971,
                "aerial_lost": 2.0397,
                "total_contest": 1.2418,
                "won_contest": 0.2987,
                "ball_recovery": 1.2553,
                "challenges_lost": 0.7211,
                "fouls": 1.007,
                "fouls_drawn": 0.8851,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.121,
                "tackles_won": 0.5003,
                "tackles": 0.5003,
                "clearances": 1.177,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.4119,
                "xgot": 0.2915,
                "offsides": 0.557,
                "ball_carries": 6.3578,
                "total_progression": 15.1138,
                "progressive_carries": 0.6958,
                "shots_off_target": 1.3451,
                "duel_xg_multiplier": 1.0488,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.4,
                "aerial_won": 1.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.233,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Ville Koski, Nicolás Valentini",
                "opponent_faced": "Ville Koski, Nicolás Valentini",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "scoreline_reset": true,
                "team_goals": 0
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.87 (squad xG sum 1.1744, xG scale 0.7400, xA scale 0.7968, team xA 0.56 = 0.65 x lambda)",
              "stats": {
                "expected_goals": 0.2252,
                "goal_rate": 0.318,
                "goals": 0,
                "shots_on_target": 0.8977,
                "total_shots": 2.2917,
                "expected_assists": 0.0287,
                "key_pass": 0.5959,
                "rating": 6.7654,
                "minutes": 88.0,
                "total_pass": 16.5234,
                "accurate_pass": 10.3467,
                "duels_won": 3.4228,
                "total_long_balls": 0.7727,
                "accurate_long_balls": 0.4135,
                "total_opp_half_passes": 11.4472,
                "accurate_opp_half_passes": 6.7277,
                "crosses_total": 0.7919,
                "crosses_accurate": 0.0,
                "touches": 27.7429,
                "possession_lost": 10.112,
                "dispossessed": 0.2847,
                "duels_lost": 4.9971,
                "aerial_lost": 2.0397,
                "total_contest": 1.2418,
                "won_contest": 0.2987,
                "ball_recovery": 1.2553,
                "challenges_lost": 0.7211,
                "fouls": 1.007,
                "fouls_drawn": 0.8851,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.121,
                "tackles_won": 0.5003,
                "tackles": 0.5003,
                "clearances": 1.177,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.4119,
                "xgot": 0.2157,
                "offsides": 0.557,
                "ball_carries": 6.3578,
                "total_progression": 15.1138,
                "progressive_carries": 0.6958,
                "shots_off_target": 1.3451,
                "duel_xg_multiplier": 1.0488,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.4,
                "aerial_won": 1.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.233,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Ville Koski, Nicolás Valentini",
                "opponent_faced": "Ville Koski, Nicolás Valentini",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0387,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 0.869,
                "squad_xg_sum": 1.1744,
                "squad_xa_sum": 0.7089,
                "team_expected_assists": 0.5648,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.74,
                "xa_scale": 0.7968,
                "opponent_lambda": 1.257,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.3043,
                  "after": 0.2252
                },
                {
                  "stat": "expected_assists",
                  "before": 0.036,
                  "after": 0.0287
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 80.0)",
              "stats": {
                "expected_goals": 0.2252,
                "goal_rate": 0.318,
                "goals": 0,
                "shots_on_target": 0.8977,
                "total_shots": 2.2917,
                "expected_assists": 0.0287,
                "key_pass": 0.5959,
                "rating": 6.7654,
                "minutes": 88.0,
                "total_pass": 16.5234,
                "accurate_pass": 10.3467,
                "duels_won": 3.4228,
                "total_long_balls": 0.7727,
                "accurate_long_balls": 0.4135,
                "total_opp_half_passes": 11.4472,
                "accurate_opp_half_passes": 6.7277,
                "crosses_total": 0.7919,
                "crosses_accurate": 0.0,
                "touches": 27.7429,
                "possession_lost": 10.112,
                "dispossessed": 0.2847,
                "duels_lost": 4.9971,
                "aerial_lost": 2.0397,
                "total_contest": 1.2418,
                "won_contest": 0.2987,
                "ball_recovery": 1.2553,
                "challenges_lost": 0.7211,
                "fouls": 1.007,
                "fouls_drawn": 0.8851,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.121,
                "tackles_won": 0.5003,
                "tackles": 0.5003,
                "clearances": 1.177,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.4119,
                "xgot": 0.2157,
                "offsides": 0.557,
                "ball_carries": 6.3578,
                "total_progression": 15.1138,
                "progressive_carries": 0.6958,
                "shots_off_target": 1.3451,
                "duel_xg_multiplier": 1.0488,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.4,
                "aerial_won": 1.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.233,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Ville Koski, Nicolás Valentini",
                "opponent_faced": "Ville Koski, Nicolás Valentini",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0387,
                "creation_factor": 0.8,
                "fifa_overall": 80.0
              },
              "params": {
                "match_squad_rank": 10,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 2054,
                "fifa_rank": 783.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 80.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "expected_goals": 0.2252,
                "goal_rate": 0.318,
                "goals": 0,
                "shots_on_target": 0.8977,
                "total_shots": 2.2917,
                "expected_assists": 0.0287,
                "key_pass": 0.5959,
                "rating": 6.7654,
                "minutes": 88.0,
                "total_pass": 16.5234,
                "accurate_pass": 10.3467,
                "duels_won": 3.4228,
                "total_long_balls": 0.7727,
                "accurate_long_balls": 0.4135,
                "total_opp_half_passes": 11.4472,
                "accurate_opp_half_passes": 6.7277,
                "crosses_total": 0.7919,
                "crosses_accurate": 0.0,
                "touches": 27.7429,
                "possession_lost": 10.112,
                "dispossessed": 0.2847,
                "duels_lost": 4.9971,
                "aerial_lost": 2.0397,
                "total_contest": 1.2418,
                "won_contest": 0.2987,
                "ball_recovery": 1.2553,
                "challenges_lost": 0.7211,
                "fouls": 1.007,
                "fouls_drawn": 0.8851,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.121,
                "tackles_won": 0.5003,
                "tackles": 0.5003,
                "clearances": 1.177,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.4119,
                "xgot": 0.2157,
                "offsides": 0.557,
                "ball_carries": 6.3578,
                "total_progression": 15.1138,
                "progressive_carries": 0.6958,
                "shots_off_target": 1.3451,
                "duel_xg_multiplier": 1.0488,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.4,
                "aerial_won": 1.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.233,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Ville Koski, Nicolás Valentini",
                "opponent_faced": "Ville Koski, Nicolás Valentini",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.2016,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0387,
                "creation_factor": 0.8,
                "fifa_overall": 80.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.2016,
                "goal_rate": 0.318,
                "scorer_weight": 0.2339,
                "squad_weight_total": 0.91,
                "weight_share": 0.257,
                "finishing_factor": 1.0387,
                "appearance_weight": 1.0,
                "weight_rank": 2,
                "eligible_players": 13
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "expected_goals": 0.2252,
                "goal_rate": 0.318,
                "goals": 0,
                "shots_on_target": 0.8977,
                "total_shots": 2.2917,
                "expected_assists": 0.0287,
                "key_pass": 0.5959,
                "rating": 6.7654,
                "minutes": 88.0,
                "total_pass": 16.5234,
                "accurate_pass": 10.3467,
                "duels_won": 3.4228,
                "total_long_balls": 0.7727,
                "accurate_long_balls": 0.4135,
                "total_opp_half_passes": 11.4472,
                "accurate_opp_half_passes": 6.7277,
                "crosses_total": 0.7919,
                "crosses_accurate": 0.0,
                "touches": 27.7429,
                "possession_lost": 10.112,
                "dispossessed": 0.2847,
                "duels_lost": 4.9971,
                "aerial_lost": 2.0397,
                "total_contest": 1.2418,
                "won_contest": 0.2987,
                "ball_recovery": 1.2553,
                "challenges_lost": 0.7211,
                "fouls": 1.007,
                "fouls_drawn": 0.8851,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.121,
                "tackles_won": 0.5003,
                "tackles": 0.5003,
                "clearances": 1.177,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.4119,
                "xgot": 0.2157,
                "offsides": 0.557,
                "ball_carries": 6.3578,
                "total_progression": 15.1138,
                "progressive_carries": 0.6958,
                "shots_off_target": 1.3451,
                "duel_xg_multiplier": 1.0488,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.4,
                "aerial_won": 1.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.233,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Ville Koski, Nicolás Valentini",
                "opponent_faced": "Ville Koski, Nicolás Valentini",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.2016,
                "projected_assists": 0,
                "assist_probability": 0.0283,
                "finishing_factor": 1.0387,
                "creation_factor": 0.8,
                "fifa_overall": 80.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0283,
                "assist_rate": 0.0,
                "provider_weight": 0.023,
                "squad_weight_total": 0.5067,
                "weight_share": 0.0453,
                "creation_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 8,
                "eligible_players": 13
              }
            }
          ]
        },
        "Dani Lorenzo": {
          "player_id": 1465424,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 22,
          "height": 176,
          "market_value": 2300000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.0519,
            "assist_rate": 0.0709,
            "assists": 0,
            "expected_goals": 0.0363,
            "goal_rate": 0.0509,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "rating": 6.9552,
            "minutes": 79,
            "total_pass": 50,
            "accurate_pass": 46,
            "duels_won": 5,
            "total_long_balls": 3,
            "accurate_long_balls": 2,
            "total_own_half_passes": 22,
            "accurate_own_half_passes": 21,
            "total_opp_half_passes": 28,
            "accurate_opp_half_passes": 26,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 64,
            "possession_lost": 7.7607,
            "dispossessed": 1.223,
            "duels_lost": 4,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 1,
            "tackles_won": 1,
            "tackles": 2,
            "clearances": 1,
            "total_contest": 3,
            "won_contest": 2,
            "challenges_lost": 1,
            "fouls": 1,
            "fouls_drawn": 1,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 22,
            "total_progression": 83,
            "progressive_carries": 2,
            "shots_off_target": 0,
            "duel_xg_multiplier": 0.9674,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.8,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.428,
            "pressing_faced": "LOW",
            "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
            "numerical_situation": "1v1",
            "opponent_defenders": "Pablo Ibáñez",
            "opponent_faced": "Pablo Ibáñez",
            "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.0356,
            "projected_assists": 0,
            "assist_probability": 0.0506,
            "finishing_factor": 1.0192,
            "creation_factor": 1.0504,
            "fifa_overall": 72.0
          },
          "latest_10_games": [
            {
              "match_id": 16421073,
              "match_date": "2026-10-18",
              "home_team": "Málaga CF",
              "away_team": "Real Sociedad",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Málaga CF",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 26,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0382,
                "expected_assists": 0.0633,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 26,
                "accurate_pass": 23,
                "key_pass": 1,
                "tackles": 1,
                "interceptions": 1,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421062,
              "match_date": "2026-10-09",
              "home_team": "Málaga CF",
              "away_team": "Espanyol",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 90,
                "rating": 7.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0453,
                "total_shots": 0,
                "total_pass": 69,
                "accurate_pass": 61,
                "key_pass": 1,
                "tackles": 4,
                "tackles_won": 3,
                "interceptions": 1,
                "aerial_won": 1,
                "duels_won": 8,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416303,
              "match_date": "2026-09-20",
              "home_team": "Getafe",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Getafe",
              "stats": {
                "minutes": 67,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0501,
                "expected_assists": 0.0468,
                "total_shots": 1,
                "total_pass": 29,
                "accurate_pass": 27,
                "key_pass": 1,
                "clearances": 3,
                "duels_won": 4,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416338,
              "match_date": "2026-09-17",
              "home_team": "Málaga CF",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Málaga CF",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 45,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0056,
                "total_shots": 0,
                "total_pass": 28,
                "accurate_pass": 25,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "duels_won": 1,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416347,
              "match_date": "2026-09-13",
              "home_team": "Celta Vigo",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 67,
                "rating": 6.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.009,
                "total_shots": 0,
                "total_pass": 42,
                "accurate_pass": 35,
                "key_pass": 1,
                "interceptions": 1,
                "duels_won": 2,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416320,
              "match_date": "2026-09-06",
              "home_team": "Málaga CF",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 67,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1761,
                "expected_assists": 0.0338,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 45,
                "accurate_pass": 44,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 6,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416307,
              "match_date": "2026-08-24",
              "home_team": "Málaga CF",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 85,
                "rating": 7.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0369,
                "total_shots": 0,
                "total_pass": 71,
                "accurate_pass": 67,
                "tackles": 2,
                "tackles_won": 1,
                "duels_won": 7,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421055,
              "match_date": "2026-08-19",
              "home_team": "Atlético Madrid",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 80,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0761,
                "total_shots": 0,
                "total_pass": 50,
                "accurate_pass": 49,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 2,
                "duels_won": 5,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 4238,
            "combined_rank_score": 2259.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 257.0,
            "sofascore_rating": 7.1,
            "sofascore_appearances": 2.0,
            "fifa_rank": 4261.0,
            "fifa_overall": 72.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 1,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.9552,
            "source_file": "data/player_rankings.csv",
            "player_name": "Dani Lorenzo",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Raúl de Tomás",
                  "ranking": 4233
                },
                {
                  "player_name": "Romain Faivre",
                  "ranking": 4234
                },
                {
                  "player_name": "Matt Targett",
                  "ranking": 4235
                },
                {
                  "player_name": "Matías Arezo",
                  "ranking": 4236
                },
                {
                  "player_name": "Montassar Talbi",
                  "ranking": 4237
                }
              ],
              "lower": [
                {
                  "player_name": "Himad Abdelli",
                  "ranking": 4239
                },
                {
                  "player_name": "Luciano Boggio",
                  "ranking": 4240
                },
                {
                  "player_name": "José Florentín",
                  "ranking": 4241
                },
                {
                  "player_name": "John Souttar",
                  "ranking": 4242
                },
                {
                  "player_name": "Osame Sahraoui",
                  "ranking": 4243
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.768,
          "history_matches": 8,
          "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",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "rating",
              "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",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 8,
            "data_confidence": 0.768,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.9922,
            "fbref_prior_metrics": {
              "squad": "Málaga",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 2.0,
              "minutes": 163.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.0,
              "prior_reliability": 0.12
            },
            "rationale": "XGBoost regressor (M_service) evaluated 8 historical appearances across 8 target models; FBref 2026-2027 prior blended (La Liga, Málaga, rel: 0.12, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 0.847,
                "expected_assists": 0.0656,
                "assists": 0.0737,
                "assist_rate": 0.0737,
                "expected_goals": 0.051,
                "goals": 0.0546,
                "goal_rate": 0.0546,
                "shots_on_target": 0.1926,
                "total_shots": 0.6325,
                "rating": 6.9552,
                "minutes": 78.64,
                "total_pass": 50.7855,
                "accurate_pass": 46.4739,
                "duels_won": 5.3951,
                "total_long_balls": 2.9495,
                "accurate_long_balls": 2.0974,
                "total_own_half_passes": 22.1222,
                "accurate_own_half_passes": 20.7107,
                "total_opp_half_passes": 28.6633,
                "accurate_opp_half_passes": 25.7632,
                "crosses_total": 0.2047,
                "crosses_accurate": 0.0,
                "touches": 64.1849,
                "possession_lost": 7.8217,
                "dispossessed": 1.2326,
                "duels_lost": 3.9512,
                "aerial_won": 0.2408,
                "aerial_lost": 0.3219,
                "interceptions": 0.6285,
                "tackles_won": 1.103,
                "tackles": 1.5764,
                "clearances": 0.6141,
                "total_contest": 2.9034,
                "won_contest": 2.0996,
                "challenges_lost": 0.683,
                "fouls": 0.9099,
                "fouls_drawn": 1.4783,
                "blocks": 0.1257,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.186,
                "xgot": 0.0,
                "ball_carries": 21.8019,
                "total_progression": 83.174,
                "progressive_carries": 2.0684,
                "shots_off_target": 0.4399
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 7,
                  "trained_at": "2026-10-23T10:05:23.571433+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 903,
                    "rows": 24475
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Real Sociedad",
                    "minutes": 26.0,
                    "is_starting": false,
                    "weight": 0.2062,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-10-09",
                    "opponent": "Espanyol",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1753,
                    "rating": 7.4
                  },
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Getafe",
                    "minutes": 67.0,
                    "is_starting": true,
                    "weight": 0.149,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Villarreal",
                    "minutes": 45.0,
                    "is_starting": false,
                    "weight": 0.1266,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Celta Vigo",
                    "minutes": 67.0,
                    "is_starting": true,
                    "weight": 0.1076,
                    "rating": 6.0
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Levante UD",
                    "minutes": 67.0,
                    "is_starting": true,
                    "weight": 0.0915,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-08-24",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 85.0,
                    "is_starting": true,
                    "weight": 0.0778,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-08-19",
                    "opponent": "Atlético Madrid",
                    "minutes": 80.0,
                    "is_starting": true,
                    "weight": 0.0661,
                    "rating": 7.0
                  }
                ],
                "feature_row": {
                  "history_matches": 8.0,
                  "is_starting_11": 1.0,
                  "creative_index": 0.3426,
                  "totalShots": 0.4466,
                  "expectedGoals": 0.0314,
                  "expectedAssists": 0.0406,
                  "onTargetScoringAttempt": 0.0
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.8469952344894409,
                    "model_output": 0.847,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1647
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1377
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0663
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0524
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0316
                      }
                    ],
                    "decomposition": {
                      "base": 0.8945,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1108
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.091
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.073
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0507
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.046
                        }
                      ],
                      "others": 0.001,
                      "total": 0.847,
                      "log_link": true,
                      "margin_base": -0.111507,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.116799
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.094894
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.08321
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.058542
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.052978
                        }
                      ],
                      "others_margin": 0.001187
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.06557459384202957,
                    "model_output": 0.0656,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1545
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1048
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.1021
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0476
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0472
                      }
                    ],
                    "decomposition": {
                      "base": 0.0859,
                      "items": [
                        {
                          "name": "totalCross",
                          "contribution": -0.0145
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0099
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0091
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.005
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.005
                        }
                      ],
                      "others": -0.005,
                      "total": 0.0656,
                      "log_link": true,
                      "margin_base": -2.454719,
                      "item_margins": [
                        {
                          "name": "totalCross",
                          "margin": -0.18519
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.149219
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.137449
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.068647
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.068578
                        }
                      ],
                      "others_margin": -0.072957
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.07372049987316132,
                    "model_output": 0.0737,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.0619
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0395
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0343
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0335
                      }
                    ],
                    "decomposition": {
                      "base": 0.0874,
                      "items": [
                        {
                          "name": "totalCross",
                          "contribution": -0.0112
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.008
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": 0.0077
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0068
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0061
                        }
                      ],
                      "others": -0.0053,
                      "total": 0.0737,
                      "log_link": true,
                      "margin_base": -2.437263,
                      "item_margins": [
                        {
                          "name": "totalCross",
                          "margin": -0.136509
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.099206
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": 0.087361
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.077207
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.074917
                        }
                      ],
                      "others_margin": -0.068144
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.05098996311426163,
                    "model_output": 0.051,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedGoals",
                        "importance": 0.134
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.074
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0705
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.039
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0273
                      }
                    ],
                    "decomposition": {
                      "base": 0.094,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0149
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0115
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0082
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0081
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0034
                        }
                      ],
                      "others": -0.0131,
                      "total": 0.051,
                      "log_link": true,
                      "margin_base": -2.364919,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.172942
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.15741
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.128744
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.128523
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.051424
                        }
                      ],
                      "others_margin": -0.22921
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.05457913130521774,
                    "model_output": 0.0546,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0974
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0527
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0513
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0365
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.03
                      }
                    ],
                    "decomposition": {
                      "base": 0.0993,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0157
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0097
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0094
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0075
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.006
                        }
                      ],
                      "others": -0.0158,
                      "total": 0.0546,
                      "log_link": true,
                      "margin_base": -2.309444,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.171967
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.109846
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.105584
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.093149
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.081827
                        }
                      ],
                      "others_margin": -0.255979
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.19259724020957947,
                    "model_output": 0.1926,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1106
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0885
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0762
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0292
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0279
                      }
                    ],
                    "decomposition": {
                      "base": 0.326,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0798
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0322
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0293
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": -0.0136
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0132
                        }
                      ],
                      "others": -0.0561,
                      "total": 0.1926,
                      "log_link": true,
                      "margin_base": -1.120773,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.280761
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.12273
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.111081
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": -0.056111
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.054492
                        }
                      ],
                      "others_margin": -0.25565
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.6324945688247681,
                    "model_output": 0.6325,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1261
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1167
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0633
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0419
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.9969,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.2662
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1198
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0586
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0389
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": -0.025
                        }
                      ],
                      "others": -0.0955,
                      "total": 0.6325,
                      "log_link": false,
                      "margin_base": 0.996896,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.266243
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.119834
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.058558
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.038947
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": -0.024957
                        }
                      ],
                      "others_margin": -0.095531
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.955168724060059,
                    "model_output": 6.9552,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "rating",
                        "importance": 0.0947
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0836
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0491
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0438
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.036
                      }
                    ],
                    "decomposition": {
                      "base": 6.8561,
                      "items": [
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0795
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0363
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0329
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0323
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0255
                        }
                      ],
                      "others": -0.0416,
                      "total": 6.9552,
                      "log_link": false,
                      "margin_base": 6.856052,
                      "item_margins": [
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.079529
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.036336
                        },
                        {
                          "name": "rating",
                          "margin": -0.032908
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.032349
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.025476
                        }
                      ],
                      "others_margin": -0.041664
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 8,
                  "role_matches": 6,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "role_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9922, quality 0.437)",
              "stats": {
                "key_pass": 0.8404,
                "expected_assists": 0.0651,
                "assists": 0.0731,
                "assist_rate": 0.0731,
                "expected_goals": 0.0506,
                "goals": 0.0542,
                "goal_rate": 0.0542,
                "shots_on_target": 0.1911,
                "total_shots": 0.6276,
                "rating": 6.9552,
                "minutes": 78.64,
                "total_pass": 50.3894,
                "accurate_pass": 46.1114,
                "duels_won": 5.353,
                "total_long_balls": 2.9265,
                "accurate_long_balls": 2.081,
                "total_own_half_passes": 21.9496,
                "accurate_own_half_passes": 20.5492,
                "total_opp_half_passes": 28.4397,
                "accurate_opp_half_passes": 25.5622,
                "crosses_total": 0.2031,
                "crosses_accurate": 0.0,
                "touches": 63.6843,
                "possession_lost": 7.7607,
                "dispossessed": 1.223,
                "duels_lost": 3.9204,
                "aerial_won": 0.2389,
                "aerial_lost": 0.3194,
                "interceptions": 0.6236,
                "tackles_won": 1.0944,
                "tackles": 1.5641,
                "clearances": 0.6093,
                "total_contest": 2.8808,
                "won_contest": 2.0832,
                "challenges_lost": 0.6777,
                "fouls": 0.9028,
                "fouls_drawn": 1.4668,
                "blocks": 0.1247,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.1845,
                "xgot": 0.0,
                "ball_carries": 21.6318,
                "total_progression": 82.5252,
                "progressive_carries": 2.0523,
                "shots_off_target": 0.4365
              },
              "params": {
                "market_value_eur": 2300000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9922,
                "reference_quality": 0.505,
                "history_matches": 8,
                "history_shrink": 0.3846,
                "market_value_known": true
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0300)",
              "stats": {
                "key_pass": 0.8404,
                "expected_assists": 0.0651,
                "assists": 0.0709,
                "assist_rate": 0.0709,
                "expected_goals": 0.0506,
                "goals": 0.0526,
                "goal_rate": 0.0526,
                "shots_on_target": 0.1854,
                "total_shots": 0.6088,
                "rating": 6.9552,
                "minutes": 78.64,
                "total_pass": 50.3894,
                "accurate_pass": 46.1114,
                "duels_won": 5.353,
                "total_long_balls": 2.9265,
                "accurate_long_balls": 2.081,
                "total_own_half_passes": 21.9496,
                "accurate_own_half_passes": 20.5492,
                "total_opp_half_passes": 28.4397,
                "accurate_opp_half_passes": 25.5622,
                "crosses_total": 0.197,
                "crosses_accurate": 0.0,
                "touches": 63.6843,
                "possession_lost": 7.7607,
                "dispossessed": 1.223,
                "duels_lost": 3.9204,
                "aerial_won": 0.2389,
                "aerial_lost": 0.3194,
                "interceptions": 0.634,
                "tackles_won": 1.0761,
                "tackles": 1.5641,
                "clearances": 0.6093,
                "total_contest": 2.8808,
                "won_contest": 2.0832,
                "challenges_lost": 0.6777,
                "fouls": 0.8757,
                "fouls_drawn": 1.4665,
                "blocks": 0.1247,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.1845,
                "xgot": 0.0,
                "ball_carries": 21.6318,
                "total_progression": 82.5252,
                "progressive_carries": 2.0523,
                "shots_off_target": 0.4365
              },
              "params": {
                "blend_weight": 0.03,
                "history_matches": 8,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.8738,
                "prior_reliability": 0.12,
                "competition": "La Liga",
                "squad": "Málaga"
              },
              "changes": [
                {
                  "stat": "fouls",
                  "before": 0.9028,
                  "after": 0.8757
                },
                {
                  "stat": "totalShots",
                  "before": 0.6276,
                  "after": 0.6088
                },
                {
                  "stat": "wonTackle",
                  "before": 1.0944,
                  "after": 1.0761
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.6236,
                  "after": 0.634
                },
                {
                  "stat": "totalCross",
                  "before": 0.2031,
                  "after": 0.197
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.1911,
                  "after": 0.1854
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0.8404,
                "expected_assists": 0.0651,
                "assists": 0.0709,
                "assist_rate": 0.0709,
                "expected_goals": 0.0506,
                "goals": 0.0526,
                "goal_rate": 0.0526,
                "shots_on_target": 0.1854,
                "total_shots": 0.6219,
                "rating": 6.9552,
                "minutes": 78.64,
                "total_pass": 50.3894,
                "accurate_pass": 46.1114,
                "duels_won": 5.353,
                "total_long_balls": 2.9265,
                "accurate_long_balls": 2.081,
                "total_own_half_passes": 21.9496,
                "accurate_own_half_passes": 20.5492,
                "total_opp_half_passes": 28.4397,
                "accurate_opp_half_passes": 25.5622,
                "crosses_total": 0.197,
                "crosses_accurate": 0.0,
                "touches": 63.6843,
                "possession_lost": 7.7607,
                "dispossessed": 1.223,
                "duels_lost": 3.9204,
                "aerial_won": 0.2389,
                "aerial_lost": 0.3194,
                "interceptions": 0.634,
                "tackles_won": 1.0761,
                "tackles": 1.5641,
                "clearances": 0.6093,
                "total_contest": 2.8808,
                "won_contest": 2.0832,
                "challenges_lost": 0.6777,
                "fouls": 0.8757,
                "fouls_drawn": 1.4665,
                "blocks": 0.1247,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.1845,
                "xgot": 0.0,
                "ball_carries": 21.6318,
                "total_progression": 82.5252,
                "progressive_carries": 2.0523,
                "shots_off_target": 0.4365
              },
              "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": 0.8404,
                "expected_assists": 0.0651,
                "assists": 0.0709,
                "assist_rate": 0.0709,
                "expected_goals": 0.049,
                "goals": 0.0509,
                "goal_rate": 0.0509,
                "shots_on_target": 0.1794,
                "total_shots": 0.6017,
                "rating": 6.9552,
                "minutes": 78.64,
                "total_pass": 50.3894,
                "accurate_pass": 46.1114,
                "duels_won": 5.353,
                "total_long_balls": 2.9265,
                "accurate_long_balls": 2.081,
                "total_own_half_passes": 21.9496,
                "accurate_own_half_passes": 20.5492,
                "total_opp_half_passes": 28.4397,
                "accurate_opp_half_passes": 25.5622,
                "crosses_total": 0.197,
                "crosses_accurate": 0.0,
                "touches": 63.6843,
                "possession_lost": 7.7607,
                "dispossessed": 1.223,
                "duels_lost": 3.9204,
                "aerial_won": 0.9,
                "aerial_lost": 0.3194,
                "interceptions": 0.634,
                "tackles_won": 1.0761,
                "tackles": 1.5641,
                "clearances": 0.6093,
                "total_contest": 2.8808,
                "won_contest": 2.0832,
                "challenges_lost": 0.6777,
                "fouls": 0.8757,
                "fouls_drawn": 1.4665,
                "blocks": 0.1247,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.1785,
                "xgot": 0.0,
                "ball_carries": 21.6318,
                "total_progression": 82.5252,
                "progressive_carries": 2.0523,
                "shots_off_target": 0.4223,
                "duel_xg_multiplier": 0.9674,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.428,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Pablo Ibáñez",
                "opponent_faced": "Pablo Ibáñez",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Pablo Ibáñez",
                  "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                  "duel_win_rate": 0.428,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v1",
                  "xg_multiplier": 0.9674,
                  "skill_edge": -0.0102,
                  "height_edge": -0.012,
                  "attacker_skill": 0.4374,
                  "defender_skill": 0.46,
                  "attacker_role": "CM",
                  "attacker_mv_price_index": 0.9,
                  "defender_adjusted_parts": [
                    {
                      "player": "Pablo Ibáñez",
                      "market_value": 4099999,
                      "role": "CDM",
                      "price_index": 0.85,
                      "adjusted_quality": 0.46
                    }
                  ],
                  "xg_override": 0.049
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.2389,
                  "after": 0.9
                },
                {
                  "stat": "totalShots",
                  "before": 0.6219,
                  "after": 0.6017
                },
                {
                  "stat": "shotOffTarget",
                  "before": 0.4365,
                  "after": 0.4223
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.1854,
                  "after": 0.1794
                },
                {
                  "stat": "bigChanceMissed",
                  "before": 0.1845,
                  "after": 0.1785
                }
              ]
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "key_pass": 0.8404,
                "expected_assists": 0.0651,
                "assist_rate": 0.0709,
                "assists": 0,
                "expected_goals": 0.049,
                "goal_rate": 0.0509,
                "goals": 0,
                "shots_on_target": 0.1794,
                "total_shots": 0.6017,
                "rating": 6.9552,
                "minutes": 78.64,
                "total_pass": 50.3894,
                "accurate_pass": 46.1114,
                "duels_won": 5.353,
                "total_long_balls": 2.9265,
                "accurate_long_balls": 2.081,
                "total_own_half_passes": 21.9496,
                "accurate_own_half_passes": 20.5492,
                "total_opp_half_passes": 28.4397,
                "accurate_opp_half_passes": 25.5622,
                "crosses_total": 0.197,
                "crosses_accurate": 0.0,
                "touches": 63.6843,
                "possession_lost": 7.7607,
                "dispossessed": 1.223,
                "duels_lost": 3.9204,
                "aerial_won": 0.9,
                "aerial_lost": 0.3194,
                "interceptions": 0.634,
                "tackles_won": 1.0761,
                "tackles": 1.5641,
                "clearances": 0.6093,
                "total_contest": 2.8808,
                "won_contest": 2.0832,
                "challenges_lost": 0.6777,
                "fouls": 0.8757,
                "fouls_drawn": 1.4665,
                "blocks": 0.1247,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.1785,
                "xgot": 0.0,
                "ball_carries": 21.6318,
                "total_progression": 82.5252,
                "progressive_carries": 2.0523,
                "shots_off_target": 0.4223,
                "duel_xg_multiplier": 0.9674,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.428,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Pablo Ibáñez",
                "opponent_faced": "Pablo Ibáñez",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "scoreline_reset": true,
                "team_goals": 0
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.87 (squad xG sum 1.1744, xG scale 0.7400, xA scale 0.7968, team xA 0.56 = 0.65 x lambda)",
              "stats": {
                "key_pass": 0.8404,
                "expected_assists": 0.0519,
                "assist_rate": 0.0709,
                "assists": 0,
                "expected_goals": 0.0363,
                "goal_rate": 0.0509,
                "goals": 0,
                "shots_on_target": 0.1794,
                "total_shots": 0.6017,
                "rating": 6.9552,
                "minutes": 78.64,
                "total_pass": 50.3894,
                "accurate_pass": 46.1114,
                "duels_won": 5.353,
                "total_long_balls": 2.9265,
                "accurate_long_balls": 2.081,
                "total_own_half_passes": 21.9496,
                "accurate_own_half_passes": 20.5492,
                "total_opp_half_passes": 28.4397,
                "accurate_opp_half_passes": 25.5622,
                "crosses_total": 0.197,
                "crosses_accurate": 0.0,
                "touches": 63.6843,
                "possession_lost": 7.7607,
                "dispossessed": 1.223,
                "duels_lost": 3.9204,
                "aerial_won": 0.9,
                "aerial_lost": 0.3194,
                "interceptions": 0.634,
                "tackles_won": 1.0761,
                "tackles": 1.5641,
                "clearances": 0.6093,
                "total_contest": 2.8808,
                "won_contest": 2.0832,
                "challenges_lost": 0.6777,
                "fouls": 0.8757,
                "fouls_drawn": 1.4665,
                "blocks": 0.1247,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.1785,
                "xgot": 0.0,
                "ball_carries": 21.6318,
                "total_progression": 82.5252,
                "progressive_carries": 2.0523,
                "shots_off_target": 0.4223,
                "duel_xg_multiplier": 0.9674,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.428,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Pablo Ibáñez",
                "opponent_faced": "Pablo Ibáñez",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0192,
                "creation_factor": 1.0504
              },
              "params": {
                "team_lambda": 0.869,
                "squad_xg_sum": 1.1744,
                "squad_xa_sum": 0.7089,
                "team_expected_assists": 0.5648,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.74,
                "xa_scale": 0.7968,
                "opponent_lambda": 1.257,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.049,
                  "after": 0.0363
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0651,
                  "after": 0.0519
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 72.0)",
              "stats": {
                "key_pass": 0.8404,
                "expected_assists": 0.0519,
                "assist_rate": 0.0709,
                "assists": 0,
                "expected_goals": 0.0363,
                "goal_rate": 0.0509,
                "goals": 0,
                "shots_on_target": 0.1794,
                "total_shots": 0.6017,
                "rating": 6.9552,
                "minutes": 78.64,
                "total_pass": 50.3894,
                "accurate_pass": 46.1114,
                "duels_won": 5.353,
                "total_long_balls": 2.9265,
                "accurate_long_balls": 2.081,
                "total_own_half_passes": 21.9496,
                "accurate_own_half_passes": 20.5492,
                "total_opp_half_passes": 28.4397,
                "accurate_opp_half_passes": 25.5622,
                "crosses_total": 0.197,
                "crosses_accurate": 0.0,
                "touches": 63.6843,
                "possession_lost": 7.7607,
                "dispossessed": 1.223,
                "duels_lost": 3.9204,
                "aerial_won": 0.9,
                "aerial_lost": 0.3194,
                "interceptions": 0.634,
                "tackles_won": 1.0761,
                "tackles": 1.5641,
                "clearances": 0.6093,
                "total_contest": 2.8808,
                "won_contest": 2.0832,
                "challenges_lost": 0.6777,
                "fouls": 0.8757,
                "fouls_drawn": 1.4665,
                "blocks": 0.1247,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.1785,
                "xgot": 0.0,
                "ball_carries": 21.6318,
                "total_progression": 82.5252,
                "progressive_carries": 2.0523,
                "shots_off_target": 0.4223,
                "duel_xg_multiplier": 0.9674,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.428,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Pablo Ibáñez",
                "opponent_faced": "Pablo Ibáñez",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0192,
                "creation_factor": 1.0504,
                "fifa_overall": 72.0
              },
              "params": {
                "match_squad_rank": 1,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 4238,
                "fifa_rank": 4261.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 72.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "key_pass": 0.8404,
                "expected_assists": 0.0519,
                "assist_rate": 0.0709,
                "assists": 0,
                "expected_goals": 0.0363,
                "goal_rate": 0.0509,
                "goals": 0,
                "shots_on_target": 0.1794,
                "total_shots": 0.6017,
                "rating": 6.9552,
                "minutes": 78.64,
                "total_pass": 50.3894,
                "accurate_pass": 46.1114,
                "duels_won": 5.353,
                "total_long_balls": 2.9265,
                "accurate_long_balls": 2.081,
                "total_own_half_passes": 21.9496,
                "accurate_own_half_passes": 20.5492,
                "total_opp_half_passes": 28.4397,
                "accurate_opp_half_passes": 25.5622,
                "crosses_total": 0.197,
                "crosses_accurate": 0.0,
                "touches": 63.6843,
                "possession_lost": 7.7607,
                "dispossessed": 1.223,
                "duels_lost": 3.9204,
                "aerial_won": 0.9,
                "aerial_lost": 0.3194,
                "interceptions": 0.634,
                "tackles_won": 1.0761,
                "tackles": 1.5641,
                "clearances": 0.6093,
                "total_contest": 2.8808,
                "won_contest": 2.0832,
                "challenges_lost": 0.6777,
                "fouls": 0.8757,
                "fouls_drawn": 1.4665,
                "blocks": 0.1247,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.1785,
                "xgot": 0.0,
                "ball_carries": 21.6318,
                "total_progression": 82.5252,
                "progressive_carries": 2.0523,
                "shots_off_target": 0.4223,
                "duel_xg_multiplier": 0.9674,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.428,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Pablo Ibáñez",
                "opponent_faced": "Pablo Ibáñez",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0356,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0192,
                "creation_factor": 1.0504,
                "fifa_overall": 72.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0356,
                "goal_rate": 0.0509,
                "scorer_weight": 0.037,
                "squad_weight_total": 0.91,
                "weight_share": 0.0407,
                "finishing_factor": 1.0192,
                "appearance_weight": 1.0,
                "weight_rank": 7,
                "eligible_players": 13
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "key_pass": 0.8404,
                "expected_assists": 0.0519,
                "assist_rate": 0.0709,
                "assists": 0,
                "expected_goals": 0.0363,
                "goal_rate": 0.0509,
                "goals": 0,
                "shots_on_target": 0.1794,
                "total_shots": 0.6017,
                "rating": 6.9552,
                "minutes": 78.64,
                "total_pass": 50.3894,
                "accurate_pass": 46.1114,
                "duels_won": 5.353,
                "total_long_balls": 2.9265,
                "accurate_long_balls": 2.081,
                "total_own_half_passes": 21.9496,
                "accurate_own_half_passes": 20.5492,
                "total_opp_half_passes": 28.4397,
                "accurate_opp_half_passes": 25.5622,
                "crosses_total": 0.197,
                "crosses_accurate": 0.0,
                "touches": 63.6843,
                "possession_lost": 7.7607,
                "dispossessed": 1.223,
                "duels_lost": 3.9204,
                "aerial_won": 0.9,
                "aerial_lost": 0.3194,
                "interceptions": 0.634,
                "tackles_won": 1.0761,
                "tackles": 1.5641,
                "clearances": 0.6093,
                "total_contest": 2.8808,
                "won_contest": 2.0832,
                "challenges_lost": 0.6777,
                "fouls": 0.8757,
                "fouls_drawn": 1.4665,
                "blocks": 0.1247,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.1785,
                "xgot": 0.0,
                "ball_carries": 21.6318,
                "total_progression": 82.5252,
                "progressive_carries": 2.0523,
                "shots_off_target": 0.4223,
                "duel_xg_multiplier": 0.9674,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.428,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Pablo Ibáñez",
                "opponent_faced": "Pablo Ibáñez",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0356,
                "projected_assists": 0,
                "assist_probability": 0.0506,
                "finishing_factor": 1.0192,
                "creation_factor": 1.0504,
                "fifa_overall": 72.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0506,
                "assist_rate": 0.0709,
                "provider_weight": 0.0545,
                "squad_weight_total": 0.5067,
                "weight_share": 0.1076,
                "creation_factor": 1.0504,
                "appearance_weight": 1.0,
                "weight_rank": 4,
                "eligible_players": 13
              }
            }
          ]
        },
        "Adrián Niño": {
          "player_id": 1402927,
          "position": "F",
          "position_depth": "F",
          "is_starter": true,
          "shirt_number": 21,
          "height": 186,
          "market_value": 1900000,
          "stats": {
            "expected_goals": 0.2383,
            "goal_rate": 0.3539,
            "goals": 0,
            "shots_on_target": 1,
            "total_shots": 2,
            "expected_assists": 0.0318,
            "key_pass": 1,
            "rating": 6.799,
            "minutes": 81,
            "total_pass": 5,
            "accurate_pass": 4,
            "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": 11,
            "possession_lost": 2.7059,
            "dispossessed": 0.2269,
            "duels_lost": 3,
            "aerial_lost": 2,
            "total_contest": 1,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assist_rate": 0.0,
            "assists": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.2968,
            "offsides": 0,
            "ball_carries": 2,
            "total_progression": 10,
            "progressive_carries": 1,
            "shots_off_target": 1,
            "duel_xg_multiplier": 0.993,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.3,
            "aerial_won": 2,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.195,
            "pressing_faced": "LOW",
            "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "numerical_situation": "1v2",
            "opponent_defenders": "Ville Koski, Nicolás Valentini",
            "opponent_faced": "Ville Koski, Nicolás Valentini",
            "antagonist_source": "attacking_duel",
            "projected_goals": 0,
            "goal_probability": 0.212,
            "projected_assists": 0,
            "assist_probability": 0.0313,
            "finishing_factor": 1.0855,
            "creation_factor": 0.8,
            "fifa_overall": 72.0
          },
          "latest_10_games": [
            {
              "match_id": 16421073,
              "match_date": "2026-10-18",
              "home_team": "Málaga CF",
              "away_team": "Real Sociedad",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 82,
                "rating": 7.7,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.2679,
                "expected_assists": 0.0527,
                "total_shots": 3,
                "shots_on_target": 2,
                "total_pass": 6,
                "accurate_pass": 4,
                "key_pass": 1,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421062,
              "match_date": "2026-10-09",
              "home_team": "Málaga CF",
              "away_team": "Espanyol",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Málaga CF",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 28,
                "rating": 7.5,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1032,
                "expected_assists": 0.0116,
                "total_shots": 2,
                "shots_on_target": 2,
                "total_pass": 5,
                "accurate_pass": 5,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416303,
              "match_date": "2026-09-20",
              "home_team": "Getafe",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Málaga CF",
              "opponent": "Getafe",
              "stats": {
                "minutes": 45,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0803,
                "expected_assists": 0.0038,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 7,
                "accurate_pass": 5,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416338,
              "match_date": "2026-09-17",
              "home_team": "Málaga CF",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Málaga CF",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 29,
                "rating": 6.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.289,
                "expected_assists": 0.002,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 4,
                "accurate_pass": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416347,
              "match_date": "2026-09-13",
              "home_team": "Celta Vigo",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Málaga CF",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 23,
                "rating": 7.6,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1408,
                "expected_assists": 0.0015,
                "total_shots": 3,
                "shots_on_target": 1,
                "shots_off_target": 2,
                "total_pass": 1,
                "accurate_pass": 1,
                "key_pass": 1,
                "aerial_won": 1,
                "duels_won": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 4211,
            "combined_rank_score": 2241.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 4265.0,
            "fifa_overall": 72.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 9,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.799,
            "source_file": "data/player_rankings.csv",
            "player_name": "Adrián Niño",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Léo Scienza",
                  "ranking": 4206
                },
                {
                  "player_name": "Iván Villar",
                  "ranking": 4207
                },
                {
                  "player_name": "Arthur Avom Ebong",
                  "ranking": 4208
                },
                {
                  "player_name": "Ángel Pérez",
                  "ranking": 4209
                },
                {
                  "player_name": "Salomón Rondón",
                  "ranking": 4210
                }
              ],
              "lower": [
                {
                  "player_name": "Anthony Lopes",
                  "ranking": 4212
                },
                {
                  "player_name": "Thorgan Hazard",
                  "ranking": 4213
                },
                {
                  "player_name": "Kenny Lala",
                  "ranking": 4214
                },
                {
                  "player_name": "Morgan Sanson",
                  "ranking": 4215
                },
                {
                  "player_name": "Hamari Traoré",
                  "ranking": 4216
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.562,
          "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",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "expectedGoals",
              "goals",
              "rating",
              "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",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 5,
            "data_confidence": 0.562,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 0.9899,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (F_service) evaluated 5 historical appearances across 7 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.3277,
                "goals": 0.3601,
                "goal_rate": 0.3601,
                "shots_on_target": 1.0062,
                "total_shots": 2.3507,
                "expected_assists": 0.0403,
                "key_pass": 0.5974,
                "rating": 6.799,
                "minutes": 80.67,
                "total_pass": 4.9307,
                "accurate_pass": 4.0018,
                "duels_won": 1.17,
                "total_long_balls": 0.2696,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 3.2122,
                "accurate_opp_half_passes": 2.2833,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 11.2534,
                "possession_lost": 2.7335,
                "dispossessed": 0.2292,
                "duels_lost": 2.5801,
                "aerial_lost": 1.6168,
                "total_contest": 0.7341,
                "won_contest": 0.4645,
                "ball_recovery": 0.4645,
                "challenges_lost": 0.1948,
                "fouls": 0.4104,
                "fouls_drawn": 0.1408,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0,
                "tackles_won": 0.2292,
                "tackles": 0.2292,
                "clearances": 0.1948,
                "blocks": 0.2696,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.3349,
                "xgot": 0.408,
                "offsides": 0.4352,
                "ball_carries": 1.8997,
                "total_progression": 10.1091,
                "progressive_carries": 0.6301,
                "shots_off_target": 1.3445
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 6,
                  "trained_at": "2026-10-23T10:05:54.625928+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 611,
                    "rows": 16533
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Real Sociedad",
                    "minutes": 82.0,
                    "is_starting": true,
                    "weight": 0.2696,
                    "rating": 7.7
                  },
                  {
                    "match_date": "2026-10-09",
                    "opponent": "Espanyol",
                    "minutes": 28.0,
                    "is_starting": false,
                    "weight": 0.2292,
                    "rating": 7.5
                  },
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Getafe",
                    "minutes": 45.0,
                    "is_starting": false,
                    "weight": 0.1948,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Villarreal",
                    "minutes": 29.0,
                    "is_starting": false,
                    "weight": 0.1656,
                    "rating": 6.1
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Celta Vigo",
                    "minutes": 23.0,
                    "is_starting": false,
                    "weight": 0.1408,
                    "rating": 7.6
                  }
                ],
                "feature_row": {
                  "history_matches": 5.0,
                  "is_starting_11": 1.0,
                  "expectedGoals": 0.1792,
                  "totalOppositionHalfPasses": 3.2122,
                  "accurateOppositionHalfPasses": 2.2833,
                  "accuratePass": 4.0017,
                  "totalShots": 2.05
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.32774147391319275,
                    "model_output": 0.3277,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2858
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0881
                      },
                      {
                        "name": "goals",
                        "importance": 0.0357
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0272
                      },
                      {
                        "name": "bigChanceMissed",
                        "importance": 0.0231
                      }
                    ],
                    "decomposition": {
                      "base": 0.1979,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0791
                        },
                        {
                          "name": "goals",
                          "contribution": 0.0217
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.021
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": 0.0133
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0099
                        }
                      ],
                      "others": 0.0046,
                      "total": 0.3277,
                      "log_link": true,
                      "margin_base": -1.619934,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.336111
                        },
                        {
                          "name": "goals",
                          "margin": 0.075366
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.067842
                        },
                        {
                          "name": "ballRecovery",
                          "margin": 0.040778
                        },
                        {
                          "name": "totalPass",
                          "margin": -0.030042
                        }
                      ],
                      "others_margin": 0.01435
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.3600524365901947,
                    "model_output": 0.3601,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1497
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0696
                      },
                      {
                        "name": "goals",
                        "importance": 0.0577
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0307
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0286
                      }
                    ],
                    "decomposition": {
                      "base": 0.2023,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0724
                        },
                        {
                          "name": "goals",
                          "contribution": 0.0295
                        },
                        {
                          "name": "dispossessed",
                          "contribution": -0.0124
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.0123
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": 0.0126
                        }
                      ],
                      "others": 0.0434,
                      "total": 0.3601,
                      "log_link": true,
                      "margin_base": -1.597983,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.305872
                        },
                        {
                          "name": "goals",
                          "margin": 0.101954
                        },
                        {
                          "name": "dispossessed",
                          "margin": -0.041774
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": 0.041263
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": 0.040601
                        }
                      ],
                      "others_margin": 0.128561
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 1.0061969757080078,
                    "model_output": 1.0062,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2171
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0661
                      },
                      {
                        "name": "goals",
                        "importance": 0.0553
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0475
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0308
                      }
                    ],
                    "decomposition": {
                      "base": 0.5362,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1902
                        },
                        {
                          "name": "goals",
                          "contribution": 0.0835
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0831
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": 0.056
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": 0.0361
                        }
                      ],
                      "others": 0.0211,
                      "total": 1.0062,
                      "log_link": true,
                      "margin_base": -0.623262,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.303633
                        },
                        {
                          "name": "goals",
                          "margin": 0.108752
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.097669
                        },
                        {
                          "name": "ballRecovery",
                          "margin": 0.060784
                        },
                        {
                          "name": "totalShots_p90",
                          "margin": 0.037289
                        }
                      ],
                      "others_margin": 0.021313
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 2.350706100463867,
                    "model_output": 2.3507,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2864
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0656
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.051
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.031
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0298
                      }
                    ],
                    "decomposition": {
                      "base": 1.3807,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.4937
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.1828
                        },
                        {
                          "name": "goals",
                          "contribution": 0.1425
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0609
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.0555
                        }
                      ],
                      "others": 0.0346,
                      "total": 2.3507,
                      "log_link": false,
                      "margin_base": 1.380749,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.493656
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.182754
                        },
                        {
                          "name": "goals",
                          "margin": 0.142482
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.060886
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": 0.055465
                        }
                      ],
                      "others_margin": 0.034715
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.04034889489412308,
                    "model_output": 0.0403,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.1157
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0645
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0607
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0558
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 0.0644,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.015
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.0102
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0069
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.006
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0043
                        }
                      ],
                      "others": -0.0117,
                      "total": 0.0403,
                      "log_link": true,
                      "margin_base": -2.741965,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.209412
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.137229
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.104781
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.101668
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.079722
                        }
                      ],
                      "others_margin": -0.254239
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.5974434018135071,
                    "model_output": 0.5974,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1481
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1244
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.1112
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.052
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0395
                      }
                    ],
                    "decomposition": {
                      "base": 0.6805,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1979
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0612
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.0525
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0439
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0331
                        }
                      ],
                      "others": -0.0903,
                      "total": 0.5974,
                      "log_link": true,
                      "margin_base": -0.384987,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.255311
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.072277
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.066402
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.059165
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.047083
                        }
                      ],
                      "others_margin": -0.140492
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.798958778381348,
                    "model_output": 6.799,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.059
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0483
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0421
                      },
                      {
                        "name": "rating",
                        "importance": 0.0418
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0415
                      }
                    ],
                    "decomposition": {
                      "base": 6.7683,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.058
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.0257
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": -0.0188
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0175
                        },
                        {
                          "name": "bigChanceMissed",
                          "contribution": 0.0156
                        }
                      ],
                      "others": -0.0323,
                      "total": 6.799,
                      "log_link": false,
                      "margin_base": 6.768281,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.058042
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": 0.025684
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": -0.018809
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.017483
                        },
                        {
                          "name": "bigChanceMissed",
                          "margin": 0.015577
                        }
                      ],
                      "others_margin": -0.032333
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 5,
                  "role_matches": 1,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "all_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9899, quality 0.437)",
              "stats": {
                "expected_goals": 0.3244,
                "goals": 0.3564,
                "goal_rate": 0.3564,
                "shots_on_target": 0.996,
                "total_shots": 2.327,
                "expected_assists": 0.0399,
                "key_pass": 0.5914,
                "rating": 6.799,
                "minutes": 80.67,
                "total_pass": 4.8809,
                "accurate_pass": 3.9614,
                "duels_won": 1.1582,
                "total_long_balls": 0.2669,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 3.1798,
                "accurate_opp_half_passes": 2.2602,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 11.1397,
                "possession_lost": 2.7059,
                "dispossessed": 0.2269,
                "duels_lost": 2.554,
                "aerial_lost": 1.6005,
                "total_contest": 0.7267,
                "won_contest": 0.4598,
                "ball_recovery": 0.4598,
                "challenges_lost": 0.1928,
                "fouls": 0.4063,
                "fouls_drawn": 0.1394,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0,
                "tackles_won": 0.2269,
                "tackles": 0.2269,
                "clearances": 0.1928,
                "blocks": 0.2669,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.3315,
                "xgot": 0.4039,
                "offsides": 0.4308,
                "ball_carries": 1.8805,
                "total_progression": 10.007,
                "progressive_carries": 0.6237,
                "shots_off_target": 1.3309
              },
              "params": {
                "market_value_eur": 1900000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9899,
                "reference_quality": 0.505,
                "history_matches": 5,
                "history_shrink": 0.5,
                "market_value_known": true
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.3244,
                "goals": 0.3564,
                "goal_rate": 0.3564,
                "shots_on_target": 0.996,
                "total_shots": 2.327,
                "expected_assists": 0.0399,
                "key_pass": 0.5914,
                "rating": 6.799,
                "minutes": 80.67,
                "total_pass": 4.8809,
                "accurate_pass": 3.9614,
                "duels_won": 1.1582,
                "total_long_balls": 0.2669,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 3.1798,
                "accurate_opp_half_passes": 2.2602,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 11.1397,
                "possession_lost": 2.7059,
                "dispossessed": 0.2269,
                "duels_lost": 2.554,
                "aerial_lost": 1.6005,
                "total_contest": 0.7267,
                "won_contest": 0.4598,
                "ball_recovery": 0.4598,
                "challenges_lost": 0.1928,
                "fouls": 0.4063,
                "fouls_drawn": 0.1394,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0,
                "tackles_won": 0.2269,
                "tackles": 0.2269,
                "clearances": 0.1928,
                "blocks": 0.2669,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.3315,
                "xgot": 0.4039,
                "offsides": 0.4308,
                "ball_carries": 1.8805,
                "total_progression": 10.007,
                "progressive_carries": 0.6237,
                "shots_off_target": 1.3309
              },
              "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.3221,
                "goals": 0.3539,
                "goal_rate": 0.3539,
                "shots_on_target": 0.989,
                "total_shots": 2.3107,
                "expected_assists": 0.0399,
                "key_pass": 0.5914,
                "rating": 6.799,
                "minutes": 80.67,
                "total_pass": 4.8809,
                "accurate_pass": 3.9614,
                "duels_won": 1.1582,
                "total_long_balls": 0.2669,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 3.1798,
                "accurate_opp_half_passes": 2.2602,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 11.1397,
                "possession_lost": 2.7059,
                "dispossessed": 0.2269,
                "duels_lost": 2.554,
                "aerial_lost": 1.6005,
                "total_contest": 0.7267,
                "won_contest": 0.4598,
                "ball_recovery": 0.4598,
                "challenges_lost": 0.1928,
                "fouls": 0.4063,
                "fouls_drawn": 0.1394,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0,
                "tackles_won": 0.2269,
                "tackles": 0.2269,
                "clearances": 0.1928,
                "blocks": 0.2669,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.3292,
                "xgot": 0.4011,
                "offsides": 0.4308,
                "ball_carries": 1.8805,
                "total_progression": 10.007,
                "progressive_carries": 0.6237,
                "shots_off_target": 1.3216,
                "duel_xg_multiplier": 0.993,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.195,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Ville Koski, Nicolás Valentini",
                "opponent_faced": "Ville Koski, Nicolás Valentini",
                "antagonist_source": "attacking_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Ville Koski, Nicolás Valentini",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                  "duel_win_rate": 0.195,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v2",
                  "xg_multiplier": 0.993,
                  "skill_edge": -0.0108,
                  "height_edge": 0.006,
                  "attacker_skill": 0.4374,
                  "defender_skill": 0.4613,
                  "attacker_role": "ST",
                  "attacker_mv_price_index": 1.0,
                  "defender_adjusted_parts": [
                    {
                      "player": "Ville Koski",
                      "market_value": 4300000,
                      "role": "CB",
                      "price_index": 0.75,
                      "adjusted_quality": 0.4712
                    },
                    {
                      "player": "Nicolás Valentini",
                      "market_value": 3100000,
                      "role": "CB",
                      "price_index": 0.75,
                      "adjusted_quality": 0.4515
                    }
                  ],
                  "xg_override": 0.3221
                }
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 2.327,
                  "after": 2.3107
                },
                {
                  "stat": "shotOffTarget",
                  "before": 1.3309,
                  "after": 1.3216
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.996,
                  "after": 0.989
                }
              ]
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "expected_goals": 0.3221,
                "goal_rate": 0.3539,
                "goals": 0,
                "shots_on_target": 0.989,
                "total_shots": 2.3107,
                "expected_assists": 0.0399,
                "key_pass": 0.5914,
                "rating": 6.799,
                "minutes": 80.67,
                "total_pass": 4.8809,
                "accurate_pass": 3.9614,
                "duels_won": 1.1582,
                "total_long_balls": 0.2669,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 3.1798,
                "accurate_opp_half_passes": 2.2602,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 11.1397,
                "possession_lost": 2.7059,
                "dispossessed": 0.2269,
                "duels_lost": 2.554,
                "aerial_lost": 1.6005,
                "total_contest": 0.7267,
                "won_contest": 0.4598,
                "ball_recovery": 0.4598,
                "challenges_lost": 0.1928,
                "fouls": 0.4063,
                "fouls_drawn": 0.1394,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.2269,
                "tackles": 0.2269,
                "clearances": 0.1928,
                "blocks": 0.2669,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.3292,
                "xgot": 0.4011,
                "offsides": 0.4308,
                "ball_carries": 1.8805,
                "total_progression": 10.007,
                "progressive_carries": 0.6237,
                "shots_off_target": 1.3216,
                "duel_xg_multiplier": 0.993,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.195,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Ville Koski, Nicolás Valentini",
                "opponent_faced": "Ville Koski, Nicolás Valentini",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "scoreline_reset": true,
                "team_goals": 0
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.87 (squad xG sum 1.1744, xG scale 0.7400, xA scale 0.7968, team xA 0.56 = 0.65 x lambda)",
              "stats": {
                "expected_goals": 0.2383,
                "goal_rate": 0.3539,
                "goals": 0,
                "shots_on_target": 0.989,
                "total_shots": 2.3107,
                "expected_assists": 0.0318,
                "key_pass": 0.5914,
                "rating": 6.799,
                "minutes": 80.67,
                "total_pass": 4.8809,
                "accurate_pass": 3.9614,
                "duels_won": 1.1582,
                "total_long_balls": 0.2669,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 3.1798,
                "accurate_opp_half_passes": 2.2602,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 11.1397,
                "possession_lost": 2.7059,
                "dispossessed": 0.2269,
                "duels_lost": 2.554,
                "aerial_lost": 1.6005,
                "total_contest": 0.7267,
                "won_contest": 0.4598,
                "ball_recovery": 0.4598,
                "challenges_lost": 0.1928,
                "fouls": 0.4063,
                "fouls_drawn": 0.1394,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.2269,
                "tackles": 0.2269,
                "clearances": 0.1928,
                "blocks": 0.2669,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.3292,
                "xgot": 0.2968,
                "offsides": 0.4308,
                "ball_carries": 1.8805,
                "total_progression": 10.007,
                "progressive_carries": 0.6237,
                "shots_off_target": 1.3216,
                "duel_xg_multiplier": 0.993,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.195,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Ville Koski, Nicolás Valentini",
                "opponent_faced": "Ville Koski, Nicolás Valentini",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0855,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 0.869,
                "squad_xg_sum": 1.1744,
                "squad_xa_sum": 0.7089,
                "team_expected_assists": 0.5648,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.74,
                "xa_scale": 0.7968,
                "opponent_lambda": 1.257,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.3221,
                  "after": 0.2383
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0399,
                  "after": 0.0318
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 72.0)",
              "stats": {
                "expected_goals": 0.2383,
                "goal_rate": 0.3539,
                "goals": 0,
                "shots_on_target": 0.989,
                "total_shots": 2.3107,
                "expected_assists": 0.0318,
                "key_pass": 0.5914,
                "rating": 6.799,
                "minutes": 80.67,
                "total_pass": 4.8809,
                "accurate_pass": 3.9614,
                "duels_won": 1.1582,
                "total_long_balls": 0.2669,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 3.1798,
                "accurate_opp_half_passes": 2.2602,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 11.1397,
                "possession_lost": 2.7059,
                "dispossessed": 0.2269,
                "duels_lost": 2.554,
                "aerial_lost": 1.6005,
                "total_contest": 0.7267,
                "won_contest": 0.4598,
                "ball_recovery": 0.4598,
                "challenges_lost": 0.1928,
                "fouls": 0.4063,
                "fouls_drawn": 0.1394,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.2269,
                "tackles": 0.2269,
                "clearances": 0.1928,
                "blocks": 0.2669,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.3292,
                "xgot": 0.2968,
                "offsides": 0.4308,
                "ball_carries": 1.8805,
                "total_progression": 10.007,
                "progressive_carries": 0.6237,
                "shots_off_target": 1.3216,
                "duel_xg_multiplier": 0.993,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.195,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Ville Koski, Nicolás Valentini",
                "opponent_faced": "Ville Koski, Nicolás Valentini",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0855,
                "creation_factor": 0.8,
                "fifa_overall": 72.0
              },
              "params": {
                "match_squad_rank": 9,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 4211,
                "fifa_rank": 4265.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 72.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "expected_goals": 0.2383,
                "goal_rate": 0.3539,
                "goals": 0,
                "shots_on_target": 0.989,
                "total_shots": 2.3107,
                "expected_assists": 0.0318,
                "key_pass": 0.5914,
                "rating": 6.799,
                "minutes": 80.67,
                "total_pass": 4.8809,
                "accurate_pass": 3.9614,
                "duels_won": 1.1582,
                "total_long_balls": 0.2669,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 3.1798,
                "accurate_opp_half_passes": 2.2602,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 11.1397,
                "possession_lost": 2.7059,
                "dispossessed": 0.2269,
                "duels_lost": 2.554,
                "aerial_lost": 1.6005,
                "total_contest": 0.7267,
                "won_contest": 0.4598,
                "ball_recovery": 0.4598,
                "challenges_lost": 0.1928,
                "fouls": 0.4063,
                "fouls_drawn": 0.1394,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.2269,
                "tackles": 0.2269,
                "clearances": 0.1928,
                "blocks": 0.2669,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.3292,
                "xgot": 0.2968,
                "offsides": 0.4308,
                "ball_carries": 1.8805,
                "total_progression": 10.007,
                "progressive_carries": 0.6237,
                "shots_off_target": 1.3216,
                "duel_xg_multiplier": 0.993,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.195,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Ville Koski, Nicolás Valentini",
                "opponent_faced": "Ville Koski, Nicolás Valentini",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.212,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0855,
                "creation_factor": 0.8,
                "fifa_overall": 72.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.212,
                "goal_rate": 0.3539,
                "scorer_weight": 0.2587,
                "squad_weight_total": 0.91,
                "weight_share": 0.2842,
                "finishing_factor": 1.0855,
                "appearance_weight": 1.0,
                "weight_rank": 1,
                "eligible_players": 13
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "expected_goals": 0.2383,
                "goal_rate": 0.3539,
                "goals": 0,
                "shots_on_target": 0.989,
                "total_shots": 2.3107,
                "expected_assists": 0.0318,
                "key_pass": 0.5914,
                "rating": 6.799,
                "minutes": 80.67,
                "total_pass": 4.8809,
                "accurate_pass": 3.9614,
                "duels_won": 1.1582,
                "total_long_balls": 0.2669,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 3.1798,
                "accurate_opp_half_passes": 2.2602,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 11.1397,
                "possession_lost": 2.7059,
                "dispossessed": 0.2269,
                "duels_lost": 2.554,
                "aerial_lost": 1.6005,
                "total_contest": 0.7267,
                "won_contest": 0.4598,
                "ball_recovery": 0.4598,
                "challenges_lost": 0.1928,
                "fouls": 0.4063,
                "fouls_drawn": 0.1394,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.2269,
                "tackles": 0.2269,
                "clearances": 0.1928,
                "blocks": 0.2669,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.3292,
                "xgot": 0.2968,
                "offsides": 0.4308,
                "ball_carries": 1.8805,
                "total_progression": 10.007,
                "progressive_carries": 0.6237,
                "shots_off_target": 1.3216,
                "duel_xg_multiplier": 0.993,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.195,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Ville Koski, Nicolás Valentini",
                "opponent_faced": "Ville Koski, Nicolás Valentini",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.212,
                "projected_assists": 0,
                "assist_probability": 0.0313,
                "finishing_factor": 1.0855,
                "creation_factor": 0.8,
                "fifa_overall": 72.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0313,
                "assist_rate": 0.0,
                "provider_weight": 0.0254,
                "squad_weight_total": 0.5067,
                "weight_share": 0.0502,
                "creation_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 7,
                "eligible_players": 13
              }
            }
          ]
        },
        "Pablo Martínez": {
          "player_id": 927066,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 18,
          "height": 182,
          "market_value": 3100000,
          "stats": {
            "key_pass": 2,
            "expected_assists": 0.1242,
            "assist_rate": 0.1395,
            "assists": 0,
            "expected_goals": 0.0751,
            "goal_rate": 0.1444,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 2,
            "rating": 6.8685,
            "minutes": 82,
            "total_pass": 32,
            "accurate_pass": 27,
            "duels_won": 2,
            "total_long_balls": 3,
            "accurate_long_balls": 2,
            "total_own_half_passes": 14,
            "accurate_own_half_passes": 13,
            "total_opp_half_passes": 18,
            "accurate_opp_half_passes": 14,
            "crosses_total": 6,
            "crosses_accurate": 2,
            "touches": 48,
            "possession_lost": 10.874,
            "dispossessed": 0.4034,
            "duels_lost": 3,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 1,
            "tackles_won": 1,
            "tackles": 1,
            "clearances": 1,
            "total_contest": 1,
            "won_contest": 1,
            "challenges_lost": 1,
            "fouls": 1,
            "fouls_drawn": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0978,
            "ball_carries": 12,
            "total_progression": 38,
            "progressive_carries": 1,
            "shots_off_target": 1,
            "duel_xg_multiplier": 0.9637,
            "dribbles_attempted": 3,
            "dribbles_successful": 1.0,
            "crosses_attempted": 2.0,
            "duel_win_rate": 0.395,
            "pressing_faced": "LOW",
            "matchup_zone": "LM vs CB",
            "numerical_situation": "1v1",
            "opponent_defenders": "Ville Koski",
            "opponent_faced": "Ville Koski",
            "antagonist_source": "attacking_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.0723,
            "projected_assists": 0,
            "assist_probability": 0.1168,
            "finishing_factor": 1.25,
            "creation_factor": 0.9203,
            "fifa_overall": 82.0
          },
          "latest_10_games": [
            {
              "match_id": 16421073,
              "match_date": "2026-10-18",
              "home_team": "Málaga CF",
              "away_team": "Real Sociedad",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 90,
                "rating": 8.5,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.1297,
                "expected_assists": 0.2219,
                "total_shots": 3,
                "shots_on_target": 1,
                "shots_off_target": 2,
                "total_pass": 33,
                "accurate_pass": 27,
                "key_pass": 4,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "duels_won": 5,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421062,
              "match_date": "2026-10-09",
              "home_team": "Málaga CF",
              "away_team": "Espanyol",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 82,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0914,
                "expected_assists": 0.309,
                "total_shots": 3,
                "shots_on_target": 1,
                "shots_off_target": 2,
                "total_pass": 26,
                "accurate_pass": 23,
                "key_pass": 5,
                "tackles": 2,
                "tackles_won": 1,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416303,
              "match_date": "2026-09-20",
              "home_team": "Getafe",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Málaga CF",
              "opponent": "Getafe",
              "stats": {
                "minutes": 23,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0432,
                "total_shots": 0,
                "total_pass": 14,
                "accurate_pass": 14,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416338,
              "match_date": "2026-09-17",
              "home_team": "Málaga CF",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0588,
                "expected_assists": 0.0037,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 23,
                "accurate_pass": 18,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416347,
              "match_date": "2026-09-13",
              "home_team": "Celta Vigo",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.0317,
                "expected_assists": 0.3682,
                "total_shots": 2,
                "shots_on_target": 1,
                "total_pass": 49,
                "accurate_pass": 44,
                "key_pass": 5,
                "tackles": 1,
                "interceptions": 3,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416320,
              "match_date": "2026-09-06",
              "home_team": "Málaga CF",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 59,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0142,
                "expected_assists": 0.039,
                "total_shots": 1,
                "total_pass": 40,
                "accurate_pass": 35,
                "key_pass": 2,
                "interceptions": 1,
                "clearances": 2,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416312,
              "match_date": "2026-08-30",
              "home_team": "Real Madrid",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Málaga CF",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 45,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0153,
                "total_shots": 0,
                "total_pass": 32,
                "accurate_pass": 29,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083710,
              "match_date": "2026-05-23",
              "home_team": "Real Betis",
              "away_team": "Levante UD",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Levante UD",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 86,
                "rating": 7.3,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_assists": 0.6553,
                "total_shots": 0,
                "total_pass": 38,
                "accurate_pass": 34,
                "key_pass": 5,
                "interceptions": 1,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083676,
              "match_date": "2026-05-17",
              "home_team": "Levante UD",
              "away_team": "Mallorca",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Levante UD",
              "opponent": "Mallorca",
              "stats": {
                "minutes": 90,
                "rating": 7.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.2582,
                "total_shots": 0,
                "total_pass": 13,
                "accurate_pass": 8,
                "key_pass": 2,
                "interceptions": 1,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083613,
              "match_date": "2026-05-12",
              "home_team": "Celta Vigo",
              "away_team": "Levante UD",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Levante UD",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 62,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0921,
                "total_shots": 0,
                "total_pass": 47,
                "accurate_pass": 43,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 4,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 1083,
            "combined_rank_score": 444.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 490.0,
            "sofascore_rating": 6.8667,
            "sofascore_appearances": 27.0,
            "fifa_rank": 399.0,
            "fifa_overall": 82.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 5,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.8685,
            "source_file": "data/player_rankings.csv",
            "player_name": "Pablo Martínez",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Davinson Sánchez",
                  "ranking": 1078
                },
                {
                  "player_name": "Robert Sánchez",
                  "ranking": 1079
                },
                {
                  "player_name": "Romelu Lukaku",
                  "ranking": 1080
                },
                {
                  "player_name": "Rafael Delgado",
                  "ranking": 1081
                },
                {
                  "player_name": "Kim Han-Seo",
                  "ranking": 1082
                }
              ],
              "lower": [
                {
                  "player_name": "Ethan Espinoza",
                  "ranking": 1084
                },
                {
                  "player_name": "Ji-Min Rim",
                  "ranking": 1085
                },
                {
                  "player_name": "Rafael Bandeira",
                  "ranking": 1086
                },
                {
                  "player_name": "Guk-yeong Han",
                  "ranking": 1087
                },
                {
                  "player_name": "Ramiro Vaca",
                  "ranking": 1088
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.755,
          "history_matches": 34,
          "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",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "rating",
              "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",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 34,
            "data_confidence": 0.755,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.9974,
            "fbref_prior_metrics": {
              "squad": "Málaga",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 1.0,
              "starts": 0.0,
              "minutes": 45.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.0,
              "prior_reliability": 0.0333
            },
            "rationale": "XGBoost regressor (M_service) evaluated 34 historical appearances across 8 target models; FBref 2026-2027 prior blended (La Liga, Málaga, rel: 0.03, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 1.8209,
                "expected_assists": 0.1563,
                "assists": 0.1402,
                "assist_rate": 0.1402,
                "expected_goals": 0.1056,
                "goals": 0.1506,
                "goal_rate": 0.1506,
                "shots_on_target": 0.415,
                "total_shots": 1.6,
                "rating": 6.8685,
                "minutes": 82.14,
                "total_pass": 32.4452,
                "accurate_pass": 27.3213,
                "duels_won": 2.228,
                "total_long_balls": 3.3253,
                "accurate_long_balls": 1.9786,
                "total_own_half_passes": 13.9673,
                "accurate_own_half_passes": 12.9454,
                "total_opp_half_passes": 18.4779,
                "accurate_opp_half_passes": 14.3759,
                "crosses_total": 6.017,
                "crosses_accurate": 2.1987,
                "touches": 47.8473,
                "possession_lost": 10.9023,
                "dispossessed": 0.4045,
                "duels_lost": 2.6569,
                "aerial_won": 0.3463,
                "aerial_lost": 0.2878,
                "interceptions": 0.6762,
                "tackles_won": 0.5292,
                "tackles": 0.81,
                "clearances": 1.0944,
                "total_contest": 1.1486,
                "won_contest": 0.8041,
                "challenges_lost": 0.7385,
                "fouls": 0.8999,
                "fouls_drawn": 0.2932,
                "blocks": 0.2932,
                "big_chances_created": 0.3959,
                "big_chances_missed": 0.1547,
                "xgot": 0.1375,
                "ball_carries": 11.6656,
                "total_progression": 38.0711,
                "progressive_carries": 0.884,
                "shots_off_target": 1.185
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 7,
                  "trained_at": "2026-10-23T10:05:23.571433+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 903,
                    "rows": 24475
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Real Sociedad",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1506,
                    "rating": 8.5
                  },
                  {
                    "match_date": "2026-10-09",
                    "opponent": "Espanyol",
                    "minutes": 82.0,
                    "is_starting": true,
                    "weight": 0.128,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Getafe",
                    "minutes": 23.0,
                    "is_starting": false,
                    "weight": 0.1088,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Villarreal",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0925,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Celta Vigo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0786,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Levante UD",
                    "minutes": 59.0,
                    "is_starting": true,
                    "weight": 0.0668,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Real Madrid",
                    "minutes": 45.0,
                    "is_starting": false,
                    "weight": 0.0568,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-05-23",
                    "opponent": "Real Betis",
                    "minutes": 86.0,
                    "is_starting": true,
                    "weight": 0.0483,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-05-17",
                    "opponent": "Mallorca",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.041,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-05-12",
                    "opponent": "Celta Vigo",
                    "minutes": 62.0,
                    "is_starting": true,
                    "weight": 0.0349,
                    "rating": 6.8
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 1.0,
                  "creative_index": 1.1411,
                  "totalShots": 1.3465,
                  "expectedGoals": 0.0516,
                  "expectedAssists": 0.2008,
                  "onTargetScoringAttempt": 0.3701
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 1.820925235748291,
                    "model_output": 1.8209,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1647
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1377
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0663
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0524
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0316
                      }
                    ],
                    "decomposition": {
                      "base": 0.8945,
                      "items": [
                        {
                          "name": "creative_index",
                          "contribution": 0.1736
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1395
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.1315
                        },
                        {
                          "name": "totalCross",
                          "contribution": 0.1238
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.0707
                        }
                      ],
                      "others": 0.2873,
                      "total": 1.8209,
                      "log_link": true,
                      "margin_base": -0.111507,
                      "item_margins": [
                        {
                          "name": "creative_index",
                          "margin": 0.177344
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.1228
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.103365
                        },
                        {
                          "name": "totalCross",
                          "margin": 0.08839
                        },
                        {
                          "name": "cross_creative_contribution",
                          "margin": 0.047208
                        }
                      ],
                      "others_margin": 0.171746
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.15630315244197845,
                    "model_output": 0.1563,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1545
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1048
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.1021
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0476
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0472
                      }
                    ],
                    "decomposition": {
                      "base": 0.0859,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0131
                        },
                        {
                          "name": "totalCross",
                          "contribution": 0.0138
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0144
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.009
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0081
                        }
                      ],
                      "others": 0.012,
                      "total": 0.1563,
                      "log_link": true,
                      "margin_base": -2.454719,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": 0.141847
                        },
                        {
                          "name": "totalCross",
                          "margin": 0.130315
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.120212
                        },
                        {
                          "name": "creative_index",
                          "margin": 0.068053
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.057617
                        }
                      ],
                      "others_margin": 0.080717
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.14022137224674225,
                    "model_output": 0.1402,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.0619
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0395
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0343
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0335
                      }
                    ],
                    "decomposition": {
                      "base": 0.0874,
                      "items": [
                        {
                          "name": "creative_index",
                          "contribution": 0.0119
                        },
                        {
                          "name": "totalCross",
                          "contribution": 0.0097
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.0097
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0071
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0064
                        }
                      ],
                      "others": 0.0222,
                      "total": 0.1402,
                      "log_link": true,
                      "margin_base": -2.437263,
                      "item_margins": [
                        {
                          "name": "creative_index",
                          "margin": 0.127244
                        },
                        {
                          "name": "totalCross",
                          "margin": 0.093298
                        },
                        {
                          "name": "keyPass",
                          "margin": 0.085317
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.061524
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.055939
                        }
                      ],
                      "others_margin": 0.172457
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.10557623207569122,
                    "model_output": 0.1056,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedGoals",
                        "importance": 0.134
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.074
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0705
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.039
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0273
                      }
                    ],
                    "decomposition": {
                      "base": 0.094,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0139
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0131
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0115
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0062
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": 0.0046
                        }
                      ],
                      "others": 0.0009,
                      "total": 0.1056,
                      "log_link": true,
                      "margin_base": -2.364919,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.13752
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.129601
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.114495
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.059832
                        },
                        {
                          "name": "interceptionWon",
                          "margin": 0.044599
                        }
                      ],
                      "others_margin": 0.009414
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.15061309933662415,
                    "model_output": 0.1506,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0974
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0527
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0513
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0365
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.03
                      }
                    ],
                    "decomposition": {
                      "base": 0.0993,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0162
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0102
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": 0.008
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.007
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": 0.0067
                        }
                      ],
                      "others": 0.0172,
                      "total": 0.1506,
                      "log_link": true,
                      "margin_base": -2.309444,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.151114
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.084467
                        },
                        {
                          "name": "duelWon_p90",
                          "margin": 0.061816
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.053949
                        },
                        {
                          "name": "interceptionWon",
                          "margin": 0.051324
                        }
                      ],
                      "others_margin": 0.121632
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.4149622321128845,
                    "model_output": 0.415,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1106
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0885
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0762
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0292
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0279
                      }
                    ],
                    "decomposition": {
                      "base": 0.326,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0628
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0518
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0339
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": 0.0215
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0197
                        }
                      ],
                      "others": 0.0065,
                      "total": 0.415,
                      "log_link": true,
                      "margin_base": -1.120773,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.17604
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.125128
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.080171
                        },
                        {
                          "name": "interceptionWon",
                          "margin": 0.05163
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.047089
                        }
                      ],
                      "others_margin": 0.015667
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.6000022888183594,
                    "model_output": 1.6,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1261
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1167
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0633
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0419
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.9969,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.2856
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1572
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0457
                        },
                        {
                          "name": "goalAssist",
                          "contribution": 0.0424
                        },
                        {
                          "name": "totalCross",
                          "contribution": 0.0371
                        }
                      ],
                      "others": 0.0351,
                      "total": 1.6,
                      "log_link": false,
                      "margin_base": 0.996896,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.285627
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.157161
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.045671
                        },
                        {
                          "name": "goalAssist",
                          "margin": 0.042415
                        },
                        {
                          "name": "totalCross",
                          "margin": 0.037135
                        }
                      ],
                      "others_margin": 0.035098
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.868531227111816,
                    "model_output": 6.8685,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "rating",
                        "importance": 0.0947
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0836
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0491
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0438
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.036
                      }
                    ],
                    "decomposition": {
                      "base": 6.8561,
                      "items": [
                        {
                          "name": "rating",
                          "contribution": 0.0531
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0249
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.0234
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0177
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0159
                        }
                      ],
                      "others": -0.0086,
                      "total": 6.8685,
                      "log_link": false,
                      "margin_base": 6.856052,
                      "item_margins": [
                        {
                          "name": "rating",
                          "margin": 0.053137
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.024883
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.023426
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": -0.017655
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.015852
                        }
                      ],
                      "others_margin": -0.008607
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 34,
                  "role_matches": 26,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "role_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9974, quality 0.439)",
              "stats": {
                "key_pass": 1.8162,
                "expected_assists": 0.1559,
                "assists": 0.1399,
                "assist_rate": 0.1399,
                "expected_goals": 0.1053,
                "goals": 0.1502,
                "goal_rate": 0.1502,
                "shots_on_target": 0.4139,
                "total_shots": 1.5958,
                "rating": 6.8685,
                "minutes": 82.14,
                "total_pass": 32.3608,
                "accurate_pass": 27.2503,
                "duels_won": 2.2222,
                "total_long_balls": 3.3167,
                "accurate_long_balls": 1.9735,
                "total_own_half_passes": 13.931,
                "accurate_own_half_passes": 12.9117,
                "total_opp_half_passes": 18.4299,
                "accurate_opp_half_passes": 14.3385,
                "crosses_total": 6.0014,
                "crosses_accurate": 2.193,
                "touches": 47.7229,
                "possession_lost": 10.874,
                "dispossessed": 0.4034,
                "duels_lost": 2.65,
                "aerial_won": 0.3454,
                "aerial_lost": 0.2871,
                "interceptions": 0.6744,
                "tackles_won": 0.5278,
                "tackles": 0.8079,
                "clearances": 1.0916,
                "total_contest": 1.1456,
                "won_contest": 0.802,
                "challenges_lost": 0.7366,
                "fouls": 0.8976,
                "fouls_drawn": 0.2924,
                "blocks": 0.2924,
                "big_chances_created": 0.3949,
                "big_chances_missed": 0.1543,
                "xgot": 0.1371,
                "ball_carries": 11.6353,
                "total_progression": 37.9721,
                "progressive_carries": 0.8817,
                "shots_off_target": 1.1819
              },
              "params": {
                "market_value_eur": 3100000,
                "quality_factor": 0.4387,
                "boost_factor": 0.9974,
                "reference_quality": 0.505,
                "history_matches": 34,
                "history_shrink": 0.1282,
                "market_value_known": true
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0028)",
              "stats": {
                "key_pass": 1.8162,
                "expected_assists": 0.1559,
                "assists": 0.1395,
                "assist_rate": 0.1395,
                "expected_goals": 0.1053,
                "goals": 0.1498,
                "goal_rate": 0.1498,
                "shots_on_target": 0.4128,
                "total_shots": 1.5914,
                "rating": 6.8685,
                "minutes": 82.14,
                "total_pass": 32.3608,
                "accurate_pass": 27.2503,
                "duels_won": 2.2222,
                "total_long_balls": 3.3167,
                "accurate_long_balls": 1.9735,
                "total_own_half_passes": 13.931,
                "accurate_own_half_passes": 12.9117,
                "total_opp_half_passes": 18.4299,
                "accurate_opp_half_passes": 14.3385,
                "crosses_total": 6.005,
                "crosses_accurate": 2.193,
                "touches": 47.7229,
                "possession_lost": 10.874,
                "dispossessed": 0.4034,
                "duels_lost": 2.65,
                "aerial_won": 0.3454,
                "aerial_lost": 0.2871,
                "interceptions": 0.6725,
                "tackles_won": 0.5263,
                "tackles": 0.8079,
                "clearances": 1.0916,
                "total_contest": 1.1456,
                "won_contest": 0.802,
                "challenges_lost": 0.7366,
                "fouls": 0.8951,
                "fouls_drawn": 0.2916,
                "blocks": 0.2924,
                "big_chances_created": 0.3949,
                "big_chances_missed": 0.1543,
                "xgot": 0.1371,
                "ball_carries": 11.6353,
                "total_progression": 37.9721,
                "progressive_carries": 0.8817,
                "shots_off_target": 1.1819
              },
              "params": {
                "blend_weight": 0.0028,
                "history_matches": 34,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.9127,
                "prior_reliability": 0.0333,
                "competition": "La Liga",
                "squad": "Málaga"
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1.8162,
                "expected_assists": 0.1559,
                "assists": 0.1395,
                "assist_rate": 0.1395,
                "expected_goals": 0.1053,
                "goals": 0.1498,
                "goal_rate": 0.1498,
                "shots_on_target": 0.4128,
                "total_shots": 1.5947,
                "rating": 6.8685,
                "minutes": 82.14,
                "total_pass": 32.3608,
                "accurate_pass": 27.2503,
                "duels_won": 2.2222,
                "total_long_balls": 3.3167,
                "accurate_long_balls": 1.9735,
                "total_own_half_passes": 13.931,
                "accurate_own_half_passes": 12.9117,
                "total_opp_half_passes": 18.4299,
                "accurate_opp_half_passes": 14.3385,
                "crosses_total": 6.005,
                "crosses_accurate": 2.193,
                "touches": 47.7229,
                "possession_lost": 10.874,
                "dispossessed": 0.4034,
                "duels_lost": 2.65,
                "aerial_won": 0.3454,
                "aerial_lost": 0.2871,
                "interceptions": 0.6725,
                "tackles_won": 0.5263,
                "tackles": 0.8079,
                "clearances": 1.0916,
                "total_contest": 1.1456,
                "won_contest": 0.802,
                "challenges_lost": 0.7366,
                "fouls": 0.8951,
                "fouls_drawn": 0.2916,
                "blocks": 0.2924,
                "big_chances_created": 0.3949,
                "big_chances_missed": 0.1543,
                "xgot": 0.1371,
                "ball_carries": 11.6353,
                "total_progression": 37.9721,
                "progressive_carries": 0.8817,
                "shots_off_target": 1.1819
              },
              "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.8162,
                "expected_assists": 0.1559,
                "assists": 0.1395,
                "assist_rate": 0.1395,
                "expected_goals": 0.1015,
                "goals": 0.1444,
                "goal_rate": 0.1444,
                "shots_on_target": 0.3978,
                "total_shots": 1.5368,
                "rating": 6.8685,
                "minutes": 82.14,
                "total_pass": 32.3608,
                "accurate_pass": 27.2503,
                "duels_won": 2.2222,
                "total_long_balls": 3.3167,
                "accurate_long_balls": 1.9735,
                "total_own_half_passes": 13.931,
                "accurate_own_half_passes": 12.9117,
                "total_opp_half_passes": 18.4299,
                "accurate_opp_half_passes": 14.3385,
                "crosses_total": 6.005,
                "crosses_accurate": 2.193,
                "touches": 47.7229,
                "possession_lost": 10.874,
                "dispossessed": 0.4034,
                "duels_lost": 2.65,
                "aerial_won": 1.1,
                "aerial_lost": 0.2871,
                "interceptions": 0.6725,
                "tackles_won": 0.5263,
                "tackles": 0.8079,
                "clearances": 1.0916,
                "total_contest": 1.1456,
                "won_contest": 0.802,
                "challenges_lost": 0.7366,
                "fouls": 0.8951,
                "fouls_drawn": 0.2916,
                "blocks": 0.2924,
                "big_chances_created": 0.3949,
                "big_chances_missed": 0.1487,
                "xgot": 0.1321,
                "ball_carries": 11.6353,
                "total_progression": 37.9721,
                "progressive_carries": 0.8817,
                "shots_off_target": 1.139,
                "duel_xg_multiplier": 0.9637,
                "dribbles_attempted": 3.0,
                "dribbles_successful": 1.0,
                "crosses_attempted": 2.0,
                "duel_win_rate": 0.395,
                "pressing_faced": "LOW",
                "matchup_zone": "LM vs CB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Ville Koski",
                "opponent_faced": "Ville Koski",
                "antagonist_source": "attacking_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Ville Koski",
                  "matchup_zone": "LM vs CB",
                  "duel_win_rate": 0.395,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v1",
                  "xg_multiplier": 0.9637,
                  "skill_edge": -0.0127,
                  "height_edge": -0.012,
                  "attacker_skill": 0.4429,
                  "defender_skill": 0.4712,
                  "attacker_role": "LM",
                  "attacker_mv_price_index": 0.9,
                  "defender_adjusted_parts": [
                    {
                      "player": "Ville Koski",
                      "market_value": 4300000,
                      "role": "CB",
                      "price_index": 0.75,
                      "adjusted_quality": 0.4712
                    }
                  ],
                  "xg_override": 0.1015
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.3454,
                  "after": 1.1
                },
                {
                  "stat": "totalShots",
                  "before": 1.5947,
                  "after": 1.5368
                },
                {
                  "stat": "shotOffTarget",
                  "before": 1.1819,
                  "after": 1.139
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.4128,
                  "after": 0.3978
                },
                {
                  "stat": "bigChanceMissed",
                  "before": 0.1543,
                  "after": 0.1487
                },
                {
                  "stat": "goals",
                  "before": 0.1498,
                  "after": 0.1444
                },
                {
                  "stat": "expectedGoalsOnTarget",
                  "before": 0.1371,
                  "after": 0.1321
                }
              ]
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "key_pass": 1.8162,
                "expected_assists": 0.1559,
                "assist_rate": 0.1395,
                "assists": 0,
                "expected_goals": 0.1015,
                "goal_rate": 0.1444,
                "goals": 0,
                "shots_on_target": 0.3978,
                "total_shots": 1.5368,
                "rating": 6.8685,
                "minutes": 82.14,
                "total_pass": 32.3608,
                "accurate_pass": 27.2503,
                "duels_won": 2.2222,
                "total_long_balls": 3.3167,
                "accurate_long_balls": 1.9735,
                "total_own_half_passes": 13.931,
                "accurate_own_half_passes": 12.9117,
                "total_opp_half_passes": 18.4299,
                "accurate_opp_half_passes": 14.3385,
                "crosses_total": 6.005,
                "crosses_accurate": 2.193,
                "touches": 47.7229,
                "possession_lost": 10.874,
                "dispossessed": 0.4034,
                "duels_lost": 2.65,
                "aerial_won": 1.1,
                "aerial_lost": 0.2871,
                "interceptions": 0.6725,
                "tackles_won": 0.5263,
                "tackles": 0.8079,
                "clearances": 1.0916,
                "total_contest": 1.1456,
                "won_contest": 0.802,
                "challenges_lost": 0.7366,
                "fouls": 0.8951,
                "fouls_drawn": 0.2916,
                "blocks": 0.2924,
                "big_chances_created": 0.3949,
                "big_chances_missed": 0.1487,
                "xgot": 0.1321,
                "ball_carries": 11.6353,
                "total_progression": 37.9721,
                "progressive_carries": 0.8817,
                "shots_off_target": 1.139,
                "duel_xg_multiplier": 0.9637,
                "dribbles_attempted": 3.0,
                "dribbles_successful": 1.0,
                "crosses_attempted": 2.0,
                "duel_win_rate": 0.395,
                "pressing_faced": "LOW",
                "matchup_zone": "LM vs CB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Ville Koski",
                "opponent_faced": "Ville Koski",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "scoreline_reset": true,
                "team_goals": 0
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.87 (squad xG sum 1.1744, xG scale 0.7400, xA scale 0.7968, team xA 0.56 = 0.65 x lambda)",
              "stats": {
                "key_pass": 1.8162,
                "expected_assists": 0.1242,
                "assist_rate": 0.1395,
                "assists": 0,
                "expected_goals": 0.0751,
                "goal_rate": 0.1444,
                "goals": 0,
                "shots_on_target": 0.3978,
                "total_shots": 1.5368,
                "rating": 6.8685,
                "minutes": 82.14,
                "total_pass": 32.3608,
                "accurate_pass": 27.2503,
                "duels_won": 2.2222,
                "total_long_balls": 3.3167,
                "accurate_long_balls": 1.9735,
                "total_own_half_passes": 13.931,
                "accurate_own_half_passes": 12.9117,
                "total_opp_half_passes": 18.4299,
                "accurate_opp_half_passes": 14.3385,
                "crosses_total": 6.005,
                "crosses_accurate": 2.193,
                "touches": 47.7229,
                "possession_lost": 10.874,
                "dispossessed": 0.4034,
                "duels_lost": 2.65,
                "aerial_won": 1.1,
                "aerial_lost": 0.2871,
                "interceptions": 0.6725,
                "tackles_won": 0.5263,
                "tackles": 0.8079,
                "clearances": 1.0916,
                "total_contest": 1.1456,
                "won_contest": 0.802,
                "challenges_lost": 0.7366,
                "fouls": 0.8951,
                "fouls_drawn": 0.2916,
                "blocks": 0.2924,
                "big_chances_created": 0.3949,
                "big_chances_missed": 0.1487,
                "xgot": 0.0978,
                "ball_carries": 11.6353,
                "total_progression": 37.9721,
                "progressive_carries": 0.8817,
                "shots_off_target": 1.139,
                "duel_xg_multiplier": 0.9637,
                "dribbles_attempted": 3.0,
                "dribbles_successful": 1.0,
                "crosses_attempted": 2.0,
                "duel_win_rate": 0.395,
                "pressing_faced": "LOW",
                "matchup_zone": "LM vs CB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Ville Koski",
                "opponent_faced": "Ville Koski",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 0.9203
              },
              "params": {
                "team_lambda": 0.869,
                "squad_xg_sum": 1.1744,
                "squad_xa_sum": 0.7089,
                "team_expected_assists": 0.5648,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.74,
                "xa_scale": 0.7968,
                "opponent_lambda": 1.257,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.1015,
                  "after": 0.0751
                },
                {
                  "stat": "expected_assists",
                  "before": 0.1559,
                  "after": 0.1242
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 82.0)",
              "stats": {
                "key_pass": 1.8162,
                "expected_assists": 0.1242,
                "assist_rate": 0.1395,
                "assists": 0,
                "expected_goals": 0.0751,
                "goal_rate": 0.1444,
                "goals": 0,
                "shots_on_target": 0.3978,
                "total_shots": 1.5368,
                "rating": 6.8685,
                "minutes": 82.14,
                "total_pass": 32.3608,
                "accurate_pass": 27.2503,
                "duels_won": 2.2222,
                "total_long_balls": 3.3167,
                "accurate_long_balls": 1.9735,
                "total_own_half_passes": 13.931,
                "accurate_own_half_passes": 12.9117,
                "total_opp_half_passes": 18.4299,
                "accurate_opp_half_passes": 14.3385,
                "crosses_total": 6.005,
                "crosses_accurate": 2.193,
                "touches": 47.7229,
                "possession_lost": 10.874,
                "dispossessed": 0.4034,
                "duels_lost": 2.65,
                "aerial_won": 1.1,
                "aerial_lost": 0.2871,
                "interceptions": 0.6725,
                "tackles_won": 0.5263,
                "tackles": 0.8079,
                "clearances": 1.0916,
                "total_contest": 1.1456,
                "won_contest": 0.802,
                "challenges_lost": 0.7366,
                "fouls": 0.8951,
                "fouls_drawn": 0.2916,
                "blocks": 0.2924,
                "big_chances_created": 0.3949,
                "big_chances_missed": 0.1487,
                "xgot": 0.0978,
                "ball_carries": 11.6353,
                "total_progression": 37.9721,
                "progressive_carries": 0.8817,
                "shots_off_target": 1.139,
                "duel_xg_multiplier": 0.9637,
                "dribbles_attempted": 3.0,
                "dribbles_successful": 1.0,
                "crosses_attempted": 2.0,
                "duel_win_rate": 0.395,
                "pressing_faced": "LOW",
                "matchup_zone": "LM vs CB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Ville Koski",
                "opponent_faced": "Ville Koski",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 0.9203,
                "fifa_overall": 82.0
              },
              "params": {
                "match_squad_rank": 5,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 1083,
                "fifa_rank": 399.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 82.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "key_pass": 1.8162,
                "expected_assists": 0.1242,
                "assist_rate": 0.1395,
                "assists": 0,
                "expected_goals": 0.0751,
                "goal_rate": 0.1444,
                "goals": 0,
                "shots_on_target": 0.3978,
                "total_shots": 1.5368,
                "rating": 6.8685,
                "minutes": 82.14,
                "total_pass": 32.3608,
                "accurate_pass": 27.2503,
                "duels_won": 2.2222,
                "total_long_balls": 3.3167,
                "accurate_long_balls": 1.9735,
                "total_own_half_passes": 13.931,
                "accurate_own_half_passes": 12.9117,
                "total_opp_half_passes": 18.4299,
                "accurate_opp_half_passes": 14.3385,
                "crosses_total": 6.005,
                "crosses_accurate": 2.193,
                "touches": 47.7229,
                "possession_lost": 10.874,
                "dispossessed": 0.4034,
                "duels_lost": 2.65,
                "aerial_won": 1.1,
                "aerial_lost": 0.2871,
                "interceptions": 0.6725,
                "tackles_won": 0.5263,
                "tackles": 0.8079,
                "clearances": 1.0916,
                "total_contest": 1.1456,
                "won_contest": 0.802,
                "challenges_lost": 0.7366,
                "fouls": 0.8951,
                "fouls_drawn": 0.2916,
                "blocks": 0.2924,
                "big_chances_created": 0.3949,
                "big_chances_missed": 0.1487,
                "xgot": 0.0978,
                "ball_carries": 11.6353,
                "total_progression": 37.9721,
                "progressive_carries": 0.8817,
                "shots_off_target": 1.139,
                "duel_xg_multiplier": 0.9637,
                "dribbles_attempted": 3.0,
                "dribbles_successful": 1.0,
                "crosses_attempted": 2.0,
                "duel_win_rate": 0.395,
                "pressing_faced": "LOW",
                "matchup_zone": "LM vs CB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Ville Koski",
                "opponent_faced": "Ville Koski",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0723,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 0.9203,
                "fifa_overall": 82.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0723,
                "goal_rate": 0.1444,
                "scorer_weight": 0.0939,
                "squad_weight_total": 0.91,
                "weight_share": 0.1032,
                "finishing_factor": 1.25,
                "appearance_weight": 1.0,
                "weight_rank": 3,
                "eligible_players": 13
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "key_pass": 1.8162,
                "expected_assists": 0.1242,
                "assist_rate": 0.1395,
                "assists": 0,
                "expected_goals": 0.0751,
                "goal_rate": 0.1444,
                "goals": 0,
                "shots_on_target": 0.3978,
                "total_shots": 1.5368,
                "rating": 6.8685,
                "minutes": 82.14,
                "total_pass": 32.3608,
                "accurate_pass": 27.2503,
                "duels_won": 2.2222,
                "total_long_balls": 3.3167,
                "accurate_long_balls": 1.9735,
                "total_own_half_passes": 13.931,
                "accurate_own_half_passes": 12.9117,
                "total_opp_half_passes": 18.4299,
                "accurate_opp_half_passes": 14.3385,
                "crosses_total": 6.005,
                "crosses_accurate": 2.193,
                "touches": 47.7229,
                "possession_lost": 10.874,
                "dispossessed": 0.4034,
                "duels_lost": 2.65,
                "aerial_won": 1.1,
                "aerial_lost": 0.2871,
                "interceptions": 0.6725,
                "tackles_won": 0.5263,
                "tackles": 0.8079,
                "clearances": 1.0916,
                "total_contest": 1.1456,
                "won_contest": 0.802,
                "challenges_lost": 0.7366,
                "fouls": 0.8951,
                "fouls_drawn": 0.2916,
                "blocks": 0.2924,
                "big_chances_created": 0.3949,
                "big_chances_missed": 0.1487,
                "xgot": 0.0978,
                "ball_carries": 11.6353,
                "total_progression": 37.9721,
                "progressive_carries": 0.8817,
                "shots_off_target": 1.139,
                "duel_xg_multiplier": 0.9637,
                "dribbles_attempted": 3.0,
                "dribbles_successful": 1.0,
                "crosses_attempted": 2.0,
                "duel_win_rate": 0.395,
                "pressing_faced": "LOW",
                "matchup_zone": "LM vs CB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Ville Koski",
                "opponent_faced": "Ville Koski",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0723,
                "projected_assists": 0,
                "assist_probability": 0.1168,
                "finishing_factor": 1.25,
                "creation_factor": 0.9203,
                "fifa_overall": 82.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.1168,
                "assist_rate": 0.1395,
                "provider_weight": 0.1143,
                "squad_weight_total": 0.5067,
                "weight_share": 0.2256,
                "creation_factor": 0.9203,
                "appearance_weight": 1.0,
                "weight_rank": 1,
                "eligible_players": 13
              }
            }
          ]
        },
        "Carlos Dotor": {
          "player_id": 997221,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 8,
          "height": 180,
          "market_value": 1200000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.041,
            "assist_rate": 0.0666,
            "assists": 0,
            "expected_goals": 0.0375,
            "goal_rate": 0.0544,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "rating": 6.9033,
            "minutes": 78,
            "total_pass": 42,
            "accurate_pass": 36,
            "duels_won": 4,
            "total_long_balls": 2,
            "accurate_long_balls": 1,
            "total_own_half_passes": 21,
            "accurate_own_half_passes": 18,
            "total_opp_half_passes": 22,
            "accurate_opp_half_passes": 18,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 53,
            "possession_lost": 8.7297,
            "dispossessed": 0.5632,
            "duels_lost": 4,
            "aerial_won": 1,
            "aerial_lost": 1,
            "interceptions": 1,
            "tackles_won": 2,
            "tackles": 3,
            "clearances": 1,
            "total_contest": 1,
            "won_contest": 1,
            "challenges_lost": 1,
            "fouls": 1,
            "fouls_drawn": 1,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.1373,
            "ball_carries": 14,
            "total_progression": 30,
            "progressive_carries": 1,
            "shots_off_target": 0,
            "duel_xg_multiplier": 0.9909,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.8,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.444,
            "pressing_faced": "LOW",
            "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
            "numerical_situation": "1v1",
            "opponent_defenders": "Pablo Ibáñez",
            "opponent_faced": "Pablo Ibáñez",
            "antagonist_source": "attacking_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.0368,
            "projected_assists": 0,
            "assist_probability": 0.0402,
            "finishing_factor": 1.0367,
            "creation_factor": 1.1488,
            "fifa_overall": 85.0
          },
          "latest_10_games": [
            {
              "match_id": 16421073,
              "match_date": "2026-10-18",
              "home_team": "Málaga CF",
              "away_team": "Real Sociedad",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 64,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0279,
                "total_shots": 0,
                "total_pass": 46,
                "accurate_pass": 41,
                "key_pass": 1,
                "tackles": 5,
                "tackles_won": 3,
                "interceptions": 2,
                "clearances": 1,
                "duels_won": 6,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421062,
              "match_date": "2026-10-09",
              "home_team": "Málaga CF",
              "away_team": "Espanyol",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Málaga CF",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 28,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0233,
                "total_shots": 0,
                "total_pass": 25,
                "accurate_pass": 23,
                "duels_won": 1,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416303,
              "match_date": "2026-09-20",
              "home_team": "Getafe",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Getafe",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0371,
                "expected_assists": 0.0701,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 43,
                "accurate_pass": 35,
                "key_pass": 1,
                "tackles": 2,
                "interceptions": 1,
                "duels_won": 5,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416338,
              "match_date": "2026-09-17",
              "home_team": "Málaga CF",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 61,
                "rating": 7.3,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1784,
                "expected_assists": 0.0024,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 31,
                "accurate_pass": 27,
                "interceptions": 1,
                "clearances": 2,
                "duels_won": 1,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416320,
              "match_date": "2026-09-06",
              "home_team": "Málaga CF",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 86,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0858,
                "expected_assists": 0.1533,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 41,
                "accurate_pass": 34,
                "key_pass": 2,
                "tackles": 3,
                "tackles_won": 2,
                "clearances": 1,
                "aerial_won": 2,
                "duels_won": 6,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416312,
              "match_date": "2026-08-30",
              "home_team": "Real Madrid",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0289,
                "total_shots": 0,
                "total_pass": 62,
                "accurate_pass": 55,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 2,
                "duels_won": 2,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416307,
              "match_date": "2026-08-24",
              "home_team": "Málaga CF",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 73,
                "rating": 7.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0332,
                "expected_assists": 0.0438,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 46,
                "accurate_pass": 37,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421055,
              "match_date": "2026-08-19",
              "home_team": "Atlético Madrid",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 67,
                "rating": 7.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0133,
                "total_shots": 0,
                "total_pass": 27,
                "accurate_pass": 23,
                "tackles": 4,
                "tackles_won": 3,
                "interceptions": 1,
                "duels_won": 5,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 93,
            "combined_rank_score": 114.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 91.0,
            "sofascore_rating": 7.5,
            "sofascore_appearances": 1.0,
            "fifa_rank": 137.0,
            "fifa_overall": 85.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 4,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.9033,
            "source_file": "data/player_rankings.csv",
            "player_name": "Carlos Dotor",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Diogo Costa",
                  "ranking": 88
                },
                {
                  "player_name": "Vinícius Júnior",
                  "ranking": 89
                },
                {
                  "player_name": "Khozhiakbar Alizhonov",
                  "ranking": 90
                },
                {
                  "player_name": "Abduvokhid Nematov",
                  "ranking": 91
                },
                {
                  "player_name": "Ignacio Suárez",
                  "ranking": 92
                }
              ],
              "lower": [
                {
                  "player_name": "Cristhian Martínez",
                  "ranking": 94
                },
                {
                  "player_name": "Luka Stankovski",
                  "ranking": 95
                },
                {
                  "player_name": "Jordan Pickford",
                  "ranking": 96
                },
                {
                  "player_name": "Luke Brattan",
                  "ranking": 97
                },
                {
                  "player_name": "Moisés Caicedo",
                  "ranking": 98
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.775,
          "history_matches": 8,
          "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",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "rating",
              "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",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 8,
            "data_confidence": 0.775,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.9922,
            "fbref_prior_metrics": {
              "squad": "Málaga",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "minutes": 228.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.39,
              "shots_on_target_pct": 100.0,
              "prior_reliability": 0.1667
            },
            "rationale": "XGBoost regressor (M_service) evaluated 8 historical appearances across 8 target models; FBref 2026-2027 prior blended (La Liga, Málaga, rel: 0.17, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 0.698,
                "expected_assists": 0.0519,
                "assists": 0.0701,
                "assist_rate": 0.0701,
                "expected_goals": 0.0516,
                "goals": 0.0577,
                "goal_rate": 0.0577,
                "shots_on_target": 0.1807,
                "total_shots": 0.6568,
                "rating": 6.9033,
                "minutes": 77.84,
                "total_pass": 42.6283,
                "accurate_pass": 36.4146,
                "duels_won": 4.0787,
                "total_long_balls": 1.8724,
                "accurate_long_balls": 0.9385,
                "total_own_half_passes": 20.6713,
                "accurate_own_half_passes": 17.9775,
                "total_opp_half_passes": 21.9571,
                "accurate_opp_half_passes": 18.4372,
                "crosses_total": 0.098,
                "crosses_accurate": 0.0,
                "touches": 53.6663,
                "possession_lost": 8.7983,
                "dispossessed": 0.5676,
                "duels_lost": 3.6304,
                "aerial_won": 0.2712,
                "aerial_lost": 0.7035,
                "interceptions": 0.9699,
                "tackles_won": 1.5118,
                "tackles": 2.5475,
                "clearances": 0.6754,
                "total_contest": 0.9962,
                "won_contest": 0.5045,
                "challenges_lost": 0.6501,
                "fouls": 1.2175,
                "fouls_drawn": 0.7556,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.1888,
                "ball_carries": 14.5857,
                "total_progression": 30.3299,
                "progressive_carries": 0.8074,
                "shots_off_target": 0.4761
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 7,
                  "trained_at": "2026-10-23T10:05:23.571433+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 903,
                    "rows": 24475
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Real Sociedad",
                    "minutes": 64.0,
                    "is_starting": true,
                    "weight": 0.2062,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-10-09",
                    "opponent": "Espanyol",
                    "minutes": 28.0,
                    "is_starting": false,
                    "weight": 0.1753,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Getafe",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.149,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Villarreal",
                    "minutes": 61.0,
                    "is_starting": true,
                    "weight": 0.1266,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Levante UD",
                    "minutes": 86.0,
                    "is_starting": true,
                    "weight": 0.1076,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Real Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0915,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-08-24",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 73.0,
                    "is_starting": true,
                    "weight": 0.0778,
                    "rating": 7.4
                  },
                  {
                    "match_date": "2026-08-19",
                    "opponent": "Atlético Madrid",
                    "minutes": 67.0,
                    "is_starting": true,
                    "weight": 0.0661,
                    "rating": 7.5
                  }
                ],
                "feature_row": {
                  "history_matches": 8.0,
                  "is_starting_11": 1.0,
                  "creative_index": 0.3223,
                  "totalShots": 0.461,
                  "expectedGoals": 0.0399,
                  "expectedAssists": 0.044,
                  "onTargetScoringAttempt": 0.3534
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.6979541182518005,
                    "model_output": 0.698,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1647
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1377
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0663
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0524
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0316
                      }
                    ],
                    "decomposition": {
                      "base": 0.8945,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1244
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0996
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0688
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0349
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0301
                        }
                      ],
                      "others": -0.0875,
                      "total": 0.698,
                      "log_link": true,
                      "margin_base": -0.111507,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.130258
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.102914
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.077792
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.041872
                        },
                        {
                          "name": "cross_creative_contribution",
                          "margin": -0.037615
                        }
                      ],
                      "others_margin": -0.11816
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.05189793184399605,
                    "model_output": 0.0519,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1545
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1048
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.1021
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0476
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0472
                      }
                    ],
                    "decomposition": {
                      "base": 0.0859,
                      "items": [
                        {
                          "name": "totalCross",
                          "contribution": -0.0147
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0119
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0085
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0073
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0046
                        }
                      ],
                      "others": -0.0108,
                      "total": 0.0519,
                      "log_link": true,
                      "margin_base": -2.454719,
                      "item_margins": [
                        {
                          "name": "totalCross",
                          "margin": -0.18832
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.155011
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.108284
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.102532
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.071333
                        }
                      ],
                      "others_margin": -0.1883
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.07009503990411758,
                    "model_output": 0.0701,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.0619
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0395
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0343
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0335
                      }
                    ],
                    "decomposition": {
                      "base": 0.0874,
                      "items": [
                        {
                          "name": "totalCross",
                          "contribution": -0.0094
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0075
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0065
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0043
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": -0.0039
                        }
                      ],
                      "others": -0.0093,
                      "total": 0.0701,
                      "log_link": true,
                      "margin_base": -2.437263,
                      "item_margins": [
                        {
                          "name": "totalCross",
                          "margin": -0.113408
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.091816
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.079543
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.052536
                        },
                        {
                          "name": "ballRecovery_p90",
                          "margin": -0.04745
                        }
                      ],
                      "others_margin": -0.124592
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.05158673971891403,
                    "model_output": 0.0516,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedGoals",
                        "importance": 0.134
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.074
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0705
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.039
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0273
                      }
                    ],
                    "decomposition": {
                      "base": 0.094,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0164
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0108
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0082
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0074
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.004
                        }
                      ],
                      "others": -0.0104,
                      "total": 0.0516,
                      "log_link": true,
                      "margin_base": -2.364919,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.19187
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.149575
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.13037
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.119205
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.062511
                        }
                      ],
                      "others_margin": -0.18445
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.05771416053175926,
                    "model_output": 0.0577,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0974
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0527
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0513
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0365
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.03
                      }
                    ],
                    "decomposition": {
                      "base": 0.0993,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0151
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0122
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0085
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0067
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0036
                        }
                      ],
                      "others": -0.0089,
                      "total": 0.0577,
                      "log_link": true,
                      "margin_base": -2.309444,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.164626
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.156715
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.125847
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.100522
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.052249
                        }
                      ],
                      "others_margin": -0.143893
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.18074840307235718,
                    "model_output": 0.1807,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1106
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0885
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0762
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0292
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0279
                      }
                    ],
                    "decomposition": {
                      "base": 0.326,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0824
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0343
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.032
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0179
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0127
                        }
                      ],
                      "others": -0.03,
                      "total": 0.1807,
                      "log_link": true,
                      "margin_base": -1.120773,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.291516
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.152007
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.142439
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.077273
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.058474
                        }
                      ],
                      "others_margin": -0.153045
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.6568239331245422,
                    "model_output": 0.6568,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1261
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1167
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0633
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0419
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.9969,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.2431
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1207
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0599
                        },
                        {
                          "name": "goalAssist",
                          "contribution": -0.0202
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0196
                        }
                      ],
                      "others": -0.118,
                      "total": 0.6568,
                      "log_link": false,
                      "margin_base": 0.996896,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.243073
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.120669
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.059924
                        },
                        {
                          "name": "goalAssist",
                          "margin": -0.020153
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.019615
                        }
                      ],
                      "others_margin": -0.117974
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.9033308029174805,
                    "model_output": 6.9033,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "rating",
                        "importance": 0.0947
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0836
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0491
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0438
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.036
                      }
                    ],
                    "decomposition": {
                      "base": 6.8561,
                      "items": [
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0649
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0344
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0199
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0169
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.015
                        }
                      ],
                      "others": -0.0341,
                      "total": 6.9033,
                      "log_link": false,
                      "margin_base": 6.856052,
                      "item_margins": [
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.064947
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.034384
                        },
                        {
                          "name": "totalPass",
                          "margin": -0.019912
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.01691
                        },
                        {
                          "name": "accuratePass",
                          "margin": -0.015001
                        }
                      ],
                      "others_margin": -0.034049
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 8,
                  "role_matches": 7,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "role_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9922, quality 0.437)",
              "stats": {
                "key_pass": 0.6925,
                "expected_assists": 0.0515,
                "assists": 0.0695,
                "assist_rate": 0.0695,
                "expected_goals": 0.0512,
                "goals": 0.0573,
                "goal_rate": 0.0573,
                "shots_on_target": 0.1793,
                "total_shots": 0.6517,
                "rating": 6.9033,
                "minutes": 77.84,
                "total_pass": 42.2958,
                "accurate_pass": 36.1306,
                "duels_won": 4.0469,
                "total_long_balls": 1.8578,
                "accurate_long_balls": 0.9312,
                "total_own_half_passes": 20.5101,
                "accurate_own_half_passes": 17.8373,
                "total_opp_half_passes": 21.7858,
                "accurate_opp_half_passes": 18.2934,
                "crosses_total": 0.0972,
                "crosses_accurate": 0.0,
                "touches": 53.2477,
                "possession_lost": 8.7297,
                "dispossessed": 0.5632,
                "duels_lost": 3.6021,
                "aerial_won": 0.2691,
                "aerial_lost": 0.698,
                "interceptions": 0.9623,
                "tackles_won": 1.5,
                "tackles": 2.5276,
                "clearances": 0.6701,
                "total_contest": 0.9884,
                "won_contest": 0.5006,
                "challenges_lost": 0.645,
                "fouls": 1.208,
                "fouls_drawn": 0.7497,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.1873,
                "ball_carries": 14.4719,
                "total_progression": 30.0933,
                "progressive_carries": 0.8011,
                "shots_off_target": 0.4724
              },
              "params": {
                "market_value_eur": 1200000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9922,
                "reference_quality": 0.505,
                "history_matches": 8,
                "history_shrink": 0.3846,
                "market_value_known": true
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0417)",
              "stats": {
                "key_pass": 0.6925,
                "expected_assists": 0.0515,
                "assists": 0.0666,
                "assist_rate": 0.0666,
                "expected_goals": 0.0512,
                "goals": 0.0549,
                "goal_rate": 0.0549,
                "shots_on_target": 0.1859,
                "total_shots": 0.6386,
                "rating": 6.9033,
                "minutes": 77.84,
                "total_pass": 42.2958,
                "accurate_pass": 36.1306,
                "duels_won": 4.0469,
                "total_long_balls": 1.8578,
                "accurate_long_balls": 0.9312,
                "total_own_half_passes": 20.5101,
                "accurate_own_half_passes": 17.8373,
                "total_opp_half_passes": 21.7858,
                "accurate_opp_half_passes": 18.2934,
                "crosses_total": 0.122,
                "crosses_accurate": 0.0,
                "touches": 53.2477,
                "possession_lost": 8.7297,
                "dispossessed": 0.5632,
                "duels_lost": 3.6021,
                "aerial_won": 0.2691,
                "aerial_lost": 0.698,
                "interceptions": 0.951,
                "tackles_won": 1.524,
                "tackles": 2.5276,
                "clearances": 0.6701,
                "total_contest": 0.9884,
                "won_contest": 0.5006,
                "challenges_lost": 0.645,
                "fouls": 1.1721,
                "fouls_drawn": 0.7185,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.1873,
                "ball_carries": 14.4719,
                "total_progression": 30.0933,
                "progressive_carries": 0.8011,
                "shots_off_target": 0.4724
              },
              "params": {
                "blend_weight": 0.0417,
                "history_matches": 8,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.8649,
                "prior_reliability": 0.1667,
                "competition": "La Liga",
                "squad": "Málaga"
              },
              "changes": [
                {
                  "stat": "fouls",
                  "before": 1.208,
                  "after": 1.1721
                },
                {
                  "stat": "wasFouled",
                  "before": 0.7497,
                  "after": 0.7185
                },
                {
                  "stat": "totalCross",
                  "before": 0.0972,
                  "after": 0.122
                },
                {
                  "stat": "wonTackle",
                  "before": 1.5,
                  "after": 1.524
                },
                {
                  "stat": "totalShots",
                  "before": 0.6517,
                  "after": 0.6386
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.9623,
                  "after": 0.951
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.1793,
                  "after": 0.1859
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0.6925,
                "expected_assists": 0.0515,
                "assists": 0.0666,
                "assist_rate": 0.0666,
                "expected_goals": 0.0512,
                "goals": 0.0549,
                "goal_rate": 0.0549,
                "shots_on_target": 0.1859,
                "total_shots": 0.6583,
                "rating": 6.9033,
                "minutes": 77.84,
                "total_pass": 42.2958,
                "accurate_pass": 36.1306,
                "duels_won": 4.0469,
                "total_long_balls": 1.8578,
                "accurate_long_balls": 0.9312,
                "total_own_half_passes": 20.5101,
                "accurate_own_half_passes": 17.8373,
                "total_opp_half_passes": 21.7858,
                "accurate_opp_half_passes": 18.2934,
                "crosses_total": 0.122,
                "crosses_accurate": 0.0,
                "touches": 53.2477,
                "possession_lost": 8.7297,
                "dispossessed": 0.5632,
                "duels_lost": 3.6021,
                "aerial_won": 0.2691,
                "aerial_lost": 0.698,
                "interceptions": 0.951,
                "tackles_won": 1.524,
                "tackles": 2.5276,
                "clearances": 0.6701,
                "total_contest": 0.9884,
                "won_contest": 0.5006,
                "challenges_lost": 0.645,
                "fouls": 1.1721,
                "fouls_drawn": 0.7185,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.1873,
                "ball_carries": 14.4719,
                "total_progression": 30.0933,
                "progressive_carries": 0.8011,
                "shots_off_target": 0.4724
              },
              "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": 0.6925,
                "expected_assists": 0.0515,
                "assists": 0.0666,
                "assist_rate": 0.0666,
                "expected_goals": 0.0507,
                "goals": 0.0544,
                "goal_rate": 0.0544,
                "shots_on_target": 0.1842,
                "total_shots": 0.6523,
                "rating": 6.9033,
                "minutes": 77.84,
                "total_pass": 42.2958,
                "accurate_pass": 36.1306,
                "duels_won": 4.0469,
                "total_long_balls": 1.8578,
                "accurate_long_balls": 0.9312,
                "total_own_half_passes": 20.5101,
                "accurate_own_half_passes": 17.8373,
                "total_opp_half_passes": 21.7858,
                "accurate_opp_half_passes": 18.2934,
                "crosses_total": 0.122,
                "crosses_accurate": 0.0,
                "touches": 53.2477,
                "possession_lost": 8.7297,
                "dispossessed": 0.5632,
                "duels_lost": 3.6021,
                "aerial_won": 1.1,
                "aerial_lost": 0.698,
                "interceptions": 0.951,
                "tackles_won": 1.524,
                "tackles": 2.5276,
                "clearances": 0.6701,
                "total_contest": 0.9884,
                "won_contest": 0.5006,
                "challenges_lost": 0.645,
                "fouls": 1.1721,
                "fouls_drawn": 0.7185,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.1856,
                "ball_carries": 14.4719,
                "total_progression": 30.0933,
                "progressive_carries": 0.8011,
                "shots_off_target": 0.4681,
                "duel_xg_multiplier": 0.9909,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.444,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Pablo Ibáñez",
                "opponent_faced": "Pablo Ibáñez",
                "antagonist_source": "attacking_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Pablo Ibáñez",
                  "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                  "duel_win_rate": 0.444,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v1",
                  "xg_multiplier": 0.9909,
                  "skill_edge": -0.0102,
                  "height_edge": 0.004,
                  "attacker_skill": 0.4374,
                  "defender_skill": 0.46,
                  "attacker_role": "CM",
                  "attacker_mv_price_index": 0.9,
                  "defender_adjusted_parts": [
                    {
                      "player": "Pablo Ibáñez",
                      "market_value": 4099999,
                      "role": "CDM",
                      "price_index": 0.85,
                      "adjusted_quality": 0.46
                    }
                  ],
                  "xg_override": 0.0507
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.2691,
                  "after": 1.1
                },
                {
                  "stat": "totalShots",
                  "before": 0.6583,
                  "after": 0.6523
                }
              ]
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "key_pass": 0.6925,
                "expected_assists": 0.0515,
                "assist_rate": 0.0666,
                "assists": 0,
                "expected_goals": 0.0507,
                "goal_rate": 0.0544,
                "goals": 0,
                "shots_on_target": 0.1842,
                "total_shots": 0.6523,
                "rating": 6.9033,
                "minutes": 77.84,
                "total_pass": 42.2958,
                "accurate_pass": 36.1306,
                "duels_won": 4.0469,
                "total_long_balls": 1.8578,
                "accurate_long_balls": 0.9312,
                "total_own_half_passes": 20.5101,
                "accurate_own_half_passes": 17.8373,
                "total_opp_half_passes": 21.7858,
                "accurate_opp_half_passes": 18.2934,
                "crosses_total": 0.122,
                "crosses_accurate": 0.0,
                "touches": 53.2477,
                "possession_lost": 8.7297,
                "dispossessed": 0.5632,
                "duels_lost": 3.6021,
                "aerial_won": 1.1,
                "aerial_lost": 0.698,
                "interceptions": 0.951,
                "tackles_won": 1.524,
                "tackles": 2.5276,
                "clearances": 0.6701,
                "total_contest": 0.9884,
                "won_contest": 0.5006,
                "challenges_lost": 0.645,
                "fouls": 1.1721,
                "fouls_drawn": 0.7185,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.1856,
                "ball_carries": 14.4719,
                "total_progression": 30.0933,
                "progressive_carries": 0.8011,
                "shots_off_target": 0.4681,
                "duel_xg_multiplier": 0.9909,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.444,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Pablo Ibáñez",
                "opponent_faced": "Pablo Ibáñez",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "scoreline_reset": true,
                "team_goals": 0
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.87 (squad xG sum 1.1744, xG scale 0.7400, xA scale 0.7968, team xA 0.56 = 0.65 x lambda)",
              "stats": {
                "key_pass": 0.6925,
                "expected_assists": 0.041,
                "assist_rate": 0.0666,
                "assists": 0,
                "expected_goals": 0.0375,
                "goal_rate": 0.0544,
                "goals": 0,
                "shots_on_target": 0.1842,
                "total_shots": 0.6523,
                "rating": 6.9033,
                "minutes": 77.84,
                "total_pass": 42.2958,
                "accurate_pass": 36.1306,
                "duels_won": 4.0469,
                "total_long_balls": 1.8578,
                "accurate_long_balls": 0.9312,
                "total_own_half_passes": 20.5101,
                "accurate_own_half_passes": 17.8373,
                "total_opp_half_passes": 21.7858,
                "accurate_opp_half_passes": 18.2934,
                "crosses_total": 0.122,
                "crosses_accurate": 0.0,
                "touches": 53.2477,
                "possession_lost": 8.7297,
                "dispossessed": 0.5632,
                "duels_lost": 3.6021,
                "aerial_won": 1.1,
                "aerial_lost": 0.698,
                "interceptions": 0.951,
                "tackles_won": 1.524,
                "tackles": 2.5276,
                "clearances": 0.6701,
                "total_contest": 0.9884,
                "won_contest": 0.5006,
                "challenges_lost": 0.645,
                "fouls": 1.1721,
                "fouls_drawn": 0.7185,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.1373,
                "ball_carries": 14.4719,
                "total_progression": 30.0933,
                "progressive_carries": 0.8011,
                "shots_off_target": 0.4681,
                "duel_xg_multiplier": 0.9909,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.444,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Pablo Ibáñez",
                "opponent_faced": "Pablo Ibáñez",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0367,
                "creation_factor": 1.1488
              },
              "params": {
                "team_lambda": 0.869,
                "squad_xg_sum": 1.1744,
                "squad_xa_sum": 0.7089,
                "team_expected_assists": 0.5648,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.74,
                "xa_scale": 0.7968,
                "opponent_lambda": 1.257,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0507,
                  "after": 0.0375
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0515,
                  "after": 0.041
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 85.0)",
              "stats": {
                "key_pass": 0.6925,
                "expected_assists": 0.041,
                "assist_rate": 0.0666,
                "assists": 0,
                "expected_goals": 0.0375,
                "goal_rate": 0.0544,
                "goals": 0,
                "shots_on_target": 0.1842,
                "total_shots": 0.6523,
                "rating": 6.9033,
                "minutes": 77.84,
                "total_pass": 42.2958,
                "accurate_pass": 36.1306,
                "duels_won": 4.0469,
                "total_long_balls": 1.8578,
                "accurate_long_balls": 0.9312,
                "total_own_half_passes": 20.5101,
                "accurate_own_half_passes": 17.8373,
                "total_opp_half_passes": 21.7858,
                "accurate_opp_half_passes": 18.2934,
                "crosses_total": 0.122,
                "crosses_accurate": 0.0,
                "touches": 53.2477,
                "possession_lost": 8.7297,
                "dispossessed": 0.5632,
                "duels_lost": 3.6021,
                "aerial_won": 1.1,
                "aerial_lost": 0.698,
                "interceptions": 0.951,
                "tackles_won": 1.524,
                "tackles": 2.5276,
                "clearances": 0.6701,
                "total_contest": 0.9884,
                "won_contest": 0.5006,
                "challenges_lost": 0.645,
                "fouls": 1.1721,
                "fouls_drawn": 0.7185,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.1373,
                "ball_carries": 14.4719,
                "total_progression": 30.0933,
                "progressive_carries": 0.8011,
                "shots_off_target": 0.4681,
                "duel_xg_multiplier": 0.9909,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.444,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Pablo Ibáñez",
                "opponent_faced": "Pablo Ibáñez",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0367,
                "creation_factor": 1.1488,
                "fifa_overall": 85.0
              },
              "params": {
                "match_squad_rank": 4,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 93,
                "fifa_rank": 137.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 85.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "key_pass": 0.6925,
                "expected_assists": 0.041,
                "assist_rate": 0.0666,
                "assists": 0,
                "expected_goals": 0.0375,
                "goal_rate": 0.0544,
                "goals": 0,
                "shots_on_target": 0.1842,
                "total_shots": 0.6523,
                "rating": 6.9033,
                "minutes": 77.84,
                "total_pass": 42.2958,
                "accurate_pass": 36.1306,
                "duels_won": 4.0469,
                "total_long_balls": 1.8578,
                "accurate_long_balls": 0.9312,
                "total_own_half_passes": 20.5101,
                "accurate_own_half_passes": 17.8373,
                "total_opp_half_passes": 21.7858,
                "accurate_opp_half_passes": 18.2934,
                "crosses_total": 0.122,
                "crosses_accurate": 0.0,
                "touches": 53.2477,
                "possession_lost": 8.7297,
                "dispossessed": 0.5632,
                "duels_lost": 3.6021,
                "aerial_won": 1.1,
                "aerial_lost": 0.698,
                "interceptions": 0.951,
                "tackles_won": 1.524,
                "tackles": 2.5276,
                "clearances": 0.6701,
                "total_contest": 0.9884,
                "won_contest": 0.5006,
                "challenges_lost": 0.645,
                "fouls": 1.1721,
                "fouls_drawn": 0.7185,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.1373,
                "ball_carries": 14.4719,
                "total_progression": 30.0933,
                "progressive_carries": 0.8011,
                "shots_off_target": 0.4681,
                "duel_xg_multiplier": 0.9909,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.444,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Pablo Ibáñez",
                "opponent_faced": "Pablo Ibáñez",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0368,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0367,
                "creation_factor": 1.1488,
                "fifa_overall": 85.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0368,
                "goal_rate": 0.0544,
                "scorer_weight": 0.0389,
                "squad_weight_total": 0.91,
                "weight_share": 0.0427,
                "finishing_factor": 1.0367,
                "appearance_weight": 1.0,
                "weight_rank": 6,
                "eligible_players": 13
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "key_pass": 0.6925,
                "expected_assists": 0.041,
                "assist_rate": 0.0666,
                "assists": 0,
                "expected_goals": 0.0375,
                "goal_rate": 0.0544,
                "goals": 0,
                "shots_on_target": 0.1842,
                "total_shots": 0.6523,
                "rating": 6.9033,
                "minutes": 77.84,
                "total_pass": 42.2958,
                "accurate_pass": 36.1306,
                "duels_won": 4.0469,
                "total_long_balls": 1.8578,
                "accurate_long_balls": 0.9312,
                "total_own_half_passes": 20.5101,
                "accurate_own_half_passes": 17.8373,
                "total_opp_half_passes": 21.7858,
                "accurate_opp_half_passes": 18.2934,
                "crosses_total": 0.122,
                "crosses_accurate": 0.0,
                "touches": 53.2477,
                "possession_lost": 8.7297,
                "dispossessed": 0.5632,
                "duels_lost": 3.6021,
                "aerial_won": 1.1,
                "aerial_lost": 0.698,
                "interceptions": 0.951,
                "tackles_won": 1.524,
                "tackles": 2.5276,
                "clearances": 0.6701,
                "total_contest": 0.9884,
                "won_contest": 0.5006,
                "challenges_lost": 0.645,
                "fouls": 1.1721,
                "fouls_drawn": 0.7185,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.1373,
                "ball_carries": 14.4719,
                "total_progression": 30.0933,
                "progressive_carries": 0.8011,
                "shots_off_target": 0.4681,
                "duel_xg_multiplier": 0.9909,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.444,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Pablo Ibáñez",
                "opponent_faced": "Pablo Ibáñez",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0368,
                "projected_assists": 0,
                "assist_probability": 0.0402,
                "finishing_factor": 1.0367,
                "creation_factor": 1.1488,
                "fifa_overall": 85.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0402,
                "assist_rate": 0.0666,
                "provider_weight": 0.0471,
                "squad_weight_total": 0.5067,
                "weight_share": 0.093,
                "creation_factor": 1.1488,
                "appearance_weight": 1.0,
                "weight_rank": 5,
                "eligible_players": 13
              }
            }
          ]
        },
        "David Larrubia": {
          "player_id": 1002405,
          "position": "F",
          "position_depth": "F",
          "is_starter": true,
          "shirt_number": 10,
          "height": 172,
          "market_value": 6300000,
          "stats": {
            "expected_goals": 0.0701,
            "goal_rate": 0.1158,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 2,
            "expected_assists": 0.125,
            "key_pass": 2,
            "rating": 6.9263,
            "minutes": 84,
            "total_pass": 30,
            "accurate_pass": 24,
            "duels_won": 7,
            "total_long_balls": 2,
            "accurate_long_balls": 2,
            "total_opp_half_passes": 23,
            "accurate_opp_half_passes": 18,
            "crosses_total": 1,
            "crosses_accurate": 0,
            "touches": 56,
            "possession_lost": 17.0363,
            "dispossessed": 2.1081,
            "duels_lost": 8,
            "aerial_lost": 0,
            "total_contest": 6,
            "won_contest": 3,
            "ball_recovery": 4,
            "challenges_lost": 2,
            "fouls": 1,
            "fouls_drawn": 1,
            "assist_rate": 0.0,
            "assists": 0,
            "interceptions": 1,
            "tackles_won": 2,
            "tackles": 3,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0473,
            "offsides": 0,
            "ball_carries": 19,
            "total_progression": 119,
            "progressive_carries": 5,
            "shots_off_target": 1,
            "duel_xg_multiplier": 0.9376,
            "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": "Ville Koski, Nicolás Valentini",
            "opponent_faced": "Ville Koski, Nicolás Valentini",
            "antagonist_source": "attacking_duel",
            "projected_goals": 0,
            "goal_probability": 0.0677,
            "projected_assists": 0,
            "assist_probability": 0.1175,
            "finishing_factor": 1.1458,
            "creation_factor": 0.8,
            "fifa_overall": 81.0
          },
          "latest_10_games": [
            {
              "match_id": 16421073,
              "match_date": "2026-10-18",
              "home_team": "Málaga CF",
              "away_team": "Real Sociedad",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 68,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0644,
                "expected_assists": 0.2418,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 24,
                "accurate_pass": 21,
                "key_pass": 2,
                "tackles": 5,
                "tackles_won": 4,
                "duels_won": 8,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421062,
              "match_date": "2026-10-09",
              "home_team": "Málaga CF",
              "away_team": "Espanyol",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 90,
                "rating": 7.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.204,
                "expected_assists": 0.1723,
                "total_shots": 2,
                "shots_on_target": 2,
                "total_pass": 41,
                "accurate_pass": 29,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 1,
                "clearances": 1,
                "duels_won": 11,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416303,
              "match_date": "2026-09-20",
              "home_team": "Getafe",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Getafe",
              "stats": {
                "minutes": 90,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0453,
                "expected_assists": 0.122,
                "total_shots": 1,
                "total_pass": 38,
                "accurate_pass": 31,
                "key_pass": 2,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416338,
              "match_date": "2026-09-17",
              "home_team": "Málaga CF",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0094,
                "total_shots": 0,
                "total_pass": 24,
                "accurate_pass": 18,
                "key_pass": 1,
                "tackles": 3,
                "tackles_won": 1,
                "interceptions": 1,
                "duels_won": 7,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416347,
              "match_date": "2026-09-13",
              "home_team": "Celta Vigo",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0735,
                "expected_assists": 0.0404,
                "total_shots": 2,
                "shots_off_target": 2,
                "total_pass": 28,
                "accurate_pass": 24,
                "key_pass": 1,
                "tackles": 1,
                "interceptions": 2,
                "duels_won": 3,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416320,
              "match_date": "2026-09-06",
              "home_team": "Málaga CF",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 90,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1965,
                "expected_assists": 0.1804,
                "total_shots": 2,
                "shots_off_target": 1,
                "total_pass": 22,
                "accurate_pass": 18,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 5,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416312,
              "match_date": "2026-08-30",
              "home_team": "Real Madrid",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1257,
                "expected_assists": 0.1173,
                "total_shots": 4,
                "shots_on_target": 1,
                "total_pass": 31,
                "accurate_pass": 26,
                "key_pass": 4,
                "tackles": 3,
                "tackles_won": 1,
                "duels_won": 9,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416307,
              "match_date": "2026-08-24",
              "home_team": "Málaga CF",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Málaga CF",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 34,
                "rating": 7.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.028,
                "expected_assists": 0.0527,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 16,
                "accurate_pass": 9,
                "key_pass": 1,
                "tackles": 6,
                "tackles_won": 3,
                "interceptions": 2,
                "duels_won": 10,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421055,
              "match_date": "2026-08-19",
              "home_team": "Atlético Madrid",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 90,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0414,
                "expected_assists": 0.0262,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 23,
                "accurate_pass": 21,
                "tackles": 5,
                "tackles_won": 3,
                "duels_won": 6,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 1361,
            "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": 3.0,
            "fifa_rank": 577.0,
            "fifa_overall": 81.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 2,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.9263,
            "source_file": "data/player_rankings.csv",
            "player_name": "David Larrubia",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Marko Bakić",
                  "ranking": 1356
                },
                {
                  "player_name": "Nika Gagnidze",
                  "ranking": 1357
                },
                {
                  "player_name": "Francisco Geraldes",
                  "ranking": 1358
                },
                {
                  "player_name": "Fernando Niño",
                  "ranking": 1359
                },
                {
                  "player_name": "Iñigo Arguibide",
                  "ranking": 1360
                }
              ],
              "lower": [
                {
                  "player_name": "John Edwin Montaño",
                  "ranking": 1362
                },
                {
                  "player_name": "Samuel Xavier",
                  "ranking": 1363
                },
                {
                  "player_name": "Laziz Mirzaev",
                  "ranking": 1364
                },
                {
                  "player_name": "Shamar Nicholson",
                  "ranking": 1365
                },
                {
                  "player_name": "Juan Fernando Quintero",
                  "ranking": 1366
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.774,
          "history_matches": 9,
          "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",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "expectedGoals",
              "goals",
              "rating",
              "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",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 9,
            "data_confidence": 0.774,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.9971,
            "fbref_prior_metrics": {
              "squad": "Málaga",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 2.0,
              "minutes": 215.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 2.93,
              "shots_on_target_pct": 28.6,
              "prior_reliability": 0.16
            },
            "rationale": "XGBoost regressor (F_service) evaluated 9 historical appearances across 7 target models; FBref 2026-2027 prior blended (La Liga, Málaga, rel: 0.16, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.1013,
                "goals": 0.1287,
                "goal_rate": 0.1287,
                "shots_on_target": 0.4822,
                "total_shots": 1.6121,
                "expected_assists": 0.1573,
                "key_pass": 1.5416,
                "rating": 6.9263,
                "minutes": 84.37,
                "total_pass": 29.7907,
                "accurate_pass": 23.9491,
                "duels_won": 6.9362,
                "total_long_balls": 1.9261,
                "accurate_long_balls": 1.5327,
                "total_opp_half_passes": 22.7491,
                "accurate_opp_half_passes": 17.959,
                "crosses_total": 1.4701,
                "crosses_accurate": 0.4124,
                "touches": 56.492,
                "possession_lost": 17.0858,
                "dispossessed": 2.1142,
                "duels_lost": 7.9927,
                "aerial_lost": 0.1991,
                "total_contest": 6.5048,
                "won_contest": 3.0622,
                "ball_recovery": 4.2082,
                "challenges_lost": 1.5103,
                "fouls": 0.8754,
                "fouls_drawn": 1.0519,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.6661,
                "tackles_won": 1.8183,
                "tackles": 2.6731,
                "clearances": 0.3242,
                "blocks": 0.0661,
                "big_chances_created": 0.2062,
                "big_chances_missed": 0.0,
                "xgot": 0.0683,
                "offsides": 0.0778,
                "ball_carries": 19.4235,
                "total_progression": 119.8186,
                "progressive_carries": 4.6412,
                "shots_off_target": 1.1298
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 6,
                  "trained_at": "2026-10-23T10:05:54.625928+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 611,
                    "rows": 16533
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Real Sociedad",
                    "minutes": 68.0,
                    "is_starting": true,
                    "weight": 0.1952,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-10-09",
                    "opponent": "Espanyol",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1659,
                    "rating": 7.6
                  },
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Getafe",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.141,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Villarreal",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1199,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Celta Vigo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1019,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Levante UD",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0866,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Real Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0736,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-08-24",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 34.0,
                    "is_starting": false,
                    "weight": 0.0626,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-08-19",
                    "opponent": "Atlético Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0532,
                    "rating": 6.2
                  }
                ],
                "feature_row": {
                  "history_matches": 9.0,
                  "is_starting_11": 1.0,
                  "expectedGoals": 0.0905,
                  "totalOppositionHalfPasses": 22.1116,
                  "accurateOppositionHalfPasses": 17.2196,
                  "accuratePass": 23.0412,
                  "totalShots": 1.5086
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.10128264129161835,
                    "model_output": 0.1013,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2858
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0881
                      },
                      {
                        "name": "goals",
                        "importance": 0.0357
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0272
                      },
                      {
                        "name": "bigChanceMissed",
                        "importance": 0.0231
                      }
                    ],
                    "decomposition": {
                      "base": 0.1979,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.059
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0495
                        },
                        {
                          "name": "goals",
                          "contribution": -0.0297
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0239
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0119
                        }
                      ],
                      "others": -0.0406,
                      "total": 0.1013,
                      "log_link": true,
                      "margin_base": -1.619934,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.260809
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.214225
                        },
                        {
                          "name": "goals",
                          "margin": -0.154443
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": -0.144176
                        },
                        {
                          "name": "ballRecovery",
                          "margin": -0.080674
                        }
                      ],
                      "others_margin": -0.337195
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.12866951525211334,
                    "model_output": 0.1287,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1497
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0696
                      },
                      {
                        "name": "goals",
                        "importance": 0.0577
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0307
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0286
                      }
                    ],
                    "decomposition": {
                      "base": 0.2023,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0545
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0411
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0279
                        },
                        {
                          "name": "goals",
                          "contribution": -0.0158
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0142
                        }
                      ],
                      "others": -0.0291,
                      "total": 0.1287,
                      "log_link": true,
                      "margin_base": -1.597983,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.23866
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": -0.174308
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.138728
                        },
                        {
                          "name": "goals",
                          "margin": -0.087816
                        },
                        {
                          "name": "ballRecovery",
                          "margin": -0.086086
                        }
                      ],
                      "others_margin": -0.204247
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.4822319447994232,
                    "model_output": 0.4822,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2171
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0661
                      },
                      {
                        "name": "goals",
                        "importance": 0.0553
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0475
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0308
                      }
                    ],
                    "decomposition": {
                      "base": 0.5362,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1778
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0793
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0624
                        },
                        {
                          "name": "goals",
                          "contribution": -0.049
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": -0.0245
                        }
                      ],
                      "others": -0.0166,
                      "total": 0.4822,
                      "log_link": true,
                      "margin_base": -0.623262,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.286385
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.117732
                        },
                        {
                          "name": "ballRecovery",
                          "margin": -0.103419
                        },
                        {
                          "name": "goals",
                          "margin": -0.089521
                        },
                        {
                          "name": "totalShots_p90",
                          "margin": -0.047907
                        }
                      ],
                      "others_margin": -0.033875
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.612062931060791,
                    "model_output": 1.6121,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2864
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0656
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.051
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.031
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0298
                      }
                    ],
                    "decomposition": {
                      "base": 1.3807,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.4646
                        },
                        {
                          "name": "goals",
                          "contribution": -0.1403
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.116
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0958
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.055
                        }
                      ],
                      "others": -0.0581,
                      "total": 1.6121,
                      "log_link": false,
                      "margin_base": 1.380749,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.464592
                        },
                        {
                          "name": "goals",
                          "margin": -0.14026
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.116013
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.095761
                        },
                        {
                          "name": "ballRecovery",
                          "margin": -0.055045
                        }
                      ],
                      "others_margin": -0.058225
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.15732327103614807,
                    "model_output": 0.1573,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.1157
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0645
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0607
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0558
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 0.0644,
                      "items": [
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": 0.0137
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0159
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0105
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.008
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0082
                        }
                      ],
                      "others": 0.0366,
                      "total": 0.1573,
                      "log_link": true,
                      "margin_base": -2.741965,
                      "item_margins": [
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": 0.192563
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.185754
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.105864
                        },
                        {
                          "name": "totalPass",
                          "margin": 0.073398
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.070633
                        }
                      ],
                      "others_margin": 0.264301
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 1.541598916053772,
                    "model_output": 1.5416,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1481
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1244
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.1112
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.052
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0395
                      }
                    ],
                    "decomposition": {
                      "base": 0.6805,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.2125
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0995
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.1022
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": 0.1027
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0648
                        }
                      ],
                      "others": 0.2794,
                      "total": 1.5416,
                      "log_link": true,
                      "margin_base": -0.384987,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.271825
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.10559
                        },
                        {
                          "name": "keyPass",
                          "margin": 0.098006
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": 0.089669
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.052704
                        }
                      ],
                      "others_margin": 0.200012
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.9263014793396,
                    "model_output": 6.9263,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.059
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0483
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0421
                      },
                      {
                        "name": "rating",
                        "importance": 0.0418
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0415
                      }
                    ],
                    "decomposition": {
                      "base": 6.7683,
                      "items": [
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0457
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0437
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.0375
                        },
                        {
                          "name": "dispossessed",
                          "contribution": -0.0306
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0301
                        }
                      ],
                      "others": 0.0316,
                      "total": 6.9263,
                      "log_link": false,
                      "margin_base": 6.768281,
                      "item_margins": [
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.045711
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.043699
                        },
                        {
                          "name": "totalPass",
                          "margin": 0.037522
                        },
                        {
                          "name": "dispossessed",
                          "margin": -0.030627
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.030132
                        }
                      ],
                      "others_margin": 0.031584
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 9,
                  "role_matches": 8,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "role_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9971, quality 0.478)",
              "stats": {
                "expected_goals": 0.101,
                "goals": 0.1283,
                "goal_rate": 0.1283,
                "shots_on_target": 0.4808,
                "total_shots": 1.6074,
                "expected_assists": 0.1569,
                "key_pass": 1.5371,
                "rating": 6.9263,
                "minutes": 84.37,
                "total_pass": 29.7043,
                "accurate_pass": 23.8796,
                "duels_won": 6.9161,
                "total_long_balls": 1.9205,
                "accurate_long_balls": 1.5283,
                "total_opp_half_passes": 22.6831,
                "accurate_opp_half_passes": 17.9069,
                "crosses_total": 1.4658,
                "crosses_accurate": 0.4112,
                "touches": 56.3282,
                "possession_lost": 17.0363,
                "dispossessed": 2.1081,
                "duels_lost": 7.9695,
                "aerial_lost": 0.1985,
                "total_contest": 6.4859,
                "won_contest": 3.0533,
                "ball_recovery": 4.196,
                "challenges_lost": 1.5059,
                "fouls": 0.8729,
                "fouls_drawn": 1.0488,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.6642,
                "tackles_won": 1.813,
                "tackles": 2.6653,
                "clearances": 0.3233,
                "blocks": 0.0659,
                "big_chances_created": 0.2056,
                "big_chances_missed": 0.0,
                "xgot": 0.0681,
                "offsides": 0.0776,
                "ball_carries": 19.3672,
                "total_progression": 119.4711,
                "progressive_carries": 4.6277,
                "shots_off_target": 1.1265
              },
              "params": {
                "market_value_eur": 6300000,
                "quality_factor": 0.4781,
                "boost_factor": 0.9971,
                "reference_quality": 0.505,
                "history_matches": 9,
                "history_shrink": 0.3571,
                "market_value_known": true
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0371)",
              "stats": {
                "expected_goals": 0.101,
                "goals": 0.1235,
                "goal_rate": 0.1235,
                "shots_on_target": 0.4922,
                "total_shots": 1.6497,
                "expected_assists": 0.1569,
                "key_pass": 1.5371,
                "rating": 6.9263,
                "minutes": 84.37,
                "total_pass": 29.7043,
                "accurate_pass": 23.8796,
                "duels_won": 6.9161,
                "total_long_balls": 1.9205,
                "accurate_long_balls": 1.5283,
                "total_opp_half_passes": 22.6831,
                "accurate_opp_half_passes": 17.9069,
                "crosses_total": 1.4114,
                "crosses_accurate": 0.4112,
                "touches": 56.3282,
                "possession_lost": 17.0363,
                "dispossessed": 2.1081,
                "duels_lost": 7.9695,
                "aerial_lost": 0.1985,
                "total_contest": 6.4859,
                "won_contest": 3.0533,
                "ball_recovery": 4.196,
                "challenges_lost": 1.5059,
                "fouls": 0.855,
                "fouls_drawn": 1.0389,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.6685,
                "tackles_won": 1.8472,
                "tackles": 2.6653,
                "clearances": 0.3233,
                "blocks": 0.0659,
                "big_chances_created": 0.2056,
                "big_chances_missed": 0.0,
                "xgot": 0.0681,
                "offsides": 0.0892,
                "ball_carries": 19.3672,
                "total_progression": 119.4711,
                "progressive_carries": 4.6277,
                "shots_off_target": 1.1265
              },
              "params": {
                "blend_weight": 0.0371,
                "history_matches": 9,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.9374,
                "prior_reliability": 0.16,
                "competition": "La Liga",
                "squad": "Málaga"
              },
              "changes": [
                {
                  "stat": "totalCross",
                  "before": 1.4658,
                  "after": 1.4114
                },
                {
                  "stat": "totalShots",
                  "before": 1.6074,
                  "after": 1.6497
                },
                {
                  "stat": "wonTackle",
                  "before": 1.813,
                  "after": 1.8472
                },
                {
                  "stat": "fouls",
                  "before": 0.8729,
                  "after": 0.855
                },
                {
                  "stat": "totalOffside",
                  "before": 0.0776,
                  "after": 0.0892
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.4808,
                  "after": 0.4922
                },
                {
                  "stat": "wasFouled",
                  "before": 1.0488,
                  "after": 1.0389
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.101,
                "goals": 0.1235,
                "goal_rate": 0.1235,
                "shots_on_target": 0.4922,
                "total_shots": 1.6497,
                "expected_assists": 0.1569,
                "key_pass": 1.5371,
                "rating": 6.9263,
                "minutes": 84.37,
                "total_pass": 29.7043,
                "accurate_pass": 23.8796,
                "duels_won": 6.9161,
                "total_long_balls": 1.9205,
                "accurate_long_balls": 1.5283,
                "total_opp_half_passes": 22.6831,
                "accurate_opp_half_passes": 17.9069,
                "crosses_total": 1.4114,
                "crosses_accurate": 0.4112,
                "touches": 56.3282,
                "possession_lost": 17.0363,
                "dispossessed": 2.1081,
                "duels_lost": 7.9695,
                "aerial_lost": 0.1985,
                "total_contest": 6.4859,
                "won_contest": 3.0533,
                "ball_recovery": 4.196,
                "challenges_lost": 1.5059,
                "fouls": 0.855,
                "fouls_drawn": 1.0389,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.6685,
                "tackles_won": 1.8472,
                "tackles": 2.6653,
                "clearances": 0.3233,
                "blocks": 0.0659,
                "big_chances_created": 0.2056,
                "big_chances_missed": 0.0,
                "xgot": 0.0681,
                "offsides": 0.0892,
                "ball_carries": 19.3672,
                "total_progression": 119.4711,
                "progressive_carries": 4.6277,
                "shots_off_target": 1.1265
              },
              "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.0947,
                "goals": 0.1158,
                "goal_rate": 0.1158,
                "shots_on_target": 0.4615,
                "total_shots": 1.5468,
                "expected_assists": 0.1569,
                "key_pass": 1.5371,
                "rating": 6.9263,
                "minutes": 84.37,
                "total_pass": 29.7043,
                "accurate_pass": 23.8796,
                "duels_won": 6.9161,
                "total_long_balls": 1.9205,
                "accurate_long_balls": 1.5283,
                "total_opp_half_passes": 22.6831,
                "accurate_opp_half_passes": 17.9069,
                "crosses_total": 1.4114,
                "crosses_accurate": 0.4112,
                "touches": 56.3282,
                "possession_lost": 17.0363,
                "dispossessed": 2.1081,
                "duels_lost": 7.9695,
                "aerial_lost": 0.1985,
                "total_contest": 6.4859,
                "won_contest": 3.0533,
                "ball_recovery": 4.196,
                "challenges_lost": 1.5059,
                "fouls": 0.855,
                "fouls_drawn": 1.0389,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.6685,
                "tackles_won": 1.8472,
                "tackles": 2.6653,
                "clearances": 0.3233,
                "blocks": 0.0659,
                "big_chances_created": 0.2056,
                "big_chances_missed": 0.0,
                "xgot": 0.0639,
                "offsides": 0.0892,
                "ball_carries": 19.3672,
                "total_progression": 119.4711,
                "progressive_carries": 4.6277,
                "shots_off_target": 1.0562,
                "duel_xg_multiplier": 0.9376,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.3,
                "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": "Ville Koski, Nicolás Valentini",
                "opponent_faced": "Ville Koski, Nicolás Valentini",
                "antagonist_source": "attacking_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Ville Koski, Nicolás Valentini",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                  "duel_win_rate": 0.18,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v2",
                  "xg_multiplier": 0.9376,
                  "skill_edge": 0.0075,
                  "height_edge": -0.05,
                  "attacker_skill": 0.4781,
                  "defender_skill": 0.4613,
                  "attacker_role": "ST",
                  "attacker_mv_price_index": 1.0,
                  "defender_adjusted_parts": [
                    {
                      "player": "Ville Koski",
                      "market_value": 4300000,
                      "role": "CB",
                      "price_index": 0.75,
                      "adjusted_quality": 0.4712
                    },
                    {
                      "player": "Nicolás Valentini",
                      "market_value": 3100000,
                      "role": "CB",
                      "price_index": 0.75,
                      "adjusted_quality": 0.4515
                    }
                  ],
                  "xg_override": 0.0947
                }
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 1.6497,
                  "after": 1.5468
                },
                {
                  "stat": "shotOffTarget",
                  "before": 1.1265,
                  "after": 1.0562
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.4922,
                  "after": 0.4615
                },
                {
                  "stat": "goals",
                  "before": 0.1235,
                  "after": 0.1158
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.101,
                  "after": 0.0947
                }
              ]
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "expected_goals": 0.0947,
                "goal_rate": 0.1158,
                "goals": 0,
                "shots_on_target": 0.4615,
                "total_shots": 1.5468,
                "expected_assists": 0.1569,
                "key_pass": 1.5371,
                "rating": 6.9263,
                "minutes": 84.37,
                "total_pass": 29.7043,
                "accurate_pass": 23.8796,
                "duels_won": 6.9161,
                "total_long_balls": 1.9205,
                "accurate_long_balls": 1.5283,
                "total_opp_half_passes": 22.6831,
                "accurate_opp_half_passes": 17.9069,
                "crosses_total": 1.4114,
                "crosses_accurate": 0.4112,
                "touches": 56.3282,
                "possession_lost": 17.0363,
                "dispossessed": 2.1081,
                "duels_lost": 7.9695,
                "aerial_lost": 0.1985,
                "total_contest": 6.4859,
                "won_contest": 3.0533,
                "ball_recovery": 4.196,
                "challenges_lost": 1.5059,
                "fouls": 0.855,
                "fouls_drawn": 1.0389,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.6685,
                "tackles_won": 1.8472,
                "tackles": 2.6653,
                "clearances": 0.3233,
                "blocks": 0.0659,
                "big_chances_created": 0.2056,
                "big_chances_missed": 0.0,
                "xgot": 0.0639,
                "offsides": 0.0892,
                "ball_carries": 19.3672,
                "total_progression": 119.4711,
                "progressive_carries": 4.6277,
                "shots_off_target": 1.0562,
                "duel_xg_multiplier": 0.9376,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.3,
                "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": "Ville Koski, Nicolás Valentini",
                "opponent_faced": "Ville Koski, Nicolás Valentini",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "scoreline_reset": true,
                "team_goals": 0
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.87 (squad xG sum 1.1744, xG scale 0.7400, xA scale 0.7968, team xA 0.56 = 0.65 x lambda)",
              "stats": {
                "expected_goals": 0.0701,
                "goal_rate": 0.1158,
                "goals": 0,
                "shots_on_target": 0.4615,
                "total_shots": 1.5468,
                "expected_assists": 0.125,
                "key_pass": 1.5371,
                "rating": 6.9263,
                "minutes": 84.37,
                "total_pass": 29.7043,
                "accurate_pass": 23.8796,
                "duels_won": 6.9161,
                "total_long_balls": 1.9205,
                "accurate_long_balls": 1.5283,
                "total_opp_half_passes": 22.6831,
                "accurate_opp_half_passes": 17.9069,
                "crosses_total": 1.4114,
                "crosses_accurate": 0.4112,
                "touches": 56.3282,
                "possession_lost": 17.0363,
                "dispossessed": 2.1081,
                "duels_lost": 7.9695,
                "aerial_lost": 0.1985,
                "total_contest": 6.4859,
                "won_contest": 3.0533,
                "ball_recovery": 4.196,
                "challenges_lost": 1.5059,
                "fouls": 0.855,
                "fouls_drawn": 1.0389,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.6685,
                "tackles_won": 1.8472,
                "tackles": 2.6653,
                "clearances": 0.3233,
                "blocks": 0.0659,
                "big_chances_created": 0.2056,
                "big_chances_missed": 0.0,
                "xgot": 0.0473,
                "offsides": 0.0892,
                "ball_carries": 19.3672,
                "total_progression": 119.4711,
                "progressive_carries": 4.6277,
                "shots_off_target": 1.0562,
                "duel_xg_multiplier": 0.9376,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.3,
                "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": "Ville Koski, Nicolás Valentini",
                "opponent_faced": "Ville Koski, Nicolás Valentini",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.1458,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 0.869,
                "squad_xg_sum": 1.1744,
                "squad_xa_sum": 0.7089,
                "team_expected_assists": 0.5648,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.74,
                "xa_scale": 0.7968,
                "opponent_lambda": 1.257,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0947,
                  "after": 0.0701
                },
                {
                  "stat": "expected_assists",
                  "before": 0.1569,
                  "after": 0.125
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 81.0)",
              "stats": {
                "expected_goals": 0.0701,
                "goal_rate": 0.1158,
                "goals": 0,
                "shots_on_target": 0.4615,
                "total_shots": 1.5468,
                "expected_assists": 0.125,
                "key_pass": 1.5371,
                "rating": 6.9263,
                "minutes": 84.37,
                "total_pass": 29.7043,
                "accurate_pass": 23.8796,
                "duels_won": 6.9161,
                "total_long_balls": 1.9205,
                "accurate_long_balls": 1.5283,
                "total_opp_half_passes": 22.6831,
                "accurate_opp_half_passes": 17.9069,
                "crosses_total": 1.4114,
                "crosses_accurate": 0.4112,
                "touches": 56.3282,
                "possession_lost": 17.0363,
                "dispossessed": 2.1081,
                "duels_lost": 7.9695,
                "aerial_lost": 0.1985,
                "total_contest": 6.4859,
                "won_contest": 3.0533,
                "ball_recovery": 4.196,
                "challenges_lost": 1.5059,
                "fouls": 0.855,
                "fouls_drawn": 1.0389,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.6685,
                "tackles_won": 1.8472,
                "tackles": 2.6653,
                "clearances": 0.3233,
                "blocks": 0.0659,
                "big_chances_created": 0.2056,
                "big_chances_missed": 0.0,
                "xgot": 0.0473,
                "offsides": 0.0892,
                "ball_carries": 19.3672,
                "total_progression": 119.4711,
                "progressive_carries": 4.6277,
                "shots_off_target": 1.0562,
                "duel_xg_multiplier": 0.9376,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.3,
                "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": "Ville Koski, Nicolás Valentini",
                "opponent_faced": "Ville Koski, Nicolás Valentini",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.1458,
                "creation_factor": 0.8,
                "fifa_overall": 81.0
              },
              "params": {
                "match_squad_rank": 2,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 1361,
                "fifa_rank": 577.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 81.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "expected_goals": 0.0701,
                "goal_rate": 0.1158,
                "goals": 0,
                "shots_on_target": 0.4615,
                "total_shots": 1.5468,
                "expected_assists": 0.125,
                "key_pass": 1.5371,
                "rating": 6.9263,
                "minutes": 84.37,
                "total_pass": 29.7043,
                "accurate_pass": 23.8796,
                "duels_won": 6.9161,
                "total_long_balls": 1.9205,
                "accurate_long_balls": 1.5283,
                "total_opp_half_passes": 22.6831,
                "accurate_opp_half_passes": 17.9069,
                "crosses_total": 1.4114,
                "crosses_accurate": 0.4112,
                "touches": 56.3282,
                "possession_lost": 17.0363,
                "dispossessed": 2.1081,
                "duels_lost": 7.9695,
                "aerial_lost": 0.1985,
                "total_contest": 6.4859,
                "won_contest": 3.0533,
                "ball_recovery": 4.196,
                "challenges_lost": 1.5059,
                "fouls": 0.855,
                "fouls_drawn": 1.0389,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.6685,
                "tackles_won": 1.8472,
                "tackles": 2.6653,
                "clearances": 0.3233,
                "blocks": 0.0659,
                "big_chances_created": 0.2056,
                "big_chances_missed": 0.0,
                "xgot": 0.0473,
                "offsides": 0.0892,
                "ball_carries": 19.3672,
                "total_progression": 119.4711,
                "progressive_carries": 4.6277,
                "shots_off_target": 1.0562,
                "duel_xg_multiplier": 0.9376,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.3,
                "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": "Ville Koski, Nicolás Valentini",
                "opponent_faced": "Ville Koski, Nicolás Valentini",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0677,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.1458,
                "creation_factor": 0.8,
                "fifa_overall": 81.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0677,
                "goal_rate": 0.1158,
                "scorer_weight": 0.0803,
                "squad_weight_total": 0.91,
                "weight_share": 0.0883,
                "finishing_factor": 1.1458,
                "appearance_weight": 1.0,
                "weight_rank": 4,
                "eligible_players": 13
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "expected_goals": 0.0701,
                "goal_rate": 0.1158,
                "goals": 0,
                "shots_on_target": 0.4615,
                "total_shots": 1.5468,
                "expected_assists": 0.125,
                "key_pass": 1.5371,
                "rating": 6.9263,
                "minutes": 84.37,
                "total_pass": 29.7043,
                "accurate_pass": 23.8796,
                "duels_won": 6.9161,
                "total_long_balls": 1.9205,
                "accurate_long_balls": 1.5283,
                "total_opp_half_passes": 22.6831,
                "accurate_opp_half_passes": 17.9069,
                "crosses_total": 1.4114,
                "crosses_accurate": 0.4112,
                "touches": 56.3282,
                "possession_lost": 17.0363,
                "dispossessed": 2.1081,
                "duels_lost": 7.9695,
                "aerial_lost": 0.1985,
                "total_contest": 6.4859,
                "won_contest": 3.0533,
                "ball_recovery": 4.196,
                "challenges_lost": 1.5059,
                "fouls": 0.855,
                "fouls_drawn": 1.0389,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.6685,
                "tackles_won": 1.8472,
                "tackles": 2.6653,
                "clearances": 0.3233,
                "blocks": 0.0659,
                "big_chances_created": 0.2056,
                "big_chances_missed": 0.0,
                "xgot": 0.0473,
                "offsides": 0.0892,
                "ball_carries": 19.3672,
                "total_progression": 119.4711,
                "progressive_carries": 4.6277,
                "shots_off_target": 1.0562,
                "duel_xg_multiplier": 0.9376,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.3,
                "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": "Ville Koski, Nicolás Valentini",
                "opponent_faced": "Ville Koski, Nicolás Valentini",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0677,
                "projected_assists": 0,
                "assist_probability": 0.1175,
                "finishing_factor": 1.1458,
                "creation_factor": 0.8,
                "fifa_overall": 81.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.1175,
                "assist_rate": 0.0,
                "provider_weight": 0.1,
                "squad_weight_total": 0.5067,
                "weight_share": 0.1974,
                "creation_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 2,
                "eligible_players": 13
              }
            }
          ]
        },
        "Adam Aznou": {
          "player_id": 1466124,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 39,
          "height": 178,
          "market_value": 6200000,
          "stats": {
            "interceptions": 1,
            "tackles": 2,
            "tackles_won": 1,
            "clearances": 2,
            "aerial_won": 1,
            "total_shots": 1,
            "rating": 6.6582,
            "minutes": 90,
            "total_pass": 13,
            "accurate_pass": 11,
            "duels_won": 3,
            "total_long_balls": 1,
            "accurate_long_balls": 1,
            "total_own_half_passes": 7,
            "accurate_own_half_passes": 5,
            "total_opp_half_passes": 6,
            "accurate_opp_half_passes": 6,
            "crosses_total": 2,
            "crosses_accurate": 1,
            "touches": 31,
            "possession_lost": 9.5639,
            "dispossessed": 0.5373,
            "duels_lost": 5,
            "aerial_lost": 0,
            "total_contest": 4,
            "won_contest": 0,
            "ball_recovery": 2,
            "challenges_lost": 0,
            "fouls": 1,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assist_rate": 0.0,
            "assists": 0,
            "expected_goals": 0.077,
            "expected_assists": 0.0753,
            "shots_on_target": 0,
            "big_chances_created": 1,
            "xgot": 0.0,
            "ball_carries": 6,
            "total_progression": 51,
            "progressive_carries": 1,
            "key_pass": 1,
            "shots_off_target": 1,
            "opponent_faced": "Mariano Díaz",
            "matchup_zone": "Shape fallback",
            "antagonist_source": "formation_fallback",
            "projected_goals": 0,
            "goal_probability": 0.0741,
            "projected_assists": 0,
            "assist_probability": 0.0725,
            "finishing_factor": 0.8,
            "creation_factor": 0.8,
            "fifa_overall": 67.0
          },
          "latest_10_games": [
            {
              "match_id": 16421073,
              "match_date": "2026-10-18",
              "home_team": "Málaga CF",
              "away_team": "Real Sociedad",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Málaga CF",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 45,
                "rating": 5.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.172,
                "expected_assists": 0.1687,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 17,
                "accurate_pass": 13,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 1,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421062,
              "match_date": "2026-10-09",
              "home_team": "Málaga CF",
              "away_team": "Espanyol",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Málaga CF",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 28,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0253,
                "expected_assists": 0.0086,
                "total_shots": 1,
                "total_pass": 9,
                "accurate_pass": 8,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 6312,
            "combined_rank_score": 4601.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 9024.0,
            "fifa_overall": 67.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 15,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.6582,
            "source_file": "data/player_rankings.csv",
            "player_name": "Adam Aznou",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Xavier Arreaga",
                  "ranking": 6307
                },
                {
                  "player_name": "Gustavo Nunes",
                  "ranking": 6308
                },
                {
                  "player_name": "Tom Watson",
                  "ranking": 6309
                },
                {
                  "player_name": "Daniel Piña",
                  "ranking": 6310
                },
                {
                  "player_name": "Angus Thurgate",
                  "ranking": 6311
                }
              ],
              "lower": [
                {
                  "player_name": "Fernando Meza",
                  "ranking": 6313
                },
                {
                  "player_name": "David Miculescu",
                  "ranking": 6314
                },
                {
                  "player_name": "Dino Beširović",
                  "ranking": 6315
                },
                {
                  "player_name": "Adama Traoré",
                  "ranking": 6316
                },
                {
                  "player_name": "Enrique Triverio",
                  "ranking": 6317
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.375,
          "history_matches": 2,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "D_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "totalOppositionHalfPasses",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "ballRecovery",
              "touches",
              "totalClearance",
              "wonTackle",
              "interceptionWon",
              "dispossessed",
              "challengeLost",
              "errorLeadToAShot",
              "errorLeadToAGoal",
              "possessionLostCtrl",
              "passValueNormalized",
              "defensiveValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "totalTackle",
              "totalShots",
              "rating",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "totalShots",
              "rating"
            ],
            "history_matches": 2,
            "data_confidence": 0.375,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 0.994,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (D_service) evaluated 2 historical appearances across 7 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 7 target models",
              "stats": {
                "interceptions": 0.9064,
                "tackles": 2.2771,
                "tackles_won": 1.2576,
                "clearances": 2.3686,
                "aerial_won": 0.9132,
                "total_shots": 0.5794,
                "rating": 6.6582,
                "minutes": 90.0,
                "total_pass": 13.3243,
                "accurate_pass": 10.7027,
                "duels_won": 3.4595,
                "total_long_balls": 1.0811,
                "accurate_long_balls": 0.5405,
                "total_own_half_passes": 7.0811,
                "accurate_own_half_passes": 5.0,
                "total_opp_half_passes": 6.2432,
                "accurate_opp_half_passes": 5.7027,
                "crosses_total": 1.6216,
                "crosses_accurate": 1.0811,
                "touches": 31.027,
                "possession_lost": 9.6216,
                "dispossessed": 0.5405,
                "duels_lost": 5.4595,
                "aerial_lost": 0.0,
                "total_contest": 3.9189,
                "won_contest": 0.4595,
                "ball_recovery": 2.0811,
                "challenges_lost": 0.0,
                "fouls": 1.4595,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.1046,
                "expected_assists": 0.0951,
                "shots_on_target": 0.0,
                "big_chances_created": 0.5405,
                "xgot": 0.0,
                "ball_carries": 6.4595,
                "total_progression": 50.9768,
                "progressive_carries": 1.4595,
                "key_pass": 0.5405,
                "shots_off_target": 0.5794
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 6,
                  "trained_at": "2026-10-23T10:04:32.310343+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 626,
                    "rows": 21426
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Real Sociedad",
                    "minutes": 45.0,
                    "is_starting": false,
                    "weight": 0.5405,
                    "rating": 5.8
                  },
                  {
                    "match_date": "2026-10-09",
                    "opponent": "Espanyol",
                    "minutes": 28.0,
                    "is_starting": false,
                    "weight": 0.4595,
                    "rating": 6.4
                  }
                ],
                "feature_row": {
                  "history_matches": 2.0,
                  "is_starting_11": 1.0,
                  "totalClearance": 0.9189,
                  "aerialWon": 1.0,
                  "totalClearance_p90": 2.9537,
                  "totalTackle": 2.0,
                  "defensive_actions": 2.5405
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.9063940644264221,
                    "model_output": 0.9064,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2909
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0422
                      },
                      {
                        "name": "touches",
                        "importance": 0.0304
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0294
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.8603,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0958
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0904
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": 0.0767
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0385
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0368
                        }
                      ],
                      "others": 0.0393,
                      "total": 0.9064,
                      "log_link": true,
                      "margin_base": -0.150447,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.105558
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.099364
                        },
                        {
                          "name": "progressive_carries_p90",
                          "margin": 0.084871
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.041718
                        },
                        {
                          "name": "totalPass",
                          "margin": -0.041564
                        }
                      ],
                      "others_margin": 0.044383
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 2.2770838737487793,
                    "model_output": 2.2771,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2494
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0709
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0459
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0405
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 1.3831,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.2137
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.1323
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.1395
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": 0.1182
                        },
                        {
                          "name": "totalTackle",
                          "contribution": 0.1082
                        }
                      ],
                      "others": 0.1821,
                      "total": 2.2771,
                      "log_link": true,
                      "margin_base": 0.324299,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.143705
                        },
                        {
                          "name": "duelLost",
                          "margin": 0.079597
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.077605
                        },
                        {
                          "name": "progressive_carries_p90",
                          "margin": 0.061332
                        },
                        {
                          "name": "totalTackle",
                          "margin": 0.053039
                        }
                      ],
                      "others_margin": 0.083318
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 1.2575722932815552,
                    "model_output": 1.2576,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2138
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0741
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0462
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0368
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0292
                      }
                    ],
                    "decomposition": {
                      "base": 0.845,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1308
                        },
                        {
                          "name": "totalTackle",
                          "contribution": 0.0786
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.0736
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0704
                        },
                        {
                          "name": "challengeLost",
                          "contribution": -0.0622
                        }
                      ],
                      "others": 0.1214,
                      "total": 1.2576,
                      "log_link": true,
                      "margin_base": -0.168402,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.143916
                        },
                        {
                          "name": "totalTackle",
                          "margin": 0.077509
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.067475
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": 0.060545
                        },
                        {
                          "name": "challengeLost",
                          "margin": -0.053288
                        }
                      ],
                      "others_margin": 0.101427
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 2.3685500621795654,
                    "model_output": 2.3686,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2886
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.1626
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0929
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0369
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.02
                      }
                    ],
                    "decomposition": {
                      "base": 3.4251,
                      "items": [
                        {
                          "name": "totalClearance",
                          "contribution": -0.7789
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.365
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.2957
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.1856
                        },
                        {
                          "name": "aerialLost",
                          "contribution": -0.0921
                        }
                      ],
                      "others": -0.0693,
                      "total": 2.3685,
                      "log_link": true,
                      "margin_base": 1.231123,
                      "item_margins": [
                        {
                          "name": "totalClearance",
                          "margin": -0.258024
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.129208
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": -0.103355
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.07079
                        },
                        {
                          "name": "aerialLost",
                          "margin": -0.037099
                        }
                      ],
                      "others_margin": -0.028785
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.9131506085395813,
                    "model_output": 0.9132,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "aerialWon",
                        "importance": 0.1614
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1578
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0791
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0413
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0335
                      }
                    ],
                    "decomposition": {
                      "base": 1.3852,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": -0.2597
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.1091
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0992
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.097
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0849
                        }
                      ],
                      "others": -0.2145,
                      "total": 0.9132,
                      "log_link": true,
                      "margin_base": 0.325816,
                      "item_margins": [
                        {
                          "name": "aerialWon",
                          "margin": -0.207635
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.10201
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.093167
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": 0.08334
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.072582
                        }
                      ],
                      "others_margin": -0.210951
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.5793546438217163,
                    "model_output": 0.5794,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0997
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0736
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.034
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0332
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.4749,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.1069
                        },
                        {
                          "name": "history_matches",
                          "contribution": -0.0901
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": 0.05
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0402
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0372
                        }
                      ],
                      "others": 0.0347,
                      "total": 0.5794,
                      "log_link": false,
                      "margin_base": 0.47494,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.106918
                        },
                        {
                          "name": "history_matches",
                          "margin": -0.09009
                        },
                        {
                          "name": "progressive_carries_p90",
                          "margin": 0.050045
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.040167
                        },
                        {
                          "name": "rating",
                          "margin": -0.037227
                        }
                      ],
                      "others_margin": 0.034601
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.658198833465576,
                    "model_output": 6.6582,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "totalPass",
                        "importance": 0.0694
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0576
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.055
                      },
                      {
                        "name": "touches",
                        "importance": 0.0384
                      },
                      {
                        "name": "rating",
                        "importance": 0.0296
                      }
                    ],
                    "decomposition": {
                      "base": 6.7904,
                      "items": [
                        {
                          "name": "totalPass",
                          "contribution": -0.0416
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0271
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0266
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0159
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0157
                        }
                      ],
                      "others": -0.0913,
                      "total": 6.6582,
                      "log_link": false,
                      "margin_base": 6.790384,
                      "item_margins": [
                        {
                          "name": "totalPass",
                          "margin": -0.041552
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.027077
                        },
                        {
                          "name": "rating",
                          "margin": -0.026568
                        },
                        {
                          "name": "duelLost",
                          "margin": 0.015912
                        },
                        {
                          "name": "accuratePass",
                          "margin": -0.015651
                        }
                      ],
                      "others_margin": -0.091403
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 2,
                  "role_matches": 0,
                  "minutes_source": "position_median",
                  "volume_basis": "all_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9940, quality 0.477)",
              "stats": {
                "interceptions": 0.901,
                "tackles": 2.2634,
                "tackles_won": 1.25,
                "clearances": 2.3543,
                "aerial_won": 0.9077,
                "total_shots": 0.5759,
                "rating": 6.6582,
                "minutes": 90.0,
                "total_pass": 13.2444,
                "accurate_pass": 10.6385,
                "duels_won": 3.4387,
                "total_long_balls": 1.0746,
                "accurate_long_balls": 0.5373,
                "total_own_half_passes": 7.0386,
                "accurate_own_half_passes": 4.97,
                "total_opp_half_passes": 6.2057,
                "accurate_opp_half_passes": 5.6685,
                "crosses_total": 1.6119,
                "crosses_accurate": 1.0746,
                "touches": 30.8408,
                "possession_lost": 9.5639,
                "dispossessed": 0.5373,
                "duels_lost": 5.4267,
                "aerial_lost": 0.0,
                "total_contest": 3.8954,
                "won_contest": 0.4567,
                "ball_recovery": 2.0686,
                "challenges_lost": 0.0,
                "fouls": 1.4507,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.104,
                "expected_assists": 0.0945,
                "shots_on_target": 0.0,
                "big_chances_created": 0.5373,
                "xgot": 0.0,
                "ball_carries": 6.4207,
                "total_progression": 50.6709,
                "progressive_carries": 1.4507,
                "key_pass": 0.5373,
                "shots_off_target": 0.5759
              },
              "params": {
                "market_value_eur": 6200000,
                "quality_factor": 0.4769,
                "boost_factor": 0.994,
                "reference_quality": 0.505,
                "history_matches": 2,
                "history_shrink": 0.7143,
                "market_value_known": true
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 0.901,
                "tackles": 2.2634,
                "tackles_won": 1.25,
                "clearances": 2.3543,
                "aerial_won": 0.9077,
                "total_shots": 0.5759,
                "rating": 6.6582,
                "minutes": 90.0,
                "total_pass": 13.2444,
                "accurate_pass": 10.6385,
                "duels_won": 3.4387,
                "total_long_balls": 1.0746,
                "accurate_long_balls": 0.5373,
                "total_own_half_passes": 7.0386,
                "accurate_own_half_passes": 4.97,
                "total_opp_half_passes": 6.2057,
                "accurate_opp_half_passes": 5.6685,
                "crosses_total": 1.6119,
                "crosses_accurate": 1.0746,
                "touches": 30.8408,
                "possession_lost": 9.5639,
                "dispossessed": 0.5373,
                "duels_lost": 5.4267,
                "aerial_lost": 0.0,
                "total_contest": 3.8954,
                "won_contest": 0.4567,
                "ball_recovery": 2.0686,
                "challenges_lost": 0.0,
                "fouls": 1.4507,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.104,
                "expected_assists": 0.0945,
                "shots_on_target": 0.0,
                "big_chances_created": 0.5373,
                "xgot": 0.0,
                "ball_carries": 6.4207,
                "total_progression": 50.6709,
                "progressive_carries": 1.4507,
                "key_pass": 0.5373,
                "shots_off_target": 0.5759
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "interceptions": 0.901,
                "tackles": 2.2634,
                "tackles_won": 1.25,
                "clearances": 2.3543,
                "aerial_won": 0.9077,
                "total_shots": 0.5759,
                "rating": 6.6582,
                "minutes": 90.0,
                "total_pass": 13.2444,
                "accurate_pass": 10.6385,
                "duels_won": 3.4387,
                "total_long_balls": 1.0746,
                "accurate_long_balls": 0.5373,
                "total_own_half_passes": 7.0386,
                "accurate_own_half_passes": 4.97,
                "total_opp_half_passes": 6.2057,
                "accurate_opp_half_passes": 5.6685,
                "crosses_total": 1.6119,
                "crosses_accurate": 1.0746,
                "touches": 30.8408,
                "possession_lost": 9.5639,
                "dispossessed": 0.5373,
                "duels_lost": 5.4267,
                "aerial_lost": 0.0,
                "total_contest": 3.8954,
                "won_contest": 0.4567,
                "ball_recovery": 2.0686,
                "challenges_lost": 0.0,
                "fouls": 1.4507,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.104,
                "expected_assists": 0.0945,
                "shots_on_target": 0.0,
                "big_chances_created": 0.5373,
                "xgot": 0.0,
                "ball_carries": 6.4207,
                "total_progression": 50.6709,
                "progressive_carries": 1.4507,
                "key_pass": 0.5373,
                "shots_off_target": 0.5759,
                "opponent_faced": "Mariano Díaz",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Mariano Díaz",
                  "matchup_zone": "Shape fallback"
                }
              }
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "interceptions": 0.901,
                "tackles": 2.2634,
                "tackles_won": 1.25,
                "clearances": 2.3543,
                "aerial_won": 0.9077,
                "total_shots": 0.5759,
                "rating": 6.6582,
                "minutes": 90.0,
                "total_pass": 13.2444,
                "accurate_pass": 10.6385,
                "duels_won": 3.4387,
                "total_long_balls": 1.0746,
                "accurate_long_balls": 0.5373,
                "total_own_half_passes": 7.0386,
                "accurate_own_half_passes": 4.97,
                "total_opp_half_passes": 6.2057,
                "accurate_opp_half_passes": 5.6685,
                "crosses_total": 1.6119,
                "crosses_accurate": 1.0746,
                "touches": 30.8408,
                "possession_lost": 9.5639,
                "dispossessed": 0.5373,
                "duels_lost": 5.4267,
                "aerial_lost": 0.0,
                "total_contest": 3.8954,
                "won_contest": 0.4567,
                "ball_recovery": 2.0686,
                "challenges_lost": 0.0,
                "fouls": 1.4507,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.104,
                "expected_assists": 0.0945,
                "shots_on_target": 0.0,
                "big_chances_created": 0.5373,
                "xgot": 0.0,
                "ball_carries": 6.4207,
                "total_progression": 50.6709,
                "progressive_carries": 1.4507,
                "key_pass": 0.5373,
                "shots_off_target": 0.5759,
                "opponent_faced": "Mariano Díaz",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "scoreline_reset": true,
                "team_goals": 0
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.87 (squad xG sum 1.1744, xG scale 0.7400, xA scale 0.7968, team xA 0.56 = 0.65 x lambda)",
              "stats": {
                "interceptions": 0.901,
                "tackles": 2.2634,
                "tackles_won": 1.25,
                "clearances": 2.3543,
                "aerial_won": 0.9077,
                "total_shots": 0.5759,
                "rating": 6.6582,
                "minutes": 90.0,
                "total_pass": 13.2444,
                "accurate_pass": 10.6385,
                "duels_won": 3.4387,
                "total_long_balls": 1.0746,
                "accurate_long_balls": 0.5373,
                "total_own_half_passes": 7.0386,
                "accurate_own_half_passes": 4.97,
                "total_opp_half_passes": 6.2057,
                "accurate_opp_half_passes": 5.6685,
                "crosses_total": 1.6119,
                "crosses_accurate": 1.0746,
                "touches": 30.8408,
                "possession_lost": 9.5639,
                "dispossessed": 0.5373,
                "duels_lost": 5.4267,
                "aerial_lost": 0.0,
                "total_contest": 3.8954,
                "won_contest": 0.4567,
                "ball_recovery": 2.0686,
                "challenges_lost": 0.0,
                "fouls": 1.4507,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.077,
                "expected_assists": 0.0753,
                "shots_on_target": 0.0,
                "big_chances_created": 0.5373,
                "xgot": 0.0,
                "ball_carries": 6.4207,
                "total_progression": 50.6709,
                "progressive_carries": 1.4507,
                "key_pass": 0.5373,
                "shots_off_target": 0.5759,
                "opponent_faced": "Mariano Díaz",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 0.869,
                "squad_xg_sum": 1.1744,
                "squad_xa_sum": 0.7089,
                "team_expected_assists": 0.5648,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.74,
                "xa_scale": 0.7968,
                "opponent_lambda": 1.257,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.104,
                  "after": 0.077
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0945,
                  "after": 0.0753
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 67.0)",
              "stats": {
                "interceptions": 0.901,
                "tackles": 2.2634,
                "tackles_won": 1.25,
                "clearances": 2.3543,
                "aerial_won": 0.9077,
                "total_shots": 0.5759,
                "rating": 6.6582,
                "minutes": 90.0,
                "total_pass": 13.2444,
                "accurate_pass": 10.6385,
                "duels_won": 3.4387,
                "total_long_balls": 1.0746,
                "accurate_long_balls": 0.5373,
                "total_own_half_passes": 7.0386,
                "accurate_own_half_passes": 4.97,
                "total_opp_half_passes": 6.2057,
                "accurate_opp_half_passes": 5.6685,
                "crosses_total": 1.6119,
                "crosses_accurate": 1.0746,
                "touches": 30.8408,
                "possession_lost": 9.5639,
                "dispossessed": 0.5373,
                "duels_lost": 5.4267,
                "aerial_lost": 0.0,
                "total_contest": 3.8954,
                "won_contest": 0.4567,
                "ball_recovery": 2.0686,
                "challenges_lost": 0.0,
                "fouls": 1.4507,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.077,
                "expected_assists": 0.0753,
                "shots_on_target": 0.0,
                "big_chances_created": 0.5373,
                "xgot": 0.0,
                "ball_carries": 6.4207,
                "total_progression": 50.6709,
                "progressive_carries": 1.4507,
                "key_pass": 0.5373,
                "shots_off_target": 0.5759,
                "opponent_faced": "Mariano Díaz",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 0.8,
                "fifa_overall": 67.0
              },
              "params": {
                "match_squad_rank": 15,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 6312,
                "fifa_rank": 9024.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 67.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "interceptions": 0.901,
                "tackles": 2.2634,
                "tackles_won": 1.25,
                "clearances": 2.3543,
                "aerial_won": 0.9077,
                "total_shots": 0.5759,
                "rating": 6.6582,
                "minutes": 90.0,
                "total_pass": 13.2444,
                "accurate_pass": 10.6385,
                "duels_won": 3.4387,
                "total_long_balls": 1.0746,
                "accurate_long_balls": 0.5373,
                "total_own_half_passes": 7.0386,
                "accurate_own_half_passes": 4.97,
                "total_opp_half_passes": 6.2057,
                "accurate_opp_half_passes": 5.6685,
                "crosses_total": 1.6119,
                "crosses_accurate": 1.0746,
                "touches": 30.8408,
                "possession_lost": 9.5639,
                "dispossessed": 0.5373,
                "duels_lost": 5.4267,
                "aerial_lost": 0.0,
                "total_contest": 3.8954,
                "won_contest": 0.4567,
                "ball_recovery": 2.0686,
                "challenges_lost": 0.0,
                "fouls": 1.4507,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.077,
                "expected_assists": 0.0753,
                "shots_on_target": 0.0,
                "big_chances_created": 0.5373,
                "xgot": 0.0,
                "ball_carries": 6.4207,
                "total_progression": 50.6709,
                "progressive_carries": 1.4507,
                "key_pass": 0.5373,
                "shots_off_target": 0.5759,
                "opponent_faced": "Mariano Díaz",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0741,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 0.8,
                "fifa_overall": 67.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0741,
                "goal_rate": 0.0,
                "scorer_weight": 0.0616,
                "squad_weight_total": 0.91,
                "weight_share": 0.0677,
                "finishing_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 5,
                "eligible_players": 13
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "interceptions": 0.901,
                "tackles": 2.2634,
                "tackles_won": 1.25,
                "clearances": 2.3543,
                "aerial_won": 0.9077,
                "total_shots": 0.5759,
                "rating": 6.6582,
                "minutes": 90.0,
                "total_pass": 13.2444,
                "accurate_pass": 10.6385,
                "duels_won": 3.4387,
                "total_long_balls": 1.0746,
                "accurate_long_balls": 0.5373,
                "total_own_half_passes": 7.0386,
                "accurate_own_half_passes": 4.97,
                "total_opp_half_passes": 6.2057,
                "accurate_opp_half_passes": 5.6685,
                "crosses_total": 1.6119,
                "crosses_accurate": 1.0746,
                "touches": 30.8408,
                "possession_lost": 9.5639,
                "dispossessed": 0.5373,
                "duels_lost": 5.4267,
                "aerial_lost": 0.0,
                "total_contest": 3.8954,
                "won_contest": 0.4567,
                "ball_recovery": 2.0686,
                "challenges_lost": 0.0,
                "fouls": 1.4507,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.077,
                "expected_assists": 0.0753,
                "shots_on_target": 0.0,
                "big_chances_created": 0.5373,
                "xgot": 0.0,
                "ball_carries": 6.4207,
                "total_progression": 50.6709,
                "progressive_carries": 1.4507,
                "key_pass": 0.5373,
                "shots_off_target": 0.5759,
                "opponent_faced": "Mariano Díaz",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0741,
                "projected_assists": 0,
                "assist_probability": 0.0725,
                "finishing_factor": 0.8,
                "creation_factor": 0.8,
                "fifa_overall": 67.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0725,
                "assist_rate": 0.0,
                "provider_weight": 0.0602,
                "squad_weight_total": 0.5067,
                "weight_share": 0.1189,
                "creation_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 3,
                "eligible_players": 13
              }
            }
          ]
        },
        "Ángel Recio": {
          "player_id": 1123218,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 15,
          "height": 185,
          "market_value": 1000000,
          "stats": {
            "interceptions": 1,
            "tackles": 1,
            "tackles_won": 1,
            "clearances": 4,
            "aerial_won": 2,
            "total_shots": 1,
            "rating": 6.8684,
            "minutes": 90,
            "total_pass": 59,
            "accurate_pass": 55,
            "duels_won": 3,
            "total_long_balls": 5,
            "accurate_long_balls": 2,
            "total_own_half_passes": 37,
            "accurate_own_half_passes": 36,
            "total_opp_half_passes": 22,
            "accurate_opp_half_passes": 19,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 69,
            "possession_lost": 4.7179,
            "dispossessed": 0.0,
            "duels_lost": 3,
            "aerial_lost": 1,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 4,
            "challenges_lost": 1,
            "fouls": 1,
            "fouls_drawn": 0,
            "blocks": 1,
            "goal_rate": 0.0,
            "goals": 0,
            "assist_rate": 0.0,
            "assists": 0,
            "expected_goals": 0.0157,
            "expected_assists": 0.0067,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.004,
            "ball_carries": 21,
            "total_progression": 91,
            "progressive_carries": 1,
            "key_pass": 0,
            "shots_off_target": 1,
            "tackles_in_zone": 1.0,
            "tackles_won_in_zone": 0.9,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.6,
            "aerial_duels_won": 0.7,
            "defensive_success_rate": 0.791,
            "opponent_faced": "Lucas Boyé",
            "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.0067,
            "finishing_factor": 0.8,
            "creation_factor": 0.8562,
            "fifa_overall": 65.0
          },
          "latest_10_games": [
            {
              "match_id": 16421073,
              "match_date": "2026-10-18",
              "home_team": "Málaga CF",
              "away_team": "Real Sociedad",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 90,
                "rating": 5.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0223,
                "expected_assists": 0.0083,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 57,
                "accurate_pass": 55,
                "tackles": 2,
                "tackles_won": 1,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421062,
              "match_date": "2026-10-09",
              "home_team": "Málaga CF",
              "away_team": "Espanyol",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 90,
                "rating": 7.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0297,
                "expected_assists": 0.0094,
                "total_shots": 2,
                "shots_off_target": 1,
                "total_pass": 67,
                "accurate_pass": 60,
                "clearances": 10,
                "aerial_won": 5,
                "duels_won": 7,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416303,
              "match_date": "2026-09-20",
              "home_team": "Getafe",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Getafe",
              "stats": {
                "minutes": 90,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0262,
                "expected_assists": 0.0051,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 58,
                "accurate_pass": 52,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416338,
              "match_date": "2026-09-17",
              "home_team": "Málaga CF",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 90,
                "rating": 8.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0023,
                "total_shots": 0,
                "total_pass": 33,
                "accurate_pass": 32,
                "tackles": 3,
                "tackles_won": 3,
                "clearances": 2,
                "duels_won": 3,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416347,
              "match_date": "2026-09-13",
              "home_team": "Celta Vigo",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 90,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.069,
                "expected_assists": 0.012,
                "total_shots": 2,
                "shots_off_target": 2,
                "total_pass": 67,
                "accurate_pass": 65,
                "interceptions": 2,
                "clearances": 2,
                "aerial_won": 2,
                "duels_won": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416320,
              "match_date": "2026-09-06",
              "home_team": "Málaga CF",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 90,
                "rating": 7.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0155,
                "expected_assists": 0.0173,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 102,
                "accurate_pass": 96,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 3,
                "aerial_won": 2,
                "duels_won": 3,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416312,
              "match_date": "2026-08-30",
              "home_team": "Real Madrid",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 90,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0073,
                "total_shots": 0,
                "total_pass": 40,
                "accurate_pass": 33,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 6,
                "duels_won": 3,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416307,
              "match_date": "2026-08-24",
              "home_team": "Málaga CF",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 90,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0082,
                "total_shots": 0,
                "total_pass": 59,
                "accurate_pass": 56,
                "key_pass": 1,
                "clearances": 4,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421055,
              "match_date": "2026-08-19",
              "home_team": "Atlético Madrid",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 90,
                "rating": 6.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0098,
                "total_shots": 0,
                "total_pass": 57,
                "accurate_pass": 50,
                "tackles": 1,
                "interceptions": 2,
                "clearances": 3,
                "duels_won": 1,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 7921,
            "combined_rank_score": 6392.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 983.0,
            "sofascore_rating": 6.2333,
            "sofascore_appearances": 3.0,
            "fifa_rank": 11802.0,
            "fifa_overall": 65.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 6,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.8684,
            "source_file": "data/player_rankings.csv",
            "player_name": "Ángel Recio",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Fabian Schleusener",
                  "ranking": 7916
                },
                {
                  "player_name": "Johannes Schenk",
                  "ranking": 7917
                },
                {
                  "player_name": "Tim Oberdorf",
                  "ranking": 7918
                },
                {
                  "player_name": "Pablo Santos",
                  "ranking": 7919
                },
                {
                  "player_name": "Khalid Eissa",
                  "ranking": 7920
                }
              ],
              "lower": [
                {
                  "player_name": "Ramón Martínez",
                  "ranking": 7922
                },
                {
                  "player_name": "Adis Jašić",
                  "ranking": 7923
                },
                {
                  "player_name": "Chan Kim",
                  "ranking": 7924
                },
                {
                  "player_name": "Juan Manuel Zapata",
                  "ranking": 7925
                },
                {
                  "player_name": "Loïs Diony",
                  "ranking": 7926
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.75,
          "history_matches": 9,
          "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",
              "totalTackle",
              "totalShots",
              "rating",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "totalShots",
              "rating"
            ],
            "history_matches": 9,
            "data_confidence": 0.75,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 0.9928,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (D_service) evaluated 9 historical appearances across 7 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 7 target models",
              "stats": {
                "interceptions": 0.8776,
                "tackles": 1.1684,
                "tackles_won": 0.7082,
                "clearances": 4.3651,
                "aerial_won": 1.6116,
                "total_shots": 0.72,
                "rating": 6.8684,
                "minutes": 90.0,
                "total_pass": 59.7135,
                "accurate_pass": 55.3964,
                "duels_won": 3.4629,
                "total_long_balls": 4.6634,
                "accurate_long_balls": 2.0024,
                "total_own_half_passes": 37.2088,
                "accurate_own_half_passes": 36.4022,
                "total_opp_half_passes": 22.5046,
                "accurate_opp_half_passes": 18.9941,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 69.7982,
                "possession_lost": 4.7521,
                "dispossessed": 0.0,
                "duels_lost": 2.5186,
                "aerial_lost": 1.4366,
                "total_contest": 0.3363,
                "won_contest": 0.3363,
                "ball_recovery": 3.5549,
                "challenges_lost": 0.5488,
                "fouls": 0.5332,
                "fouls_drawn": 0.4055,
                "blocks": 0.7482,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0214,
                "expected_assists": 0.0085,
                "shots_on_target": 0.0866,
                "big_chances_created": 0.0,
                "xgot": 0.0054,
                "ball_carries": 21.2653,
                "total_progression": 91.5825,
                "progressive_carries": 0.9316,
                "key_pass": 0.0626,
                "shots_off_target": 0.6334
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 6,
                  "trained_at": "2026-10-23T10:04:32.310343+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 626,
                    "rows": 21426
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Real Sociedad",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1952,
                    "rating": 5.8
                  },
                  {
                    "match_date": "2026-10-09",
                    "opponent": "Espanyol",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1659,
                    "rating": 7.4
                  },
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Getafe",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.141,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Villarreal",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1199,
                    "rating": 8.0
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Celta Vigo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1019,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Levante UD",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0866,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Real Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0736,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-08-24",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0626,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-19",
                    "opponent": "Atlético Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0532,
                    "rating": 6.0
                  }
                ],
                "feature_row": {
                  "history_matches": 9.0,
                  "is_starting_11": 1.0,
                  "totalClearance": 3.7786,
                  "aerialWon": 1.543,
                  "totalClearance_p90": 3.7786,
                  "totalTackle": 1.1782,
                  "defensive_actions": 1.6486
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.8776026964187622,
                    "model_output": 0.8776,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2909
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0422
                      },
                      {
                        "name": "touches",
                        "importance": 0.0304
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0294
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.8603,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1113
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0731
                        },
                        {
                          "name": "interceptionWon_p90",
                          "contribution": -0.035
                        },
                        {
                          "name": "touches",
                          "contribution": 0.0157
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.0099
                        }
                      ],
                      "others": -0.0115,
                      "total": 0.8776,
                      "log_link": true,
                      "margin_base": -0.150447,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.12164
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.078239
                        },
                        {
                          "name": "interceptionWon_p90",
                          "margin": -0.03977
                        },
                        {
                          "name": "touches",
                          "margin": 0.017987
                        },
                        {
                          "name": "totalPass",
                          "margin": 0.011179
                        }
                      ],
                      "others_margin": -0.012911
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.1683621406555176,
                    "model_output": 1.1684,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2494
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0709
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0459
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0405
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 1.3831,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1568
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": -0.0887
                        },
                        {
                          "name": "totalTackle",
                          "contribution": -0.0399
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0335
                        },
                        {
                          "name": "interceptionWon_p90",
                          "contribution": -0.03
                        }
                      ],
                      "others": -0.1794,
                      "total": 1.1684,
                      "log_link": true,
                      "margin_base": 0.324299,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.107384
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": -0.059301
                        },
                        {
                          "name": "totalTackle",
                          "margin": -0.027877
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.02404
                        },
                        {
                          "name": "interceptionWon_p90",
                          "margin": -0.02198
                        }
                      ],
                      "others_margin": -0.142883
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.7081746459007263,
                    "model_output": 0.7082,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2138
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0741
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0462
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0368
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0292
                      }
                    ],
                    "decomposition": {
                      "base": 0.845,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0952
                        },
                        {
                          "name": "totalTackle",
                          "contribution": -0.0387
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": -0.035
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": -0.0252
                        },
                        {
                          "name": "challengeLost",
                          "contribution": 0.0247
                        }
                      ],
                      "others": -0.1578,
                      "total": 0.7082,
                      "log_link": true,
                      "margin_base": -0.168402,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.106724
                        },
                        {
                          "name": "totalTackle",
                          "margin": -0.04203
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": -0.039638
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": -0.029516
                        },
                        {
                          "name": "challengeLost",
                          "margin": 0.028896
                        }
                      ],
                      "others_margin": -0.201099
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 4.365100383758545,
                    "model_output": 4.3651,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2886
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.1626
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0929
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0369
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.02
                      }
                    ],
                    "decomposition": {
                      "base": 3.4251,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.439
                        },
                        {
                          "name": "totalClearance",
                          "contribution": 0.3138
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.2725
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.2509
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.1468
                        }
                      ],
                      "others": 0.062,
                      "total": 4.3651,
                      "log_link": true,
                      "margin_base": 1.231123,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.120605
                        },
                        {
                          "name": "totalClearance",
                          "margin": 0.078085
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.06745
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.062258
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.034716
                        }
                      ],
                      "others_margin": 0.014303
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 1.6115745306015015,
                    "model_output": 1.6116,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "aerialWon",
                        "importance": 0.1614
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1578
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0791
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0413
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0335
                      }
                    ],
                    "decomposition": {
                      "base": 1.3852,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1792
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0729
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0567
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0478
                        },
                        {
                          "name": "totalClearance",
                          "contribution": 0.0323
                        }
                      ],
                      "others": -0.0491,
                      "total": 1.6116,
                      "log_link": true,
                      "margin_base": 0.325816,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.12164
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.045569
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.035253
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.029819
                        },
                        {
                          "name": "totalClearance",
                          "margin": 0.019656
                        }
                      ],
                      "others_margin": -0.030035
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.719980001449585,
                    "model_output": 0.72,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0997
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0736
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.034
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0332
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.4749,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.2269
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.052
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0215
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": 0.0166
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0165
                        }
                      ],
                      "others": -0.0124,
                      "total": 0.72,
                      "log_link": false,
                      "margin_base": 0.47494,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.226869
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.052029
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.021523
                        },
                        {
                          "name": "ballRecovery",
                          "margin": 0.01657
                        },
                        {
                          "name": "totalProgression",
                          "margin": -0.016513
                        }
                      ],
                      "others_margin": -0.012392
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.868441581726074,
                    "model_output": 6.8684,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "totalPass",
                        "importance": 0.0694
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0576
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.055
                      },
                      {
                        "name": "touches",
                        "importance": 0.0384
                      },
                      {
                        "name": "rating",
                        "importance": 0.0296
                      }
                    ],
                    "decomposition": {
                      "base": 6.7904,
                      "items": [
                        {
                          "name": "totalPass",
                          "contribution": 0.04
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0307
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0174
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0151
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0149
                        }
                      ],
                      "others": 0.0199,
                      "total": 6.8684,
                      "log_link": false,
                      "margin_base": 6.790384,
                      "item_margins": [
                        {
                          "name": "totalPass",
                          "margin": 0.040013
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.030659
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.017383
                        },
                        {
                          "name": "rating",
                          "margin": -0.015108
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.01494
                        }
                      ],
                      "others_margin": 0.020053
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 9,
                  "role_matches": 9,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "role_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9928, quality 0.437)",
              "stats": {
                "interceptions": 0.8713,
                "tackles": 1.1599,
                "tackles_won": 0.7031,
                "clearances": 4.3337,
                "aerial_won": 1.6,
                "total_shots": 0.7148,
                "rating": 6.8684,
                "minutes": 90.0,
                "total_pass": 59.2836,
                "accurate_pass": 54.9975,
                "duels_won": 3.438,
                "total_long_balls": 4.6298,
                "accurate_long_balls": 1.988,
                "total_own_half_passes": 36.9409,
                "accurate_own_half_passes": 36.1401,
                "total_opp_half_passes": 22.3426,
                "accurate_opp_half_passes": 18.8573,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 69.2957,
                "possession_lost": 4.7179,
                "dispossessed": 0.0,
                "duels_lost": 2.5005,
                "aerial_lost": 1.4263,
                "total_contest": 0.3339,
                "won_contest": 0.3339,
                "ball_recovery": 3.5293,
                "challenges_lost": 0.5448,
                "fouls": 0.5294,
                "fouls_drawn": 0.4026,
                "blocks": 0.7428,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0212,
                "expected_assists": 0.0084,
                "shots_on_target": 0.086,
                "big_chances_created": 0.0,
                "xgot": 0.0054,
                "ball_carries": 21.1122,
                "total_progression": 90.9231,
                "progressive_carries": 0.9249,
                "key_pass": 0.0621,
                "shots_off_target": 0.6288
              },
              "params": {
                "market_value_eur": 1000000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9928,
                "reference_quality": 0.505,
                "history_matches": 9,
                "history_shrink": 0.3571,
                "market_value_known": true
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 0.8713,
                "tackles": 1.1599,
                "tackles_won": 0.7031,
                "clearances": 4.3337,
                "aerial_won": 1.6,
                "total_shots": 0.7148,
                "rating": 6.8684,
                "minutes": 90.0,
                "total_pass": 59.2836,
                "accurate_pass": 54.9975,
                "duels_won": 3.438,
                "total_long_balls": 4.6298,
                "accurate_long_balls": 1.988,
                "total_own_half_passes": 36.9409,
                "accurate_own_half_passes": 36.1401,
                "total_opp_half_passes": 22.3426,
                "accurate_opp_half_passes": 18.8573,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 69.2957,
                "possession_lost": 4.7179,
                "dispossessed": 0.0,
                "duels_lost": 2.5005,
                "aerial_lost": 1.4263,
                "total_contest": 0.3339,
                "won_contest": 0.3339,
                "ball_recovery": 3.5293,
                "challenges_lost": 0.5448,
                "fouls": 0.5294,
                "fouls_drawn": 0.4026,
                "blocks": 0.7428,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0212,
                "expected_assists": 0.0084,
                "shots_on_target": 0.086,
                "big_chances_created": 0.0,
                "xgot": 0.0054,
                "ball_carries": 21.1122,
                "total_progression": 90.9231,
                "progressive_carries": 0.9249,
                "key_pass": 0.0621,
                "shots_off_target": 0.6288
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "interceptions": 0.8713,
                "tackles": 1.1599,
                "tackles_won": 0.7031,
                "clearances": 4.3337,
                "aerial_won": 1.6,
                "total_shots": 0.7148,
                "rating": 6.8684,
                "minutes": 90.0,
                "total_pass": 59.2836,
                "accurate_pass": 54.9975,
                "duels_won": 3.438,
                "total_long_balls": 4.6298,
                "accurate_long_balls": 1.988,
                "total_own_half_passes": 36.9409,
                "accurate_own_half_passes": 36.1401,
                "total_opp_half_passes": 22.3426,
                "accurate_opp_half_passes": 18.8573,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 69.2957,
                "possession_lost": 4.7179,
                "dispossessed": 0.0,
                "duels_lost": 2.5005,
                "aerial_lost": 1.4263,
                "total_contest": 0.3339,
                "won_contest": 0.3339,
                "ball_recovery": 3.5293,
                "challenges_lost": 0.5448,
                "fouls": 0.5294,
                "fouls_drawn": 0.4026,
                "blocks": 0.7428,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0212,
                "expected_assists": 0.0084,
                "shots_on_target": 0.086,
                "big_chances_created": 0.0,
                "xgot": 0.0054,
                "ball_carries": 21.1122,
                "total_progression": 90.9231,
                "progressive_carries": 0.9249,
                "key_pass": 0.0621,
                "shots_off_target": 0.6288,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.9,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.791,
                "opponent_faced": "Lucas Boyé",
                "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": "Lucas Boyé",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle"
                }
              }
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "interceptions": 0.8713,
                "tackles": 1.1599,
                "tackles_won": 0.7031,
                "clearances": 4.3337,
                "aerial_won": 1.6,
                "total_shots": 0.7148,
                "rating": 6.8684,
                "minutes": 90.0,
                "total_pass": 59.2836,
                "accurate_pass": 54.9975,
                "duels_won": 3.438,
                "total_long_balls": 4.6298,
                "accurate_long_balls": 1.988,
                "total_own_half_passes": 36.9409,
                "accurate_own_half_passes": 36.1401,
                "total_opp_half_passes": 22.3426,
                "accurate_opp_half_passes": 18.8573,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 69.2957,
                "possession_lost": 4.7179,
                "dispossessed": 0.0,
                "duels_lost": 2.5005,
                "aerial_lost": 1.4263,
                "total_contest": 0.3339,
                "won_contest": 0.3339,
                "ball_recovery": 3.5293,
                "challenges_lost": 0.5448,
                "fouls": 0.5294,
                "fouls_drawn": 0.4026,
                "blocks": 0.7428,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0212,
                "expected_assists": 0.0084,
                "shots_on_target": 0.086,
                "big_chances_created": 0.0,
                "xgot": 0.0054,
                "ball_carries": 21.1122,
                "total_progression": 90.9231,
                "progressive_carries": 0.9249,
                "key_pass": 0.0621,
                "shots_off_target": 0.6288,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.9,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.791,
                "opponent_faced": "Lucas Boyé",
                "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": {
                "scoreline_reset": true,
                "team_goals": 0
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.87 (squad xG sum 1.1744, xG scale 0.7400, xA scale 0.7968, team xA 0.56 = 0.65 x lambda)",
              "stats": {
                "interceptions": 0.8713,
                "tackles": 1.1599,
                "tackles_won": 0.7031,
                "clearances": 4.3337,
                "aerial_won": 1.6,
                "total_shots": 0.7148,
                "rating": 6.8684,
                "minutes": 90.0,
                "total_pass": 59.2836,
                "accurate_pass": 54.9975,
                "duels_won": 3.438,
                "total_long_balls": 4.6298,
                "accurate_long_balls": 1.988,
                "total_own_half_passes": 36.9409,
                "accurate_own_half_passes": 36.1401,
                "total_opp_half_passes": 22.3426,
                "accurate_opp_half_passes": 18.8573,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 69.2957,
                "possession_lost": 4.7179,
                "dispossessed": 0.0,
                "duels_lost": 2.5005,
                "aerial_lost": 1.4263,
                "total_contest": 0.3339,
                "won_contest": 0.3339,
                "ball_recovery": 3.5293,
                "challenges_lost": 0.5448,
                "fouls": 0.5294,
                "fouls_drawn": 0.4026,
                "blocks": 0.7428,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0157,
                "expected_assists": 0.0067,
                "shots_on_target": 0.086,
                "big_chances_created": 0.0,
                "xgot": 0.004,
                "ball_carries": 21.1122,
                "total_progression": 90.9231,
                "progressive_carries": 0.9249,
                "key_pass": 0.0621,
                "shots_off_target": 0.6288,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.9,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.791,
                "opponent_faced": "Lucas Boyé",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 0.8562
              },
              "params": {
                "team_lambda": 0.869,
                "squad_xg_sum": 1.1744,
                "squad_xa_sum": 0.7089,
                "team_expected_assists": 0.5648,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.74,
                "xa_scale": 0.7968,
                "opponent_lambda": 1.257,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0212,
                  "after": 0.0157
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 65.0)",
              "stats": {
                "interceptions": 0.8713,
                "tackles": 1.1599,
                "tackles_won": 0.7031,
                "clearances": 4.3337,
                "aerial_won": 1.6,
                "total_shots": 0.7148,
                "rating": 6.8684,
                "minutes": 90.0,
                "total_pass": 59.2836,
                "accurate_pass": 54.9975,
                "duels_won": 3.438,
                "total_long_balls": 4.6298,
                "accurate_long_balls": 1.988,
                "total_own_half_passes": 36.9409,
                "accurate_own_half_passes": 36.1401,
                "total_opp_half_passes": 22.3426,
                "accurate_opp_half_passes": 18.8573,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 69.2957,
                "possession_lost": 4.7179,
                "dispossessed": 0.0,
                "duels_lost": 2.5005,
                "aerial_lost": 1.4263,
                "total_contest": 0.3339,
                "won_contest": 0.3339,
                "ball_recovery": 3.5293,
                "challenges_lost": 0.5448,
                "fouls": 0.5294,
                "fouls_drawn": 0.4026,
                "blocks": 0.7428,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0157,
                "expected_assists": 0.0067,
                "shots_on_target": 0.086,
                "big_chances_created": 0.0,
                "xgot": 0.004,
                "ball_carries": 21.1122,
                "total_progression": 90.9231,
                "progressive_carries": 0.9249,
                "key_pass": 0.0621,
                "shots_off_target": 0.6288,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.9,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.791,
                "opponent_faced": "Lucas Boyé",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 0.8562,
                "fifa_overall": 65.0
              },
              "params": {
                "match_squad_rank": 6,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 7921,
                "fifa_rank": 11802.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 65.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "interceptions": 0.8713,
                "tackles": 1.1599,
                "tackles_won": 0.7031,
                "clearances": 4.3337,
                "aerial_won": 1.6,
                "total_shots": 0.7148,
                "rating": 6.8684,
                "minutes": 90.0,
                "total_pass": 59.2836,
                "accurate_pass": 54.9975,
                "duels_won": 3.438,
                "total_long_balls": 4.6298,
                "accurate_long_balls": 1.988,
                "total_own_half_passes": 36.9409,
                "accurate_own_half_passes": 36.1401,
                "total_opp_half_passes": 22.3426,
                "accurate_opp_half_passes": 18.8573,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 69.2957,
                "possession_lost": 4.7179,
                "dispossessed": 0.0,
                "duels_lost": 2.5005,
                "aerial_lost": 1.4263,
                "total_contest": 0.3339,
                "won_contest": 0.3339,
                "ball_recovery": 3.5293,
                "challenges_lost": 0.5448,
                "fouls": 0.5294,
                "fouls_drawn": 0.4026,
                "blocks": 0.7428,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0157,
                "expected_assists": 0.0067,
                "shots_on_target": 0.086,
                "big_chances_created": 0.0,
                "xgot": 0.004,
                "ball_carries": 21.1122,
                "total_progression": 90.9231,
                "progressive_carries": 0.9249,
                "key_pass": 0.0621,
                "shots_off_target": 0.6288,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.9,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.791,
                "opponent_faced": "Lucas Boyé",
                "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,
                "finishing_factor": 0.8,
                "creation_factor": 0.8562,
                "fifa_overall": 65.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0156,
                "goal_rate": 0.0,
                "scorer_weight": 0.0126,
                "squad_weight_total": 0.91,
                "weight_share": 0.0138,
                "finishing_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 12,
                "eligible_players": 13
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "interceptions": 0.8713,
                "tackles": 1.1599,
                "tackles_won": 0.7031,
                "clearances": 4.3337,
                "aerial_won": 1.6,
                "total_shots": 0.7148,
                "rating": 6.8684,
                "minutes": 90.0,
                "total_pass": 59.2836,
                "accurate_pass": 54.9975,
                "duels_won": 3.438,
                "total_long_balls": 4.6298,
                "accurate_long_balls": 1.988,
                "total_own_half_passes": 36.9409,
                "accurate_own_half_passes": 36.1401,
                "total_opp_half_passes": 22.3426,
                "accurate_opp_half_passes": 18.8573,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 69.2957,
                "possession_lost": 4.7179,
                "dispossessed": 0.0,
                "duels_lost": 2.5005,
                "aerial_lost": 1.4263,
                "total_contest": 0.3339,
                "won_contest": 0.3339,
                "ball_recovery": 3.5293,
                "challenges_lost": 0.5448,
                "fouls": 0.5294,
                "fouls_drawn": 0.4026,
                "blocks": 0.7428,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0157,
                "expected_assists": 0.0067,
                "shots_on_target": 0.086,
                "big_chances_created": 0.0,
                "xgot": 0.004,
                "ball_carries": 21.1122,
                "total_progression": 90.9231,
                "progressive_carries": 0.9249,
                "key_pass": 0.0621,
                "shots_off_target": 0.6288,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.9,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.791,
                "opponent_faced": "Lucas Boyé",
                "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.0067,
                "finishing_factor": 0.8,
                "creation_factor": 0.8562,
                "fifa_overall": 65.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0067,
                "assist_rate": 0.0,
                "provider_weight": 0.0057,
                "squad_weight_total": 0.5067,
                "weight_share": 0.0113,
                "creation_factor": 0.8562,
                "appearance_weight": 1.0,
                "weight_rank": 13,
                "eligible_players": 13
              }
            }
          ]
        },
        "Fernando Calero": {
          "player_id": 857205,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 20,
          "height": 183,
          "market_value": 2100000,
          "stats": {
            "interceptions": 1,
            "tackles": 1,
            "tackles_won": 1,
            "clearances": 5,
            "aerial_won": 2,
            "total_shots": 0,
            "rating": 6.7585,
            "minutes": 85,
            "total_pass": 49,
            "accurate_pass": 44,
            "duels_won": 3,
            "total_long_balls": 5,
            "accurate_long_balls": 2,
            "total_own_half_passes": 33,
            "accurate_own_half_passes": 32,
            "total_opp_half_passes": 15,
            "accurate_opp_half_passes": 12,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 61,
            "possession_lost": 5.8199,
            "dispossessed": 0.129,
            "duels_lost": 3,
            "aerial_lost": 1,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 3,
            "challenges_lost": 1,
            "fouls": 1,
            "fouls_drawn": 1,
            "blocks": 1,
            "goal_rate": 0.0,
            "goals": 0,
            "assist_rate": 0.0,
            "assists": 0,
            "expected_goals": 0.0243,
            "expected_assists": 0.0093,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0001,
            "ball_carries": 14,
            "total_progression": 58,
            "progressive_carries": 0,
            "key_pass": 0,
            "shots_off_target": 0,
            "tackles_in_zone": 1.0,
            "tackles_won_in_zone": 0.9,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.6,
            "aerial_duels_won": 0.7,
            "defensive_success_rate": 0.791,
            "opponent_faced": "Lucas Boyé",
            "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.024,
            "projected_assists": 0,
            "assist_probability": 0.0093,
            "finishing_factor": 0.8,
            "creation_factor": 0.8104,
            "fifa_overall": 81.0
          },
          "latest_10_games": [
            {
              "match_id": 16421073,
              "match_date": "2026-10-18",
              "home_team": "Málaga CF",
              "away_team": "Real Sociedad",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 90,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0052,
                "total_shots": 0,
                "total_pass": 48,
                "accurate_pass": 45,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 7,
                "aerial_won": 3,
                "duels_won": 6,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421062,
              "match_date": "2026-10-09",
              "home_team": "Málaga CF",
              "away_team": "Espanyol",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 74,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0755,
                "expected_assists": 0.0415,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 57,
                "accurate_pass": 55,
                "interceptions": 1,
                "clearances": 2,
                "duels_won": 2,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083719,
              "match_date": "2026-05-23",
              "home_team": "Espanyol",
              "away_team": "Real Sociedad",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0087,
                "total_shots": 0,
                "total_pass": 71,
                "accurate_pass": 66,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 1,
                "duels_won": 2,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083696,
              "match_date": "2026-05-17",
              "home_team": "Osasuna",
              "away_team": "Espanyol",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Espanyol",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 26,
                "rating": 7.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.001,
                "total_shots": 0,
                "total_pass": 5,
                "accurate_pass": 4,
                "tackles": 1,
                "interceptions": 1,
                "clearances": 2,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083587,
              "match_date": "2026-05-09",
              "home_team": "Sevilla",
              "away_team": "Espanyol",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 90,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0387,
                "expected_assists": 0.0013,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 25,
                "accurate_pass": 17,
                "interceptions": 1,
                "clearances": 6,
                "aerial_won": 3,
                "duels_won": 4,
                "ball_recovery": 4
              },
              "has_player_stats": true
            },
            {
              "match_id": 14083422,
              "match_date": "2026-05-03",
              "home_team": "Espanyol",
              "away_team": "Real Madrid",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 90,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0293,
                "total_shots": 0,
                "total_pass": 39,
                "accurate_pass": 37,
                "interceptions": 2,
                "clearances": 7,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 9
              },
              "has_player_stats": true
            },
            {
              "match_id": 14083221,
              "match_date": "2026-04-27",
              "home_team": "Espanyol",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 90,
                "rating": 7.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0064,
                "total_shots": 0,
                "total_pass": 68,
                "accurate_pass": 59,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 3
              },
              "has_player_stats": true
            },
            {
              "match_id": 14083330,
              "match_date": "2026-04-23",
              "home_team": "Rayo Vallecano",
              "away_team": "Espanyol",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 78,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0052,
                "total_shots": 0,
                "total_pass": 29,
                "accurate_pass": 23,
                "interceptions": 1,
                "clearances": 2,
                "aerial_won": 2,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true
            },
            {
              "match_id": 14083113,
              "match_date": "2026-04-11",
              "home_team": "FC Barcelona",
              "away_team": "Espanyol",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "FC Barcelona",
              "stats": {
                "minutes": 90,
                "rating": 7.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1459,
                "expected_assists": 0.0018,
                "total_shots": 2,
                "shots_off_target": 2,
                "total_pass": 26,
                "accurate_pass": 22,
                "tackles": 3,
                "tackles_won": 2,
                "interceptions": 1,
                "clearances": 3,
                "aerial_won": 2,
                "duels_won": 5,
                "ball_recovery": 3
              },
              "has_player_stats": true
            },
            {
              "match_id": 14081800,
              "match_date": "2026-03-09",
              "home_team": "Espanyol",
              "away_team": "Real Oviedo",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Espanyol",
              "opponent": "Real Oviedo",
              "stats": {
                "minutes": 11,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0003,
                "total_shots": 0,
                "total_pass": 7,
                "accurate_pass": 7,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true
            }
          ],
          "ranking": {
            "global_player_rank": 1185,
            "combined_rank_score": 513.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 522.0,
            "sofascore_rating": 6.8393,
            "sofascore_appearances": 28.0,
            "fifa_rank": 504.0,
            "fifa_overall": 81.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 11,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.7585,
            "source_file": "data/player_rankings.csv",
            "player_name": "Fernando Calero",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Sebastián Díaz",
                  "ranking": 1180
                },
                {
                  "player_name": "Jesse Lingard",
                  "ranking": 1181
                },
                {
                  "player_name": "Ilkhomzhon Abduganiev",
                  "ranking": 1182
                },
                {
                  "player_name": "Pijus Širvys",
                  "ranking": 1183
                },
                {
                  "player_name": "Olivier Thill",
                  "ranking": 1184
                }
              ],
              "lower": [
                {
                  "player_name": "Diego Rubio",
                  "ranking": 1186
                },
                {
                  "player_name": "Ismaïla Sarr",
                  "ranking": 1187
                },
                {
                  "player_name": "Kevin Danso",
                  "ranking": 1188
                },
                {
                  "player_name": "Folarin Balogun",
                  "ranking": 1189
                },
                {
                  "player_name": "Jonathan David",
                  "ranking": 1190
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.75,
          "history_matches": 30,
          "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",
              "totalTackle",
              "totalShots",
              "rating",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "totalShots",
              "rating"
            ],
            "history_matches": 30,
            "data_confidence": 0.75,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 0.9971,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (D_service) evaluated 30 historical appearances across 7 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 7 target models",
              "stats": {
                "interceptions": 1.0006,
                "tackles": 1.2594,
                "tackles_won": 0.7506,
                "clearances": 4.9675,
                "aerial_won": 1.6712,
                "total_shots": 0.4923,
                "rating": 6.7585,
                "minutes": 85.37,
                "total_pass": 48.9607,
                "accurate_pass": 44.2284,
                "duels_won": 3.3016,
                "total_long_balls": 4.6434,
                "accurate_long_balls": 2.035,
                "total_own_half_passes": 33.5581,
                "accurate_own_half_passes": 32.5131,
                "total_opp_half_passes": 15.4026,
                "accurate_opp_half_passes": 11.7153,
                "crosses_total": 0.2148,
                "crosses_accurate": 0.1294,
                "touches": 61.1146,
                "possession_lost": 5.8368,
                "dispossessed": 0.1294,
                "duels_lost": 3.2711,
                "aerial_lost": 1.4736,
                "total_contest": 0.1459,
                "won_contest": 0.0183,
                "ball_recovery": 3.3809,
                "challenges_lost": 0.6424,
                "fouls": 0.8982,
                "fouls_drawn": 0.7623,
                "blocks": 0.9858,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.033,
                "expected_assists": 0.0117,
                "shots_on_target": 0.0133,
                "big_chances_created": 0.0219,
                "xgot": 0.0002,
                "ball_carries": 13.9513,
                "total_progression": 58.1468,
                "progressive_carries": 0.2998,
                "key_pass": 0.0552,
                "shots_off_target": 0.479
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 6,
                  "trained_at": "2026-10-23T10:04:32.310343+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 626,
                    "rows": 21426
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Real Sociedad",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1512,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-10-09",
                    "opponent": "Espanyol",
                    "minutes": 74.0,
                    "is_starting": true,
                    "weight": 0.1285,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-05-23",
                    "opponent": "Real Sociedad",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1092,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-05-17",
                    "opponent": "Osasuna",
                    "minutes": 26.0,
                    "is_starting": false,
                    "weight": 0.0928,
                    "rating": 7.4
                  },
                  {
                    "match_date": "2026-05-09",
                    "opponent": "Sevilla",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0789,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-05-03",
                    "opponent": "Real Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0671,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-04-27",
                    "opponent": "Levante UD",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.057,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-04-23",
                    "opponent": "Rayo Vallecano",
                    "minutes": 78.0,
                    "is_starting": true,
                    "weight": 0.0485,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-04-11",
                    "opponent": "FC Barcelona",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0412,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-03-09",
                    "opponent": "Real Oviedo",
                    "minutes": 11.0,
                    "is_starting": false,
                    "weight": 0.035,
                    "rating": 6.7
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 1.0,
                  "totalClearance": 3.9889,
                  "aerialWon": 1.309,
                  "totalClearance_p90": 4.6708,
                  "totalTackle": 1.0055,
                  "defensive_actions": 1.8944
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 1.0006095170974731,
                    "model_output": 1.0006,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2909
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0422
                      },
                      {
                        "name": "touches",
                        "importance": 0.0304
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0294
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.8603,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1134
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": 0.0288
                        },
                        {
                          "name": "interceptionWon_p90",
                          "contribution": 0.0182
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0111
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": -0.0101
                        }
                      ],
                      "others": 0.0011,
                      "total": 1.0006,
                      "log_link": true,
                      "margin_base": -0.150447,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.123866
                        },
                        {
                          "name": "interceptionWon",
                          "margin": 0.029119
                        },
                        {
                          "name": "interceptionWon_p90",
                          "margin": 0.01795
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.010913
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": -0.010076
                        }
                      ],
                      "others_margin": 0.00111
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.2593848705291748,
                    "model_output": 1.2594,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2494
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0709
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0459
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0405
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 1.3831,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1779
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": -0.0826
                        },
                        {
                          "name": "totalTackle",
                          "contribution": -0.0457
                        },
                        {
                          "name": "press_vulnerability",
                          "contribution": -0.0442
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0312
                        }
                      ],
                      "others": -0.0979,
                      "total": 1.2594,
                      "log_link": true,
                      "margin_base": 0.324299,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.121021
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": -0.05436
                        },
                        {
                          "name": "totalTackle",
                          "margin": -0.031421
                        },
                        {
                          "name": "press_vulnerability",
                          "margin": -0.031341
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.022742
                        }
                      ],
                      "others_margin": -0.074833
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.750612199306488,
                    "model_output": 0.7506,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2138
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0741
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0462
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0368
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0292
                      }
                    ],
                    "decomposition": {
                      "base": 0.845,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.105
                        },
                        {
                          "name": "totalTackle",
                          "contribution": -0.0501
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": -0.0304
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0286
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0214
                        }
                      ],
                      "others": -0.0689,
                      "total": 0.7506,
                      "log_link": true,
                      "margin_base": -0.168402,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.117071
                        },
                        {
                          "name": "totalTackle",
                          "margin": -0.05415
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": -0.03432
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.033387
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.025827
                        }
                      ],
                      "others_margin": -0.087852
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 4.967540740966797,
                    "model_output": 4.9675,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2886
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.1626
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0929
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0369
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.02
                      }
                    ],
                    "decomposition": {
                      "base": 3.4251,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.4385
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.3511
                        },
                        {
                          "name": "totalClearance",
                          "contribution": 0.3696
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.2285
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.1567
                        }
                      ],
                      "others": -0.002,
                      "total": 4.9675,
                      "log_link": true,
                      "margin_base": 1.231123,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.12047
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.086976
                        },
                        {
                          "name": "totalClearance",
                          "margin": 0.084053
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.048632
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.032049
                        }
                      ],
                      "others_margin": -0.000378
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 1.6711846590042114,
                    "model_output": 1.6712,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "aerialWon",
                        "importance": 0.1614
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1578
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0791
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0413
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0335
                      }
                    ],
                    "decomposition": {
                      "base": 1.3852,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1723
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0967
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0856
                        },
                        {
                          "name": "totalClearance",
                          "contribution": 0.0801
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0432
                        }
                      ],
                      "others": 0.0015,
                      "total": 1.6712,
                      "log_link": true,
                      "margin_base": 0.325816,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.117216
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.064121
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.056928
                        },
                        {
                          "name": "totalClearance",
                          "margin": 0.050484
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.026197
                        }
                      ],
                      "others_margin": 0.001013
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.49228864908218384,
                    "model_output": 0.4923,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0997
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0736
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.034
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0332
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.4749,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0603
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0188
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.0106
                        },
                        {
                          "name": "totalProgression",
                          "contribution": 0.0084
                        },
                        {
                          "name": "rating",
                          "contribution": 0.0079
                        }
                      ],
                      "others": -0.0298,
                      "total": 0.4923,
                      "log_link": false,
                      "margin_base": 0.47494,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.060292
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.018836
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": -0.010571
                        },
                        {
                          "name": "totalProgression",
                          "margin": 0.008435
                        },
                        {
                          "name": "rating",
                          "margin": 0.007927
                        }
                      ],
                      "others_margin": -0.029898
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.758529186248779,
                    "model_output": 6.7585,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "totalPass",
                        "importance": 0.0694
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0576
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.055
                      },
                      {
                        "name": "touches",
                        "importance": 0.0384
                      },
                      {
                        "name": "rating",
                        "importance": 0.0296
                      }
                    ],
                    "decomposition": {
                      "base": 6.7904,
                      "items": [
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0124
                        },
                        {
                          "name": "tackle_success_rate",
                          "contribution": 0.0111
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0102
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0099
                        },
                        {
                          "name": "touches",
                          "contribution": 0.0095
                        }
                      ],
                      "others": -0.02,
                      "total": 6.7585,
                      "log_link": false,
                      "margin_base": 6.790384,
                      "item_margins": [
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.012352
                        },
                        {
                          "name": "tackle_success_rate",
                          "margin": 0.011056
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.010178
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.009891
                        },
                        {
                          "name": "touches",
                          "margin": 0.009515
                        }
                      ],
                      "others_margin": -0.020006
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 30,
                  "role_matches": 26,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "role_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9971, quality 0.437)",
              "stats": {
                "interceptions": 0.9977,
                "tackles": 1.2557,
                "tackles_won": 0.7484,
                "clearances": 4.9531,
                "aerial_won": 1.6663,
                "total_shots": 0.4909,
                "rating": 6.7585,
                "minutes": 85.37,
                "total_pass": 48.8187,
                "accurate_pass": 44.1001,
                "duels_won": 3.292,
                "total_long_balls": 4.6299,
                "accurate_long_balls": 2.0291,
                "total_own_half_passes": 33.4608,
                "accurate_own_half_passes": 32.4188,
                "total_opp_half_passes": 15.3579,
                "accurate_opp_half_passes": 11.6813,
                "crosses_total": 0.2142,
                "crosses_accurate": 0.129,
                "touches": 60.9374,
                "possession_lost": 5.8199,
                "dispossessed": 0.129,
                "duels_lost": 3.2616,
                "aerial_lost": 1.4693,
                "total_contest": 0.1455,
                "won_contest": 0.0182,
                "ball_recovery": 3.3711,
                "challenges_lost": 0.6405,
                "fouls": 0.8956,
                "fouls_drawn": 0.7601,
                "blocks": 0.9829,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0329,
                "expected_assists": 0.0117,
                "shots_on_target": 0.0133,
                "big_chances_created": 0.0218,
                "xgot": 0.0002,
                "ball_carries": 13.9108,
                "total_progression": 57.9782,
                "progressive_carries": 0.2989,
                "key_pass": 0.055,
                "shots_off_target": 0.4776
              },
              "params": {
                "market_value_eur": 2100000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9971,
                "reference_quality": 0.505,
                "history_matches": 30,
                "history_shrink": 0.1429,
                "market_value_known": true
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 0.9977,
                "tackles": 1.2557,
                "tackles_won": 0.7484,
                "clearances": 4.9531,
                "aerial_won": 1.6663,
                "total_shots": 0.4909,
                "rating": 6.7585,
                "minutes": 85.37,
                "total_pass": 48.8187,
                "accurate_pass": 44.1001,
                "duels_won": 3.292,
                "total_long_balls": 4.6299,
                "accurate_long_balls": 2.0291,
                "total_own_half_passes": 33.4608,
                "accurate_own_half_passes": 32.4188,
                "total_opp_half_passes": 15.3579,
                "accurate_opp_half_passes": 11.6813,
                "crosses_total": 0.2142,
                "crosses_accurate": 0.129,
                "touches": 60.9374,
                "possession_lost": 5.8199,
                "dispossessed": 0.129,
                "duels_lost": 3.2616,
                "aerial_lost": 1.4693,
                "total_contest": 0.1455,
                "won_contest": 0.0182,
                "ball_recovery": 3.3711,
                "challenges_lost": 0.6405,
                "fouls": 0.8956,
                "fouls_drawn": 0.7601,
                "blocks": 0.9829,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0329,
                "expected_assists": 0.0117,
                "shots_on_target": 0.0133,
                "big_chances_created": 0.0218,
                "xgot": 0.0002,
                "ball_carries": 13.9108,
                "total_progression": 57.9782,
                "progressive_carries": 0.2989,
                "key_pass": 0.055,
                "shots_off_target": 0.4776
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "interceptions": 0.9977,
                "tackles": 1.2557,
                "tackles_won": 0.7484,
                "clearances": 4.9531,
                "aerial_won": 1.6663,
                "total_shots": 0.4909,
                "rating": 6.7585,
                "minutes": 85.37,
                "total_pass": 48.8187,
                "accurate_pass": 44.1001,
                "duels_won": 3.292,
                "total_long_balls": 4.6299,
                "accurate_long_balls": 2.0291,
                "total_own_half_passes": 33.4608,
                "accurate_own_half_passes": 32.4188,
                "total_opp_half_passes": 15.3579,
                "accurate_opp_half_passes": 11.6813,
                "crosses_total": 0.2142,
                "crosses_accurate": 0.129,
                "touches": 60.9374,
                "possession_lost": 5.8199,
                "dispossessed": 0.129,
                "duels_lost": 3.2616,
                "aerial_lost": 1.4693,
                "total_contest": 0.1455,
                "won_contest": 0.0182,
                "ball_recovery": 3.3711,
                "challenges_lost": 0.6405,
                "fouls": 0.8956,
                "fouls_drawn": 0.7601,
                "blocks": 0.9829,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0329,
                "expected_assists": 0.0117,
                "shots_on_target": 0.0133,
                "big_chances_created": 0.0218,
                "xgot": 0.0002,
                "ball_carries": 13.9108,
                "total_progression": 57.9782,
                "progressive_carries": 0.2989,
                "key_pass": 0.055,
                "shots_off_target": 0.4776,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.9,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.791,
                "opponent_faced": "Lucas Boyé",
                "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": "Lucas Boyé",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle"
                }
              }
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "interceptions": 0.9977,
                "tackles": 1.2557,
                "tackles_won": 0.7484,
                "clearances": 4.9531,
                "aerial_won": 1.6663,
                "total_shots": 0.4909,
                "rating": 6.7585,
                "minutes": 85.37,
                "total_pass": 48.8187,
                "accurate_pass": 44.1001,
                "duels_won": 3.292,
                "total_long_balls": 4.6299,
                "accurate_long_balls": 2.0291,
                "total_own_half_passes": 33.4608,
                "accurate_own_half_passes": 32.4188,
                "total_opp_half_passes": 15.3579,
                "accurate_opp_half_passes": 11.6813,
                "crosses_total": 0.2142,
                "crosses_accurate": 0.129,
                "touches": 60.9374,
                "possession_lost": 5.8199,
                "dispossessed": 0.129,
                "duels_lost": 3.2616,
                "aerial_lost": 1.4693,
                "total_contest": 0.1455,
                "won_contest": 0.0182,
                "ball_recovery": 3.3711,
                "challenges_lost": 0.6405,
                "fouls": 0.8956,
                "fouls_drawn": 0.7601,
                "blocks": 0.9829,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0329,
                "expected_assists": 0.0117,
                "shots_on_target": 0.0133,
                "big_chances_created": 0.0218,
                "xgot": 0.0002,
                "ball_carries": 13.9108,
                "total_progression": 57.9782,
                "progressive_carries": 0.2989,
                "key_pass": 0.055,
                "shots_off_target": 0.4776,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.9,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.791,
                "opponent_faced": "Lucas Boyé",
                "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": {
                "scoreline_reset": true,
                "team_goals": 0
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.87 (squad xG sum 1.1744, xG scale 0.7400, xA scale 0.7968, team xA 0.56 = 0.65 x lambda)",
              "stats": {
                "interceptions": 0.9977,
                "tackles": 1.2557,
                "tackles_won": 0.7484,
                "clearances": 4.9531,
                "aerial_won": 1.6663,
                "total_shots": 0.4909,
                "rating": 6.7585,
                "minutes": 85.37,
                "total_pass": 48.8187,
                "accurate_pass": 44.1001,
                "duels_won": 3.292,
                "total_long_balls": 4.6299,
                "accurate_long_balls": 2.0291,
                "total_own_half_passes": 33.4608,
                "accurate_own_half_passes": 32.4188,
                "total_opp_half_passes": 15.3579,
                "accurate_opp_half_passes": 11.6813,
                "crosses_total": 0.2142,
                "crosses_accurate": 0.129,
                "touches": 60.9374,
                "possession_lost": 5.8199,
                "dispossessed": 0.129,
                "duels_lost": 3.2616,
                "aerial_lost": 1.4693,
                "total_contest": 0.1455,
                "won_contest": 0.0182,
                "ball_recovery": 3.3711,
                "challenges_lost": 0.6405,
                "fouls": 0.8956,
                "fouls_drawn": 0.7601,
                "blocks": 0.9829,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0243,
                "expected_assists": 0.0093,
                "shots_on_target": 0.0133,
                "big_chances_created": 0.0218,
                "xgot": 0.0001,
                "ball_carries": 13.9108,
                "total_progression": 57.9782,
                "progressive_carries": 0.2989,
                "key_pass": 0.055,
                "shots_off_target": 0.4776,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.9,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.791,
                "opponent_faced": "Lucas Boyé",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 0.8104
              },
              "params": {
                "team_lambda": 0.869,
                "squad_xg_sum": 1.1744,
                "squad_xa_sum": 0.7089,
                "team_expected_assists": 0.5648,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.74,
                "xa_scale": 0.7968,
                "opponent_lambda": 1.257,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0329,
                  "after": 0.0243
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 81.0)",
              "stats": {
                "interceptions": 0.9977,
                "tackles": 1.2557,
                "tackles_won": 0.7484,
                "clearances": 4.9531,
                "aerial_won": 1.6663,
                "total_shots": 0.4909,
                "rating": 6.7585,
                "minutes": 85.37,
                "total_pass": 48.8187,
                "accurate_pass": 44.1001,
                "duels_won": 3.292,
                "total_long_balls": 4.6299,
                "accurate_long_balls": 2.0291,
                "total_own_half_passes": 33.4608,
                "accurate_own_half_passes": 32.4188,
                "total_opp_half_passes": 15.3579,
                "accurate_opp_half_passes": 11.6813,
                "crosses_total": 0.2142,
                "crosses_accurate": 0.129,
                "touches": 60.9374,
                "possession_lost": 5.8199,
                "dispossessed": 0.129,
                "duels_lost": 3.2616,
                "aerial_lost": 1.4693,
                "total_contest": 0.1455,
                "won_contest": 0.0182,
                "ball_recovery": 3.3711,
                "challenges_lost": 0.6405,
                "fouls": 0.8956,
                "fouls_drawn": 0.7601,
                "blocks": 0.9829,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0243,
                "expected_assists": 0.0093,
                "shots_on_target": 0.0133,
                "big_chances_created": 0.0218,
                "xgot": 0.0001,
                "ball_carries": 13.9108,
                "total_progression": 57.9782,
                "progressive_carries": 0.2989,
                "key_pass": 0.055,
                "shots_off_target": 0.4776,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.9,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.791,
                "opponent_faced": "Lucas Boyé",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 0.8104,
                "fifa_overall": 81.0
              },
              "params": {
                "match_squad_rank": 11,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 1185,
                "fifa_rank": 504.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 81.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "interceptions": 0.9977,
                "tackles": 1.2557,
                "tackles_won": 0.7484,
                "clearances": 4.9531,
                "aerial_won": 1.6663,
                "total_shots": 0.4909,
                "rating": 6.7585,
                "minutes": 85.37,
                "total_pass": 48.8187,
                "accurate_pass": 44.1001,
                "duels_won": 3.292,
                "total_long_balls": 4.6299,
                "accurate_long_balls": 2.0291,
                "total_own_half_passes": 33.4608,
                "accurate_own_half_passes": 32.4188,
                "total_opp_half_passes": 15.3579,
                "accurate_opp_half_passes": 11.6813,
                "crosses_total": 0.2142,
                "crosses_accurate": 0.129,
                "touches": 60.9374,
                "possession_lost": 5.8199,
                "dispossessed": 0.129,
                "duels_lost": 3.2616,
                "aerial_lost": 1.4693,
                "total_contest": 0.1455,
                "won_contest": 0.0182,
                "ball_recovery": 3.3711,
                "challenges_lost": 0.6405,
                "fouls": 0.8956,
                "fouls_drawn": 0.7601,
                "blocks": 0.9829,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0243,
                "expected_assists": 0.0093,
                "shots_on_target": 0.0133,
                "big_chances_created": 0.0218,
                "xgot": 0.0001,
                "ball_carries": 13.9108,
                "total_progression": 57.9782,
                "progressive_carries": 0.2989,
                "key_pass": 0.055,
                "shots_off_target": 0.4776,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.9,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.791,
                "opponent_faced": "Lucas Boyé",
                "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.024,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 0.8104,
                "fifa_overall": 81.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.024,
                "goal_rate": 0.0,
                "scorer_weight": 0.0194,
                "squad_weight_total": 0.91,
                "weight_share": 0.0214,
                "finishing_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 10,
                "eligible_players": 13
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "interceptions": 0.9977,
                "tackles": 1.2557,
                "tackles_won": 0.7484,
                "clearances": 4.9531,
                "aerial_won": 1.6663,
                "total_shots": 0.4909,
                "rating": 6.7585,
                "minutes": 85.37,
                "total_pass": 48.8187,
                "accurate_pass": 44.1001,
                "duels_won": 3.292,
                "total_long_balls": 4.6299,
                "accurate_long_balls": 2.0291,
                "total_own_half_passes": 33.4608,
                "accurate_own_half_passes": 32.4188,
                "total_opp_half_passes": 15.3579,
                "accurate_opp_half_passes": 11.6813,
                "crosses_total": 0.2142,
                "crosses_accurate": 0.129,
                "touches": 60.9374,
                "possession_lost": 5.8199,
                "dispossessed": 0.129,
                "duels_lost": 3.2616,
                "aerial_lost": 1.4693,
                "total_contest": 0.1455,
                "won_contest": 0.0182,
                "ball_recovery": 3.3711,
                "challenges_lost": 0.6405,
                "fouls": 0.8956,
                "fouls_drawn": 0.7601,
                "blocks": 0.9829,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0243,
                "expected_assists": 0.0093,
                "shots_on_target": 0.0133,
                "big_chances_created": 0.0218,
                "xgot": 0.0001,
                "ball_carries": 13.9108,
                "total_progression": 57.9782,
                "progressive_carries": 0.2989,
                "key_pass": 0.055,
                "shots_off_target": 0.4776,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.9,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.791,
                "opponent_faced": "Lucas Boyé",
                "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.024,
                "projected_assists": 0,
                "assist_probability": 0.0093,
                "finishing_factor": 0.8,
                "creation_factor": 0.8104,
                "fifa_overall": 81.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0093,
                "assist_rate": 0.0,
                "provider_weight": 0.0075,
                "squad_weight_total": 0.5067,
                "weight_share": 0.0149,
                "creation_factor": 0.8104,
                "appearance_weight": 1.0,
                "weight_rank": 12,
                "eligible_players": 13
              }
            }
          ]
        },
        "Rafa Garrido": {
          "player_id": 1595666,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 31,
          "height": 170,
          "market_value": 1400000,
          "stats": {
            "interceptions": 1,
            "tackles": 2,
            "tackles_won": 1,
            "clearances": 2,
            "aerial_won": 1,
            "total_shots": 0,
            "rating": 6.7562,
            "minutes": 88,
            "total_pass": 47,
            "accurate_pass": 44,
            "duels_won": 5,
            "total_long_balls": 2,
            "accurate_long_balls": 1,
            "total_own_half_passes": 23,
            "accurate_own_half_passes": 22,
            "total_opp_half_passes": 25,
            "accurate_opp_half_passes": 22,
            "crosses_total": 2,
            "crosses_accurate": 0,
            "touches": 68,
            "possession_lost": 8.3379,
            "dispossessed": 0.1068,
            "duels_lost": 3,
            "aerial_lost": 1,
            "total_contest": 2,
            "won_contest": 1,
            "ball_recovery": 5,
            "challenges_lost": 1,
            "fouls": 1,
            "fouls_drawn": 2,
            "blocks": 1,
            "goal_rate": 0.0,
            "goals": 0,
            "assist_rate": 0.174,
            "assists": 0,
            "expected_goals": 0.0015,
            "expected_assists": 0.0205,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 18,
            "total_progression": 71,
            "progressive_carries": 3,
            "key_pass": 1,
            "shots_off_target": 0,
            "tackles_in_zone": 1.9,
            "tackles_won_in_zone": 1.5,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 0.9,
            "defensive_success_rate": 0.543,
            "opponent_faced": "Nahuel Tenaglia",
            "pressing_zone": "Left Wingback vs Right Back — Overlapping Run",
            "matchup_zone": "Left Wingback vs Right Back — Overlapping Run",
            "antagonist_source": "defensive_duel",
            "projected_goals": 0,
            "goal_probability": 0.0015,
            "projected_assists": 0,
            "assist_probability": 0.0203,
            "finishing_factor": 0.9615,
            "creation_factor": 1.25,
            "fifa_overall": 79.0
          },
          "latest_10_games": [
            {
              "match_id": 16421073,
              "match_date": "2026-10-18",
              "home_team": "Málaga CF",
              "away_team": "Real Sociedad",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 90,
                "rating": 5.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0241,
                "total_shots": 0,
                "total_pass": 61,
                "accurate_pass": 57,
                "key_pass": 1,
                "tackles": 1,
                "interceptions": 2,
                "clearances": 2,
                "aerial_won": 2,
                "duels_won": 5,
                "ball_recovery": 8
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421062,
              "match_date": "2026-10-09",
              "home_team": "Málaga CF",
              "away_team": "Espanyol",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_assists": 0.0644,
                "total_shots": 0,
                "total_pass": 43,
                "accurate_pass": 42,
                "key_pass": 2,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 1,
                "clearances": 1,
                "duels_won": 4,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416303,
              "match_date": "2026-09-20",
              "home_team": "Getafe",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Getafe",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0137,
                "total_shots": 0,
                "total_pass": 45,
                "accurate_pass": 37,
                "key_pass": 1,
                "tackles": 2,
                "interceptions": 1,
                "clearances": 2,
                "duels_won": 6,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416338,
              "match_date": "2026-09-17",
              "home_team": "Málaga CF",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Málaga CF",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 45,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0046,
                "total_shots": 0,
                "total_pass": 19,
                "accurate_pass": 17,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 2,
                "clearances": 2,
                "duels_won": 5,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416347,
              "match_date": "2026-09-13",
              "home_team": "Celta Vigo",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.018,
                "total_shots": 0,
                "total_pass": 54,
                "accurate_pass": 51,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "duels_won": 3,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416320,
              "match_date": "2026-09-06",
              "home_team": "Málaga CF",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 67,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0179,
                "total_shots": 0,
                "total_pass": 27,
                "accurate_pass": 26,
                "clearances": 2,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416312,
              "match_date": "2026-08-30",
              "home_team": "Real Madrid",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 90,
                "rating": 6.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0174,
                "total_shots": 0,
                "total_pass": 56,
                "accurate_pass": 52,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 1,
                "duels_won": 4,
                "ball_recovery": 9
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416307,
              "match_date": "2026-08-24",
              "home_team": "Málaga CF",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0121,
                "total_shots": 0,
                "total_pass": 43,
                "accurate_pass": 38,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 2,
                "duels_won": 4,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421055,
              "match_date": "2026-08-19",
              "home_team": "Atlético Madrid",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0301,
                "expected_assists": 0.0137,
                "total_shots": 1,
                "total_pass": 39,
                "accurate_pass": 34,
                "interceptions": 3,
                "clearances": 7,
                "aerial_won": 3,
                "duels_won": 8,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 1375,
            "combined_rank_score": 713.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 578.0,
            "sofascore_rating": 6.8,
            "sofascore_appearances": 1.0,
            "fifa_rank": 848.0,
            "fifa_overall": 79.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 12,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.7562,
            "source_file": "data/player_rankings.csv",
            "player_name": "Rafa Garrido",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Vitão",
                  "ranking": 1370
                },
                {
                  "player_name": "Jemmes",
                  "ranking": 1371
                },
                {
                  "player_name": "Samandar Muratbaev",
                  "ranking": 1372
                },
                {
                  "player_name": "Kyeong-jae Kim",
                  "ranking": 1373
                },
                {
                  "player_name": "Jung-min Lee",
                  "ranking": 1374
                }
              ],
              "lower": [
                {
                  "player_name": "Rodrigo Mendoza",
                  "ranking": 1376
                },
                {
                  "player_name": "Peque Fernández",
                  "ranking": 1377
                },
                {
                  "player_name": "Javi Morcillo",
                  "ranking": 1378
                },
                {
                  "player_name": "Luis Pacheco",
                  "ranking": 1379
                },
                {
                  "player_name": "Fredy Noguera",
                  "ranking": 1380
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.75,
          "history_matches": 9,
          "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",
              "totalTackle",
              "totalShots",
              "rating",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "totalShots",
              "rating"
            ],
            "history_matches": 9,
            "data_confidence": 0.75,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 0.9928,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (D_service) evaluated 9 historical appearances across 7 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 7 target models",
              "stats": {
                "interceptions": 1.3267,
                "tackles": 1.7071,
                "tackles_won": 1.0486,
                "clearances": 2.2944,
                "aerial_won": 0.7385,
                "total_shots": 0.3523,
                "rating": 6.7562,
                "minutes": 88.02,
                "total_pass": 47.6049,
                "accurate_pass": 43.8404,
                "duels_won": 4.5343,
                "total_long_balls": 1.8615,
                "accurate_long_balls": 0.7094,
                "total_own_half_passes": 22.9266,
                "accurate_own_half_passes": 21.7188,
                "total_opp_half_passes": 24.6783,
                "accurate_opp_half_passes": 22.1216,
                "crosses_total": 2.2023,
                "crosses_accurate": 0.1753,
                "touches": 68.8746,
                "possession_lost": 8.3984,
                "dispossessed": 0.1076,
                "duels_lost": 2.9001,
                "aerial_lost": 0.7312,
                "total_contest": 1.7874,
                "won_contest": 0.939,
                "ball_recovery": 5.5161,
                "challenges_lost": 0.5894,
                "fouls": 0.6234,
                "fouls_drawn": 1.7563,
                "blocks": 0.7828,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.1753,
                "assist_rate": 0.1753,
                "expected_goals": 0.002,
                "expected_assists": 0.0259,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 18.054,
                "total_progression": 71.581,
                "progressive_carries": 2.6649,
                "key_pass": 0.7057,
                "shots_off_target": 0.3523
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 6,
                  "trained_at": "2026-10-23T10:04:32.310343+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 626,
                    "rows": 21426
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Real Sociedad",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1952,
                    "rating": 5.8
                  },
                  {
                    "match_date": "2026-10-09",
                    "opponent": "Espanyol",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1659,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Getafe",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.141,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Villarreal",
                    "minutes": 45.0,
                    "is_starting": false,
                    "weight": 0.1199,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Celta Vigo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1019,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Levante UD",
                    "minutes": 67.0,
                    "is_starting": true,
                    "weight": 0.0866,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Real Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0736,
                    "rating": 6.0
                  },
                  {
                    "match_date": "2026-08-24",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0626,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-08-19",
                    "opponent": "Atlético Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0532,
                    "rating": 6.8
                  }
                ],
                "feature_row": {
                  "history_matches": 9.0,
                  "is_starting_11": 1.0,
                  "totalClearance": 1.9245,
                  "aerialWon": 0.55,
                  "totalClearance_p90": 2.2238,
                  "totalTackle": 1.3496,
                  "defensive_actions": 2.5936
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 1.326671838760376,
                    "model_output": 1.3267,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2909
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0422
                      },
                      {
                        "name": "touches",
                        "importance": 0.0304
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0294
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.8603,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1277
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": 0.0763
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": 0.0815
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0378
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": 0.0335
                        }
                      ],
                      "others": 0.1852,
                      "total": 1.3267,
                      "log_link": true,
                      "margin_base": -0.150447,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.138391
                        },
                        {
                          "name": "progressive_carries_p90",
                          "margin": 0.074434
                        },
                        {
                          "name": "interceptionWon",
                          "margin": 0.07379
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.033532
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": 0.029782
                        }
                      ],
                      "others_margin": 0.150254
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.707116723060608,
                    "model_output": 1.7071,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2494
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0709
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0459
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0405
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 1.3831,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1799
                        },
                        {
                          "name": "totalClearance",
                          "contribution": 0.0508
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.0415
                        },
                        {
                          "name": "rating",
                          "contribution": 0.0407
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.028
                        }
                      ],
                      "others": 0.0391,
                      "total": 1.7071,
                      "log_link": true,
                      "margin_base": 0.324299,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.122274
                        },
                        {
                          "name": "totalClearance",
                          "margin": 0.031989
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.025371
                        },
                        {
                          "name": "rating",
                          "margin": 0.024309
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": -0.016662
                        }
                      ],
                      "others_margin": 0.023225
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 1.0485548973083496,
                    "model_output": 1.0486,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2138
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0741
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0462
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0368
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0292
                      }
                    ],
                    "decomposition": {
                      "base": 0.845,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1002
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.032
                        },
                        {
                          "name": "totalTackle",
                          "contribution": -0.0308
                        },
                        {
                          "name": "totalClearance",
                          "contribution": 0.0308
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0258
                        }
                      ],
                      "others": 0.0456,
                      "total": 1.0486,
                      "log_link": true,
                      "margin_base": -0.168402,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.112028
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.033246
                        },
                        {
                          "name": "totalTackle",
                          "margin": -0.032045
                        },
                        {
                          "name": "totalClearance",
                          "margin": 0.032011
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.026099
                        }
                      ],
                      "others_margin": 0.044476
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 2.2944161891937256,
                    "model_output": 2.2944,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2886
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.1626
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0929
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0369
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.02
                      }
                    ],
                    "decomposition": {
                      "base": 3.4251,
                      "items": [
                        {
                          "name": "totalClearance",
                          "contribution": -0.5492
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.369
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.295
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.2284
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.1697
                        }
                      ],
                      "others": -0.2574,
                      "total": 2.2944,
                      "log_link": true,
                      "margin_base": 1.231123,
                      "item_margins": [
                        {
                          "name": "totalClearance",
                          "margin": -0.174763
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.12073
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.095306
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": -0.080597
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.064381
                        }
                      ],
                      "others_margin": -0.106327
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.7385101914405823,
                    "model_output": 0.7385,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "aerialWon",
                        "importance": 0.1614
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1578
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0791
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0413
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0335
                      }
                    ],
                    "decomposition": {
                      "base": 1.3852,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": -0.4206
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.113
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.112
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0667
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": -0.0492
                        }
                      ],
                      "others": -0.1092,
                      "total": 0.7385,
                      "log_link": true,
                      "margin_base": 0.325816,
                      "item_margins": [
                        {
                          "name": "aerialWon",
                          "margin": -0.36194
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.124656
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.123621
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.071698
                        },
                        {
                          "name": "progressive_carries_p90",
                          "margin": -0.056449
                        }
                      ],
                      "others_margin": -0.137814
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.35226091742515564,
                    "model_output": 0.3523,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0997
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0736
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.034
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0332
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.4749,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.1365
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0465
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": 0.0256
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0242
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0104
                        }
                      ],
                      "others": -0.0444,
                      "total": 0.3523,
                      "log_link": false,
                      "margin_base": 0.47494,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.136494
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.04646
                        },
                        {
                          "name": "progressive_carries_p90",
                          "margin": 0.025617
                        },
                        {
                          "name": "rating",
                          "margin": -0.024218
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.010422
                        }
                      ],
                      "others_margin": -0.044466
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.756249904632568,
                    "model_output": 6.7562,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "totalPass",
                        "importance": 0.0694
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0576
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.055
                      },
                      {
                        "name": "touches",
                        "importance": 0.0384
                      },
                      {
                        "name": "rating",
                        "importance": 0.0296
                      }
                    ],
                    "decomposition": {
                      "base": 6.7904,
                      "items": [
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0255
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0179
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0178
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0107
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0089
                        }
                      ],
                      "others": -0.0399,
                      "total": 6.7563,
                      "log_link": false,
                      "margin_base": 6.790384,
                      "item_margins": [
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.02549
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.017885
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.017832
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.010674
                        },
                        {
                          "name": "rating",
                          "margin": -0.008914
                        }
                      ],
                      "others_margin": -0.039982
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 9,
                  "role_matches": 8,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "role_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9928, quality 0.437)",
              "stats": {
                "interceptions": 1.3171,
                "tackles": 1.6948,
                "tackles_won": 1.041,
                "clearances": 2.2779,
                "aerial_won": 0.7332,
                "total_shots": 0.3498,
                "rating": 6.7562,
                "minutes": 88.02,
                "total_pass": 47.2621,
                "accurate_pass": 43.5247,
                "duels_won": 4.5017,
                "total_long_balls": 1.8481,
                "accurate_long_balls": 0.7043,
                "total_own_half_passes": 22.7615,
                "accurate_own_half_passes": 21.5624,
                "total_opp_half_passes": 24.5006,
                "accurate_opp_half_passes": 21.9623,
                "crosses_total": 2.1864,
                "crosses_accurate": 0.174,
                "touches": 68.3787,
                "possession_lost": 8.3379,
                "dispossessed": 0.1068,
                "duels_lost": 2.8792,
                "aerial_lost": 0.7259,
                "total_contest": 1.7745,
                "won_contest": 0.9322,
                "ball_recovery": 5.4764,
                "challenges_lost": 0.5852,
                "fouls": 0.6189,
                "fouls_drawn": 1.7437,
                "blocks": 0.7772,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.174,
                "assist_rate": 0.174,
                "expected_goals": 0.002,
                "expected_assists": 0.0257,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 17.924,
                "total_progression": 71.0656,
                "progressive_carries": 2.6457,
                "key_pass": 0.7006,
                "shots_off_target": 0.3498
              },
              "params": {
                "market_value_eur": 1400000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9928,
                "reference_quality": 0.505,
                "history_matches": 9,
                "history_shrink": 0.3571,
                "market_value_known": true
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 1.3171,
                "tackles": 1.6948,
                "tackles_won": 1.041,
                "clearances": 2.2779,
                "aerial_won": 0.7332,
                "total_shots": 0.3498,
                "rating": 6.7562,
                "minutes": 88.02,
                "total_pass": 47.2621,
                "accurate_pass": 43.5247,
                "duels_won": 4.5017,
                "total_long_balls": 1.8481,
                "accurate_long_balls": 0.7043,
                "total_own_half_passes": 22.7615,
                "accurate_own_half_passes": 21.5624,
                "total_opp_half_passes": 24.5006,
                "accurate_opp_half_passes": 21.9623,
                "crosses_total": 2.1864,
                "crosses_accurate": 0.174,
                "touches": 68.3787,
                "possession_lost": 8.3379,
                "dispossessed": 0.1068,
                "duels_lost": 2.8792,
                "aerial_lost": 0.7259,
                "total_contest": 1.7745,
                "won_contest": 0.9322,
                "ball_recovery": 5.4764,
                "challenges_lost": 0.5852,
                "fouls": 0.6189,
                "fouls_drawn": 1.7437,
                "blocks": 0.7772,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.174,
                "assist_rate": 0.174,
                "expected_goals": 0.002,
                "expected_assists": 0.0257,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 17.924,
                "total_progression": 71.0656,
                "progressive_carries": 2.6457,
                "key_pass": 0.7006,
                "shots_off_target": 0.3498
              },
              "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.3171,
                "tackles": 1.6948,
                "tackles_won": 1.041,
                "clearances": 2.2779,
                "aerial_won": 0.7332,
                "total_shots": 0.3498,
                "rating": 6.7562,
                "minutes": 88.02,
                "total_pass": 47.2621,
                "accurate_pass": 43.5247,
                "duels_won": 4.5017,
                "total_long_balls": 1.8481,
                "accurate_long_balls": 0.7043,
                "total_own_half_passes": 22.7615,
                "accurate_own_half_passes": 21.5624,
                "total_opp_half_passes": 24.5006,
                "accurate_opp_half_passes": 21.9623,
                "crosses_total": 2.1864,
                "crosses_accurate": 0.174,
                "touches": 68.3787,
                "possession_lost": 8.3379,
                "dispossessed": 0.1068,
                "duels_lost": 2.8792,
                "aerial_lost": 0.7259,
                "total_contest": 1.7745,
                "won_contest": 0.9322,
                "ball_recovery": 5.4764,
                "challenges_lost": 0.5852,
                "fouls": 0.6189,
                "fouls_drawn": 1.7437,
                "blocks": 0.7772,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.174,
                "assist_rate": 0.174,
                "expected_goals": 0.002,
                "expected_assists": 0.0257,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 17.924,
                "total_progression": 71.0656,
                "progressive_carries": 2.6457,
                "key_pass": 0.7006,
                "shots_off_target": 0.3498,
                "tackles_in_zone": 1.9,
                "tackles_won_in_zone": 1.5,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.9,
                "defensive_success_rate": 0.543,
                "opponent_faced": "Nahuel Tenaglia",
                "pressing_zone": "Left Wingback vs Right Back — Overlapping Run",
                "matchup_zone": "Left Wingback vs Right Back — Overlapping Run",
                "antagonist_source": "defensive_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Nahuel Tenaglia",
                  "matchup_zone": "Left Wingback vs Right Back — Overlapping Run"
                }
              }
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "interceptions": 1.3171,
                "tackles": 1.6948,
                "tackles_won": 1.041,
                "clearances": 2.2779,
                "aerial_won": 0.7332,
                "total_shots": 0.3498,
                "rating": 6.7562,
                "minutes": 88.02,
                "total_pass": 47.2621,
                "accurate_pass": 43.5247,
                "duels_won": 4.5017,
                "total_long_balls": 1.8481,
                "accurate_long_balls": 0.7043,
                "total_own_half_passes": 22.7615,
                "accurate_own_half_passes": 21.5624,
                "total_opp_half_passes": 24.5006,
                "accurate_opp_half_passes": 21.9623,
                "crosses_total": 2.1864,
                "crosses_accurate": 0.174,
                "touches": 68.3787,
                "possession_lost": 8.3379,
                "dispossessed": 0.1068,
                "duels_lost": 2.8792,
                "aerial_lost": 0.7259,
                "total_contest": 1.7745,
                "won_contest": 0.9322,
                "ball_recovery": 5.4764,
                "challenges_lost": 0.5852,
                "fouls": 0.6189,
                "fouls_drawn": 1.7437,
                "blocks": 0.7772,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.174,
                "assists": 0,
                "expected_goals": 0.002,
                "expected_assists": 0.0257,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 17.924,
                "total_progression": 71.0656,
                "progressive_carries": 2.6457,
                "key_pass": 0.7006,
                "shots_off_target": 0.3498,
                "tackles_in_zone": 1.9,
                "tackles_won_in_zone": 1.5,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.9,
                "defensive_success_rate": 0.543,
                "opponent_faced": "Nahuel Tenaglia",
                "pressing_zone": "Left Wingback vs Right Back — Overlapping Run",
                "matchup_zone": "Left Wingback vs Right Back — Overlapping Run",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "scoreline_reset": true,
                "team_goals": 0
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.87 (squad xG sum 1.1744, xG scale 0.7400, xA scale 0.7968, team xA 0.56 = 0.65 x lambda)",
              "stats": {
                "interceptions": 1.3171,
                "tackles": 1.6948,
                "tackles_won": 1.041,
                "clearances": 2.2779,
                "aerial_won": 0.7332,
                "total_shots": 0.3498,
                "rating": 6.7562,
                "minutes": 88.02,
                "total_pass": 47.2621,
                "accurate_pass": 43.5247,
                "duels_won": 4.5017,
                "total_long_balls": 1.8481,
                "accurate_long_balls": 0.7043,
                "total_own_half_passes": 22.7615,
                "accurate_own_half_passes": 21.5624,
                "total_opp_half_passes": 24.5006,
                "accurate_opp_half_passes": 21.9623,
                "crosses_total": 2.1864,
                "crosses_accurate": 0.174,
                "touches": 68.3787,
                "possession_lost": 8.3379,
                "dispossessed": 0.1068,
                "duels_lost": 2.8792,
                "aerial_lost": 0.7259,
                "total_contest": 1.7745,
                "won_contest": 0.9322,
                "ball_recovery": 5.4764,
                "challenges_lost": 0.5852,
                "fouls": 0.6189,
                "fouls_drawn": 1.7437,
                "blocks": 0.7772,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.174,
                "assists": 0,
                "expected_goals": 0.0015,
                "expected_assists": 0.0205,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 17.924,
                "total_progression": 71.0656,
                "progressive_carries": 2.6457,
                "key_pass": 0.7006,
                "shots_off_target": 0.3498,
                "tackles_in_zone": 1.9,
                "tackles_won_in_zone": 1.5,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.9,
                "defensive_success_rate": 0.543,
                "opponent_faced": "Nahuel Tenaglia",
                "pressing_zone": "Left Wingback vs Right Back — Overlapping Run",
                "matchup_zone": "Left Wingback vs Right Back — Overlapping Run",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.9615,
                "creation_factor": 1.25
              },
              "params": {
                "team_lambda": 0.869,
                "squad_xg_sum": 1.1744,
                "squad_xa_sum": 0.7089,
                "team_expected_assists": 0.5648,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.74,
                "xa_scale": 0.7968,
                "opponent_lambda": 1.257,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_assists",
                  "before": 0.0257,
                  "after": 0.0205
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 79.0)",
              "stats": {
                "interceptions": 1.3171,
                "tackles": 1.6948,
                "tackles_won": 1.041,
                "clearances": 2.2779,
                "aerial_won": 0.7332,
                "total_shots": 0.3498,
                "rating": 6.7562,
                "minutes": 88.02,
                "total_pass": 47.2621,
                "accurate_pass": 43.5247,
                "duels_won": 4.5017,
                "total_long_balls": 1.8481,
                "accurate_long_balls": 0.7043,
                "total_own_half_passes": 22.7615,
                "accurate_own_half_passes": 21.5624,
                "total_opp_half_passes": 24.5006,
                "accurate_opp_half_passes": 21.9623,
                "crosses_total": 2.1864,
                "crosses_accurate": 0.174,
                "touches": 68.3787,
                "possession_lost": 8.3379,
                "dispossessed": 0.1068,
                "duels_lost": 2.8792,
                "aerial_lost": 0.7259,
                "total_contest": 1.7745,
                "won_contest": 0.9322,
                "ball_recovery": 5.4764,
                "challenges_lost": 0.5852,
                "fouls": 0.6189,
                "fouls_drawn": 1.7437,
                "blocks": 0.7772,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.174,
                "assists": 0,
                "expected_goals": 0.0015,
                "expected_assists": 0.0205,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 17.924,
                "total_progression": 71.0656,
                "progressive_carries": 2.6457,
                "key_pass": 0.7006,
                "shots_off_target": 0.3498,
                "tackles_in_zone": 1.9,
                "tackles_won_in_zone": 1.5,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.9,
                "defensive_success_rate": 0.543,
                "opponent_faced": "Nahuel Tenaglia",
                "pressing_zone": "Left Wingback vs Right Back — Overlapping Run",
                "matchup_zone": "Left Wingback vs Right Back — Overlapping Run",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.9615,
                "creation_factor": 1.25,
                "fifa_overall": 79.0
              },
              "params": {
                "match_squad_rank": 12,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 1375,
                "fifa_rank": 848.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 79.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "interceptions": 1.3171,
                "tackles": 1.6948,
                "tackles_won": 1.041,
                "clearances": 2.2779,
                "aerial_won": 0.7332,
                "total_shots": 0.3498,
                "rating": 6.7562,
                "minutes": 88.02,
                "total_pass": 47.2621,
                "accurate_pass": 43.5247,
                "duels_won": 4.5017,
                "total_long_balls": 1.8481,
                "accurate_long_balls": 0.7043,
                "total_own_half_passes": 22.7615,
                "accurate_own_half_passes": 21.5624,
                "total_opp_half_passes": 24.5006,
                "accurate_opp_half_passes": 21.9623,
                "crosses_total": 2.1864,
                "crosses_accurate": 0.174,
                "touches": 68.3787,
                "possession_lost": 8.3379,
                "dispossessed": 0.1068,
                "duels_lost": 2.8792,
                "aerial_lost": 0.7259,
                "total_contest": 1.7745,
                "won_contest": 0.9322,
                "ball_recovery": 5.4764,
                "challenges_lost": 0.5852,
                "fouls": 0.6189,
                "fouls_drawn": 1.7437,
                "blocks": 0.7772,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.174,
                "assists": 0,
                "expected_goals": 0.0015,
                "expected_assists": 0.0205,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 17.924,
                "total_progression": 71.0656,
                "progressive_carries": 2.6457,
                "key_pass": 0.7006,
                "shots_off_target": 0.3498,
                "tackles_in_zone": 1.9,
                "tackles_won_in_zone": 1.5,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.9,
                "defensive_success_rate": 0.543,
                "opponent_faced": "Nahuel Tenaglia",
                "pressing_zone": "Left Wingback vs Right Back — Overlapping Run",
                "matchup_zone": "Left Wingback vs Right Back — Overlapping Run",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0015,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.9615,
                "creation_factor": 1.25,
                "fifa_overall": 79.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0015,
                "goal_rate": 0.0,
                "scorer_weight": 0.0014,
                "squad_weight_total": 0.91,
                "weight_share": 0.0016,
                "finishing_factor": 0.9615,
                "appearance_weight": 1.0,
                "weight_rank": 13,
                "eligible_players": 13
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "interceptions": 1.3171,
                "tackles": 1.6948,
                "tackles_won": 1.041,
                "clearances": 2.2779,
                "aerial_won": 0.7332,
                "total_shots": 0.3498,
                "rating": 6.7562,
                "minutes": 88.02,
                "total_pass": 47.2621,
                "accurate_pass": 43.5247,
                "duels_won": 4.5017,
                "total_long_balls": 1.8481,
                "accurate_long_balls": 0.7043,
                "total_own_half_passes": 22.7615,
                "accurate_own_half_passes": 21.5624,
                "total_opp_half_passes": 24.5006,
                "accurate_opp_half_passes": 21.9623,
                "crosses_total": 2.1864,
                "crosses_accurate": 0.174,
                "touches": 68.3787,
                "possession_lost": 8.3379,
                "dispossessed": 0.1068,
                "duels_lost": 2.8792,
                "aerial_lost": 0.7259,
                "total_contest": 1.7745,
                "won_contest": 0.9322,
                "ball_recovery": 5.4764,
                "challenges_lost": 0.5852,
                "fouls": 0.6189,
                "fouls_drawn": 1.7437,
                "blocks": 0.7772,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.174,
                "assists": 0,
                "expected_goals": 0.0015,
                "expected_assists": 0.0205,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 17.924,
                "total_progression": 71.0656,
                "progressive_carries": 2.6457,
                "key_pass": 0.7006,
                "shots_off_target": 0.3498,
                "tackles_in_zone": 1.9,
                "tackles_won_in_zone": 1.5,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.9,
                "defensive_success_rate": 0.543,
                "opponent_faced": "Nahuel Tenaglia",
                "pressing_zone": "Left Wingback vs Right Back — Overlapping Run",
                "matchup_zone": "Left Wingback vs Right Back — Overlapping Run",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0015,
                "projected_assists": 0,
                "assist_probability": 0.0203,
                "finishing_factor": 0.9615,
                "creation_factor": 1.25,
                "fifa_overall": 79.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0203,
                "assist_rate": 0.174,
                "provider_weight": 0.0256,
                "squad_weight_total": 0.5067,
                "weight_share": 0.0506,
                "creation_factor": 1.25,
                "appearance_weight": 1.0,
                "weight_rank": 6,
                "eligible_players": 13
              }
            }
          ]
        },
        "Alfonso Herrero": {
          "player_id": 96371,
          "position": "G",
          "position_depth": "G",
          "is_starter": true,
          "shirt_number": 1,
          "height": 180,
          "market_value": 420000,
          "stats": {
            "saves": 3,
            "goals_prevented": -0.1026,
            "rating": 6.9176,
            "minutes": 90,
            "total_pass": 36,
            "accurate_pass": 26,
            "total_long_balls": 15,
            "accurate_long_balls": 5,
            "touches": 47,
            "clearances": 1,
            "ball_recovery": 8,
            "high_claims": 1,
            "punches": 1.2576,
            "aerial_won": 0,
            "sweeper_actions": 1,
            "sweeper_accurate": 1,
            "saves_inside_box": 2,
            "possession_lost": 10.2749,
            "duels_won": 0,
            "duels_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "total_own_half_passes": 26,
            "accurate_own_half_passes": 24,
            "gk_engine_opponent_lambda": 1.2308,
            "shots_faced": 11.9,
            "expected_saves": 2.91,
            "high_pressure_saves": 1.01,
            "opponent_faced": "Lucas Boyé, Mariano Díaz",
            "matchup_zone": "Goalkeeper shot-stopping context",
            "antagonist_source": "formation_fallback",
            "goals": 0,
            "projected_goals": 0,
            "goal_probability": 0.0,
            "assists": 0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "finishing_factor": 1.0,
            "creation_factor": 1.0,
            "expected_goals": 0.0,
            "expected_assists": 0.0,
            "fifa_overall": 75.0
          },
          "latest_10_games": [
            {
              "match_id": 16421073,
              "match_date": "2026-10-18",
              "home_team": "Málaga CF",
              "away_team": "Real Sociedad",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 90,
                "rating": 5.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0001,
                "total_shots": 0,
                "total_pass": 35,
                "accurate_pass": 22,
                "clearances": 2,
                "ball_recovery": 6,
                "saves": 4,
                "goals_prevented": -2.0512
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421062,
              "match_date": "2026-10-09",
              "home_team": "Málaga CF",
              "away_team": "Espanyol",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0001,
                "total_shots": 0,
                "total_pass": 24,
                "accurate_pass": 21,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 9,
                "saves": 2,
                "goals_prevented": -0.1799
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416303,
              "match_date": "2026-09-20",
              "home_team": "Getafe",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Getafe",
              "stats": {
                "minutes": 90,
                "rating": 7.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0018,
                "total_shots": 0,
                "total_pass": 30,
                "accurate_pass": 21,
                "duels_won": 1,
                "ball_recovery": 7,
                "saves": 6,
                "goals_prevented": 0.2423
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416338,
              "match_date": "2026-09-17",
              "home_team": "Málaga CF",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 90,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0005,
                "total_shots": 0,
                "total_pass": 38,
                "accurate_pass": 23,
                "clearances": 1,
                "ball_recovery": 7,
                "saves": 3,
                "goals_prevented": -0.3488
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416347,
              "match_date": "2026-09-13",
              "home_team": "Celta Vigo",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 90,
                "rating": 8.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0112,
                "total_shots": 0,
                "total_pass": 63,
                "accurate_pass": 45,
                "clearances": 3,
                "duels_won": 1,
                "ball_recovery": 14,
                "saves": 4,
                "goals_prevented": 0.3644
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416320,
              "match_date": "2026-09-06",
              "home_team": "Málaga CF",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 90,
                "rating": 8.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0001,
                "total_shots": 0,
                "total_pass": 46,
                "accurate_pass": 34,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 5,
                "saves": 3,
                "goals_prevented": 0.8332
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416312,
              "match_date": "2026-08-30",
              "home_team": "Real Madrid",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 90,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0001,
                "total_shots": 0,
                "total_pass": 21,
                "accurate_pass": 18,
                "clearances": 1,
                "ball_recovery": 7,
                "saves": 4,
                "goals_prevented": -0.7359
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416307,
              "match_date": "2026-08-24",
              "home_team": "Málaga CF",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0023,
                "total_shots": 0,
                "total_pass": 31,
                "accurate_pass": 28,
                "clearances": 1,
                "ball_recovery": 7,
                "saves": 4,
                "goals_prevented": 0.1734
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421055,
              "match_date": "2026-08-19",
              "home_team": "Atlético Madrid",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 90,
                "rating": 7.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0027,
                "total_shots": 0,
                "total_pass": 47,
                "accurate_pass": 32,
                "ball_recovery": 9,
                "saves": 4,
                "goals_prevented": 0.6449
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 3276,
            "combined_rank_score": 1220.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 44.0,
            "sofascore_rating": 7.8,
            "sofascore_appearances": 1.0,
            "fifa_rank": 2397.0,
            "fifa_overall": 75.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 3,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.9176,
            "source_file": "data/player_rankings.csv",
            "player_name": "Alfonso Herrero",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Federico Viñas",
                  "ranking": 3271
                },
                {
                  "player_name": "Marco Reus",
                  "ranking": 3272
                },
                {
                  "player_name": "Santiago Bueno",
                  "ranking": 3273
                },
                {
                  "player_name": "Hany Mukhtar",
                  "ranking": 3274
                },
                {
                  "player_name": "Aleksey Miranchuk",
                  "ranking": 3275
                }
              ],
              "lower": [
                {
                  "player_name": "Tim Iroegbunam",
                  "ranking": 3277
                },
                {
                  "player_name": "Jaminton Campaz",
                  "ranking": 3278
                },
                {
                  "player_name": "Miguel Merentiel",
                  "ranking": 3279
                },
                {
                  "player_name": "Pep Biel",
                  "ranking": 3280
                },
                {
                  "player_name": "Beñat Prados",
                  "ranking": 3281
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.78,
          "history_matches": 9,
          "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",
              "passValueNormalized",
              "defensiveValueNormalized",
              "goalkeeperValueNormalized",
              "goalsPrevented",
              "rating",
              "pass_accuracy",
              "long_ball_accuracy",
              "save_contribution",
              "inside_box_save_rate",
              "sweeper_accuracy",
              "sweeper_actions_p90",
              "distribution_accuracy",
              "commanding_index",
              "history_matches"
            ],
            "targets_predicted": [
              "saves",
              "goalsPrevented",
              "rating"
            ],
            "history_matches": 9,
            "data_confidence": 0.78,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.9928,
            "fbref_prior_metrics": {
              "squad": "Málaga",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "minutes": 270.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.0,
              "prior_reliability": 0.2
            },
            "rationale": "XGBoost regressor (G_service) evaluated 9 historical appearances across 3 target models; FBref 2026-2027 prior blended (La Liga, Málaga, rel: 0.20, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost G_service raw output over 3 target models",
              "stats": {
                "saves": 2.8938,
                "goals_prevented": -0.1033,
                "rating": 6.9176,
                "minutes": 90.0,
                "total_pass": 35.9925,
                "accurate_pass": 25.809,
                "total_long_balls": 14.6855,
                "accurate_long_balls": 4.6219,
                "touches": 46.9945,
                "clearances": 1.1255,
                "ball_recovery": 7.7831,
                "high_claims": 1.4306,
                "punches": 1.2667,
                "aerial_won": 0.2526,
                "sweeper_actions": 0.6595,
                "sweeper_accurate": 0.6595,
                "saves_inside_box": 2.0799,
                "possession_lost": 10.3494,
                "duels_won": 0.4955,
                "duels_lost": 0.1825,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "fouls": 0.1199,
                "fouls_drawn": 0.2429,
                "total_own_half_passes": 25.9793,
                "accurate_own_half_passes": 24.0982
              },
              "trace": {
                "model": {
                  "position_service": "G",
                  "schema_version": 5,
                  "trained_at": "2026-10-23T10:03:38.130505+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 200,
                    "rows": 7186
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Real Sociedad",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1952,
                    "rating": 5.1
                  },
                  {
                    "match_date": "2026-10-09",
                    "opponent": "Espanyol",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1659,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Getafe",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.141,
                    "rating": 7.7
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Villarreal",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1199,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Celta Vigo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1019,
                    "rating": 8.1
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Levante UD",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0866,
                    "rating": 8.1
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Real Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0736,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-08-24",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0626,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-08-19",
                    "opponent": "Atlético Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0532,
                    "rating": 7.8
                  }
                ],
                "feature_row": {
                  "history_matches": 9.0,
                  "is_starting_11": 1.0,
                  "possessionLostCtrl": 10.3494,
                  "distribution_accuracy": 0.9299,
                  "saves": 3.7437,
                  "goalkeeperValueNormalized": 0.1189,
                  "save_contribution": 3.4061,
                  "accurateOwnHalfPasses": 24.0982
                },
                "per_target": [
                  {
                    "target": "saves",
                    "predicted": 2.8937695026397705,
                    "model_output": 2.8938,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "saves",
                        "importance": 0.0396
                      },
                      {
                        "name": "save_contribution",
                        "importance": 0.0396
                      },
                      {
                        "name": "distribution_accuracy",
                        "importance": 0.0361
                      },
                      {
                        "name": "defensiveValueNormalized",
                        "importance": 0.0356
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0346
                      }
                    ],
                    "decomposition": {
                      "base": 2.9357,
                      "items": [
                        {
                          "name": "saves",
                          "contribution": 0.026
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0238
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0215
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0154
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0127
                        }
                      ],
                      "others": -0.0675,
                      "total": 2.8938,
                      "log_link": true,
                      "margin_base": 1.076962,
                      "item_margins": [
                        {
                          "name": "saves",
                          "margin": 0.008819
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": 0.008009
                        },
                        {
                          "name": "ballRecovery",
                          "margin": -0.007243
                        },
                        {
                          "name": "rating",
                          "margin": -0.005218
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.004294
                        }
                      ],
                      "others_margin": -0.023064
                    }
                  },
                  {
                    "target": "goalsPrevented",
                    "predicted": -0.103324294090271,
                    "model_output": -0.1033,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0403
                      },
                      {
                        "name": "punches",
                        "importance": 0.0402
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.039
                      },
                      {
                        "name": "goodHighClaim",
                        "importance": 0.0381
                      },
                      {
                        "name": "distribution_accuracy",
                        "importance": 0.0377
                      }
                    ],
                    "decomposition": {
                      "base": -0.0276,
                      "items": [
                        {
                          "name": "goalkeeperValueNormalized",
                          "contribution": -0.0514
                        },
                        {
                          "name": "punches",
                          "contribution": -0.0266
                        },
                        {
                          "name": "accurateKeeperSweeper",
                          "contribution": -0.0189
                        },
                        {
                          "name": "aerialWon",
                          "contribution": 0.0159
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0144
                        }
                      ],
                      "others": -0.0091,
                      "total": -0.1033,
                      "log_link": false,
                      "margin_base": -0.027557,
                      "item_margins": [
                        {
                          "name": "goalkeeperValueNormalized",
                          "margin": -0.051417
                        },
                        {
                          "name": "punches",
                          "margin": -0.026605
                        },
                        {
                          "name": "accurateKeeperSweeper",
                          "margin": -0.01894
                        },
                        {
                          "name": "aerialWon",
                          "margin": 0.015932
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": 0.014431
                        }
                      ],
                      "others_margin": -0.009169
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.917612075805664,
                    "model_output": 6.9176,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "saves",
                        "importance": 0.0419
                      },
                      {
                        "name": "accurateOwnHalfPasses",
                        "importance": 0.0397
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0368
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0351
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0351
                      }
                    ],
                    "decomposition": {
                      "base": 6.9908,
                      "items": [
                        {
                          "name": "accurateKeeperSweeper",
                          "contribution": -0.0442
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.018
                        },
                        {
                          "name": "aerialWon",
                          "contribution": 0.0165
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0143
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.011
                        }
                      ],
                      "others": -0.0308,
                      "total": 6.9176,
                      "log_link": false,
                      "margin_base": 6.990849,
                      "item_margins": [
                        {
                          "name": "accurateKeeperSweeper",
                          "margin": -0.044208
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": -0.018036
                        },
                        {
                          "name": "aerialWon",
                          "margin": 0.016478
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": 0.014346
                        },
                        {
                          "name": "ballRecovery",
                          "margin": -0.011037
                        }
                      ],
                      "others_margin": -0.030782
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 9,
                  "role_matches": 9,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "role_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9928, quality 0.437)",
              "stats": {
                "saves": 2.8729,
                "goals_prevented": -0.1026,
                "rating": 6.9176,
                "minutes": 90.0,
                "total_pass": 35.7334,
                "accurate_pass": 25.6232,
                "total_long_balls": 14.5798,
                "accurate_long_balls": 4.5886,
                "touches": 46.6561,
                "clearances": 1.1174,
                "ball_recovery": 7.7271,
                "high_claims": 1.4203,
                "punches": 1.2576,
                "aerial_won": 0.2508,
                "sweeper_actions": 0.6548,
                "sweeper_accurate": 0.6548,
                "saves_inside_box": 2.0649,
                "possession_lost": 10.2749,
                "duels_won": 0.4919,
                "duels_lost": 0.1812,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "fouls": 0.119,
                "fouls_drawn": 0.2412,
                "total_own_half_passes": 25.7922,
                "accurate_own_half_passes": 23.9247
              },
              "params": {
                "market_value_eur": 420000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9928,
                "reference_quality": 0.505,
                "history_matches": 9,
                "history_shrink": 0.3571,
                "market_value_known": true
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0464)",
              "stats": {
                "saves": 2.9252,
                "goals_prevented": -0.1026,
                "rating": 6.9176,
                "minutes": 90.0,
                "total_pass": 35.7334,
                "accurate_pass": 25.6232,
                "total_long_balls": 14.5798,
                "accurate_long_balls": 4.5886,
                "touches": 46.6561,
                "clearances": 1.1174,
                "ball_recovery": 7.7271,
                "high_claims": 1.4203,
                "punches": 1.2576,
                "aerial_won": 0.2508,
                "sweeper_actions": 0.6548,
                "sweeper_accurate": 0.6548,
                "saves_inside_box": 2.0649,
                "possession_lost": 10.2749,
                "duels_won": 0.4919,
                "duels_lost": 0.1812,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "fouls": 0.1135,
                "fouls_drawn": 0.23,
                "total_own_half_passes": 25.7922,
                "accurate_own_half_passes": 23.9247
              },
              "params": {
                "blend_weight": 0.0464,
                "history_matches": 9,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 1.0,
                "prior_reliability": 0.2,
                "competition": "La Liga",
                "squad": "Málaga"
              },
              "changes": [
                {
                  "stat": "saves",
                  "before": 2.8729,
                  "after": 2.9252
                },
                {
                  "stat": "wasFouled",
                  "before": 0.2412,
                  "after": 0.23
                },
                {
                  "stat": "fouls",
                  "before": 0.119,
                  "after": 0.1135
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "saves": 2.9252,
                "goals_prevented": -0.1026,
                "rating": 6.9176,
                "minutes": 90.0,
                "total_pass": 35.7334,
                "accurate_pass": 25.6232,
                "total_long_balls": 14.5798,
                "accurate_long_balls": 4.5886,
                "touches": 46.6561,
                "clearances": 1.1174,
                "ball_recovery": 7.7271,
                "high_claims": 1.4203,
                "punches": 1.2576,
                "aerial_won": 0.2508,
                "sweeper_actions": 0.6548,
                "sweeper_accurate": 0.6548,
                "saves_inside_box": 2.0649,
                "possession_lost": 10.2749,
                "duels_won": 0.4919,
                "duels_lost": 0.1812,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "fouls": 0.1135,
                "fouls_drawn": 0.23,
                "total_own_half_passes": 25.7922,
                "accurate_own_half_passes": 23.9247
              },
              "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": 2.9252,
                "goals_prevented": -0.1026,
                "rating": 6.9176,
                "minutes": 90.0,
                "total_pass": 35.7334,
                "accurate_pass": 25.6232,
                "total_long_balls": 14.5798,
                "accurate_long_balls": 4.5886,
                "touches": 46.6561,
                "clearances": 1.1174,
                "ball_recovery": 7.7271,
                "high_claims": 1.4203,
                "punches": 1.2576,
                "aerial_won": 0.2508,
                "sweeper_actions": 0.6548,
                "sweeper_accurate": 0.6548,
                "saves_inside_box": 2.0649,
                "possession_lost": 10.2749,
                "duels_won": 0.4919,
                "duels_lost": 0.1812,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "fouls": 0.1135,
                "fouls_drawn": 0.23,
                "total_own_half_passes": 25.7922,
                "accurate_own_half_passes": 23.9247,
                "gk_engine_opponent_lambda": 1.2308,
                "shots_faced": 11.7,
                "expected_saves": 2.86,
                "high_pressure_saves": 0.98,
                "opponent_faced": "Lucas Boyé, Mariano Díaz",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Lucas Boyé, Mariano Díaz",
                  "matchup_zone": "Goalkeeper shot-stopping context",
                  "opponent_lambda": 1.2308
                }
              }
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "saves": 2.9252,
                "goals_prevented": -0.1026,
                "rating": 6.9176,
                "minutes": 90.0,
                "total_pass": 35.7334,
                "accurate_pass": 25.6232,
                "total_long_balls": 14.5798,
                "accurate_long_balls": 4.5886,
                "touches": 46.6561,
                "clearances": 1.1174,
                "ball_recovery": 7.7271,
                "high_claims": 1.4203,
                "punches": 1.2576,
                "aerial_won": 0.2508,
                "sweeper_actions": 0.6548,
                "sweeper_accurate": 0.6548,
                "saves_inside_box": 2.0649,
                "possession_lost": 10.2749,
                "duels_won": 0.4919,
                "duels_lost": 0.1812,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "fouls": 0.1135,
                "fouls_drawn": 0.23,
                "total_own_half_passes": 25.7922,
                "accurate_own_half_passes": 23.9247,
                "gk_engine_opponent_lambda": 1.2308,
                "shots_faced": 11.7,
                "expected_saves": 2.86,
                "high_pressure_saves": 0.98,
                "opponent_faced": "Lucas Boyé, Mariano Díaz",
                "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
              },
              "params": {
                "scoreline_reset": true,
                "team_goals": 0
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.87 (squad xG sum 1.1744, xG scale 0.7400, xA scale 0.7968, team xA 0.56 = 0.65 x lambda)",
              "stats": {
                "saves": 2.9252,
                "goals_prevented": -0.1026,
                "rating": 6.9176,
                "minutes": 90.0,
                "total_pass": 35.7334,
                "accurate_pass": 25.6232,
                "total_long_balls": 14.5798,
                "accurate_long_balls": 4.5886,
                "touches": 46.6561,
                "clearances": 1.1174,
                "ball_recovery": 7.7271,
                "high_claims": 1.4203,
                "punches": 1.2576,
                "aerial_won": 0.2508,
                "sweeper_actions": 0.6548,
                "sweeper_accurate": 0.6548,
                "saves_inside_box": 2.0649,
                "possession_lost": 10.2749,
                "duels_won": 0.4919,
                "duels_lost": 0.1812,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "fouls": 0.1135,
                "fouls_drawn": 0.23,
                "total_own_half_passes": 25.7922,
                "accurate_own_half_passes": 23.9247,
                "gk_engine_opponent_lambda": 1.2308,
                "shots_faced": 11.9,
                "expected_saves": 2.91,
                "high_pressure_saves": 1.01,
                "opponent_faced": "Lucas Boyé, Mariano Díaz",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "goals": 0,
                "projected_goals": 0,
                "goal_probability": 0.0,
                "assists": 0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 1.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0
              },
              "params": {
                "team_lambda": 0.869,
                "squad_xg_sum": 1.1744,
                "squad_xa_sum": 0.7089,
                "team_expected_assists": 0.5648,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.74,
                "xa_scale": 0.7968,
                "opponent_lambda": 1.257,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "shots_faced",
                  "before": 11.7,
                  "after": 11.9
                },
                {
                  "stat": "expected_saves",
                  "before": 2.86,
                  "after": 2.91
                },
                {
                  "stat": "high_pressure_saves",
                  "before": 0.98,
                  "after": 1.01
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 75.0)",
              "stats": {
                "saves": 2.9252,
                "goals_prevented": -0.1026,
                "rating": 6.9176,
                "minutes": 90.0,
                "total_pass": 35.7334,
                "accurate_pass": 25.6232,
                "total_long_balls": 14.5798,
                "accurate_long_balls": 4.5886,
                "touches": 46.6561,
                "clearances": 1.1174,
                "ball_recovery": 7.7271,
                "high_claims": 1.4203,
                "punches": 1.2576,
                "aerial_won": 0.2508,
                "sweeper_actions": 0.6548,
                "sweeper_accurate": 0.6548,
                "saves_inside_box": 2.0649,
                "possession_lost": 10.2749,
                "duels_won": 0.4919,
                "duels_lost": 0.1812,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "fouls": 0.1135,
                "fouls_drawn": 0.23,
                "total_own_half_passes": 25.7922,
                "accurate_own_half_passes": 23.9247,
                "gk_engine_opponent_lambda": 1.2308,
                "shots_faced": 11.9,
                "expected_saves": 2.91,
                "high_pressure_saves": 1.01,
                "opponent_faced": "Lucas Boyé, Mariano Díaz",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "goals": 0,
                "projected_goals": 0,
                "goal_probability": 0.0,
                "assists": 0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 1.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "fifa_overall": 75.0
              },
              "params": {
                "match_squad_rank": 3,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3276,
                "fifa_rank": 2397.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 75.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "saves": 2.9252,
                "goals_prevented": -0.1026,
                "rating": 6.9176,
                "minutes": 90.0,
                "total_pass": 35.7334,
                "accurate_pass": 25.6232,
                "total_long_balls": 14.5798,
                "accurate_long_balls": 4.5886,
                "touches": 46.6561,
                "clearances": 1.1174,
                "ball_recovery": 7.7271,
                "high_claims": 1.4203,
                "punches": 1.2576,
                "aerial_won": 0.2508,
                "sweeper_actions": 0.6548,
                "sweeper_accurate": 0.6548,
                "saves_inside_box": 2.0649,
                "possession_lost": 10.2749,
                "duels_won": 0.4919,
                "duels_lost": 0.1812,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "fouls": 0.1135,
                "fouls_drawn": 0.23,
                "total_own_half_passes": 25.7922,
                "accurate_own_half_passes": 23.9247,
                "gk_engine_opponent_lambda": 1.2308,
                "shots_faced": 11.9,
                "expected_saves": 2.91,
                "high_pressure_saves": 1.01,
                "opponent_faced": "Lucas Boyé, Mariano Díaz",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "goals": 0,
                "projected_goals": 0,
                "goal_probability": 0.0,
                "assists": 0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 1.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "fifa_overall": 75.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 0.0,
                "squad_weight_total": 0.91,
                "weight_share": 0.0,
                "finishing_factor": 1.0,
                "appearance_weight": 1.0
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "saves": 2.9252,
                "goals_prevented": -0.1026,
                "rating": 6.9176,
                "minutes": 90.0,
                "total_pass": 35.7334,
                "accurate_pass": 25.6232,
                "total_long_balls": 14.5798,
                "accurate_long_balls": 4.5886,
                "touches": 46.6561,
                "clearances": 1.1174,
                "ball_recovery": 7.7271,
                "high_claims": 1.4203,
                "punches": 1.2576,
                "aerial_won": 0.2508,
                "sweeper_actions": 0.6548,
                "sweeper_accurate": 0.6548,
                "saves_inside_box": 2.0649,
                "possession_lost": 10.2749,
                "duels_won": 0.4919,
                "duels_lost": 0.1812,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "fouls": 0.1135,
                "fouls_drawn": 0.23,
                "total_own_half_passes": 25.7922,
                "accurate_own_half_passes": 23.9247,
                "gk_engine_opponent_lambda": 1.2308,
                "shots_faced": 11.9,
                "expected_saves": 2.91,
                "high_pressure_saves": 1.01,
                "opponent_faced": "Lucas Boyé, Mariano Díaz",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "goals": 0,
                "projected_goals": 0,
                "goal_probability": 0.0,
                "assists": 0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 1.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "fifa_overall": 75.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0,
                "provider_weight": 0.0,
                "squad_weight_total": 0.5067,
                "weight_share": 0.0,
                "creation_factor": 1.0,
                "appearance_weight": 1.0
              }
            }
          ]
        }
      },
      "bench_players": {
        "Carlos Lopez": {
          "player_id": 1442178,
          "position": "G",
          "position_depth": "G_BENCH",
          "is_starter": false,
          "shirt_number": 13,
          "height": 184,
          "market_value": 95000,
          "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": 3,
            "projected_substitution_expected_count": 2.427,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "available_bench_not_projected_used",
            "goals": 0,
            "projected_goals": 0,
            "goal_probability": 0.0,
            "assists": 0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 62.0
          },
          "latest_10_games": [],
          "ranking": {
            "global_player_rank": 9083,
            "combined_rank_score": 7736.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 15175.0,
            "fifa_overall": 62.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 8,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.8,
            "source_file": "data/player_rankings.csv",
            "player_name": "Carlos Lopez",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Lars-Jørgen Salvesen",
                  "ranking": 9078
                },
                {
                  "player_name": "Greg Docherty",
                  "ranking": 9079
                },
                {
                  "player_name": "Scott Wright",
                  "ranking": 9080
                },
                {
                  "player_name": "Stiven Muhlethaler",
                  "ranking": 9081
                },
                {
                  "player_name": "Jordan Thompson",
                  "ranking": 9082
                }
              ],
              "lower": [
                {
                  "player_name": "Gabriel Osho",
                  "ranking": 9084
                },
                {
                  "player_name": "Sam Sutton",
                  "ranking": 9085
                },
                {
                  "player_name": "Scott Wharton",
                  "ranking": 9086
                },
                {
                  "player_name": "David Turnbull",
                  "ranking": 9087
                },
                {
                  "player_name": "Sam Smith",
                  "ranking": 9088
                }
              ]
            }
          },
          "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 (€95,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": 2.9,
                "goals_prevented": 0.45,
                "rating": 6.8,
                "minutes": 90.0,
                "total_pass": 27.0,
                "accurate_pass": 20.0,
                "total_long_balls": 8.0,
                "accurate_long_balls": 4.0,
                "touches": 32.0,
                "clearances": 0.9,
                "ball_recovery": 1.2,
                "high_claims": 0.5,
                "punches": 0.3,
                "aerial_won": 0.6,
                "sweeper_actions": 1.2,
                "sweeper_accurate": 0.7,
                "saves_inside_box": 1.2,
                "possession_lost": 2.4,
                "duels_won": 0.4,
                "duels_lost": 0.2,
                "total_contest": 0.4,
                "won_contest": 0.2,
                "fouls": 0.2,
                "fouls_drawn": 0.0,
                "total_own_half_passes": 21.0,
                "accurate_own_half_passes": 16.0
              },
              "params": {
                "market_value_eur": 95000,
                "quality_factor": 0.4374
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 90.0 to 4.4 expected minutes (appearance prob 0.11)",
              "stats": {
                "saves": 0.1415,
                "goals_prevented": 0.022,
                "rating": 6.8,
                "minutes": 4.39,
                "total_pass": 1.3177,
                "accurate_pass": 0.976,
                "total_long_balls": 0.3904,
                "accurate_long_balls": 0.1952,
                "touches": 1.5617,
                "clearances": 0.0439,
                "ball_recovery": 0.0586,
                "high_claims": 0.0244,
                "punches": 0.0146,
                "aerial_won": 0.0293,
                "sweeper_actions": 0.0586,
                "sweeper_accurate": 0.0342,
                "saves_inside_box": 0.0586,
                "possession_lost": 0.1171,
                "duels_won": 0.0195,
                "duels_lost": 0.0098,
                "total_contest": 0.0195,
                "won_contest": 0.0098,
                "fouls": 0.0098,
                "fouls_drawn": 0.0,
                "total_own_half_passes": 1.0249,
                "accurate_own_half_passes": 0.7808,
                "bench_appearance_probability": 0.109,
                "bench_expected_minutes": 4.39
              },
              "params": {
                "expected_minutes": 4.39,
                "projection_minutes": 90.0,
                "minutes_scale": 0.0488,
                "appearance_probability": 0.109
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "saves": 0.1415,
                "goals_prevented": 0.022,
                "rating": 6.8,
                "minutes": 4.39,
                "total_pass": 1.3177,
                "accurate_pass": 0.976,
                "total_long_balls": 0.3904,
                "accurate_long_balls": 0.1952,
                "touches": 1.5617,
                "clearances": 0.0439,
                "ball_recovery": 0.0586,
                "high_claims": 0.0244,
                "punches": 0.0146,
                "aerial_won": 0.0293,
                "sweeper_actions": 0.0586,
                "sweeper_accurate": 0.0342,
                "saves_inside_box": 0.0586,
                "possession_lost": 0.1171,
                "duels_won": 0.0195,
                "duels_lost": 0.0098,
                "total_contest": 0.0195,
                "won_contest": 0.0098,
                "fouls": 0.0098,
                "fouls_drawn": 0.0,
                "total_own_half_passes": 1.0249,
                "accurate_own_half_passes": 0.7808,
                "bench_appearance_probability": 0.109,
                "bench_expected_minutes": 4.39
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "not_projected_to_play",
              "description": "Not among the projected substitutes: no share of the team's goals or assists",
              "stats": {
                "saves": 0.1415,
                "goals_prevented": 0.022,
                "rating": 6.8,
                "minutes": 4.39,
                "total_pass": 1.3177,
                "accurate_pass": 0.976,
                "total_long_balls": 0.3904,
                "accurate_long_balls": 0.1952,
                "touches": 1.5617,
                "clearances": 0.0439,
                "ball_recovery": 0.0586,
                "high_claims": 0.0244,
                "punches": 0.0146,
                "aerial_won": 0.0293,
                "sweeper_actions": 0.0586,
                "sweeper_accurate": 0.0342,
                "saves_inside_box": 0.0586,
                "possession_lost": 0.1171,
                "duels_won": 0.0195,
                "duels_lost": 0.0098,
                "total_contest": 0.0195,
                "won_contest": 0.0098,
                "fouls": 0.0098,
                "fouls_drawn": 0.0,
                "total_own_half_passes": 1.0249,
                "accurate_own_half_passes": 0.7808,
                "bench_appearance_probability": 0.109,
                "bench_expected_minutes": 4.39,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "available_bench_not_projected_used",
                "goals": 0,
                "projected_goals": 0,
                "goal_probability": 0.0,
                "assists": 0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "appearance_probability": 0.109,
                "projected_substitutes": 3,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 62.0)",
              "stats": {
                "saves": 0.1415,
                "goals_prevented": 0.022,
                "rating": 6.8,
                "minutes": 4.39,
                "total_pass": 1.3177,
                "accurate_pass": 0.976,
                "total_long_balls": 0.3904,
                "accurate_long_balls": 0.1952,
                "touches": 1.5617,
                "clearances": 0.0439,
                "ball_recovery": 0.0586,
                "high_claims": 0.0244,
                "punches": 0.0146,
                "aerial_won": 0.0293,
                "sweeper_actions": 0.0586,
                "sweeper_accurate": 0.0342,
                "saves_inside_box": 0.0586,
                "possession_lost": 0.1171,
                "duels_won": 0.0195,
                "duels_lost": 0.0098,
                "total_contest": 0.0195,
                "won_contest": 0.0098,
                "fouls": 0.0098,
                "fouls_drawn": 0.0,
                "total_own_half_passes": 1.0249,
                "accurate_own_half_passes": 0.7808,
                "bench_appearance_probability": 0.109,
                "bench_expected_minutes": 4.39,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "available_bench_not_projected_used",
                "goals": 0,
                "projected_goals": 0,
                "goal_probability": 0.0,
                "assists": 0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 62.0
              },
              "params": {
                "match_squad_rank": 8,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 9083,
                "fifa_rank": 15175.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 62.0
              }
            }
          ]
        },
        "Jose Salinas": {
          "player_id": 1068891,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 12,
          "height": 178,
          "market_value": 1800000,
          "stats": {
            "interceptions": 0,
            "tackles": 1,
            "tackles_won": 0,
            "clearances": 1,
            "aerial_won": 0,
            "total_shots": 0,
            "rating": 6.6254,
            "minutes": 14,
            "total_pass": 4,
            "accurate_pass": 3,
            "duels_won": 0,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 2,
            "accurate_own_half_passes": 1,
            "total_opp_half_passes": 3,
            "accurate_opp_half_passes": 2,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 7,
            "possession_lost": 2.1047,
            "dispossessed": 0.0,
            "duels_lost": 1,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assist_rate": 0.0,
            "assists": 0,
            "expected_goals": 0.0179,
            "expected_assists": 0.0023,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 2,
            "total_progression": 4,
            "progressive_carries": 0,
            "key_pass": 0,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.299,
            "bench_expected_minutes": 13.57,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.427,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "available_bench_not_projected_used",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 77.0
          },
          "latest_10_games": [
            {
              "match_id": 16421073,
              "match_date": "2026-10-18",
              "home_team": "Málaga CF",
              "away_team": "Real Sociedad",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 45,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0912,
                "total_shots": 0,
                "total_pass": 15,
                "accurate_pass": 13,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 5,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416303,
              "match_date": "2026-09-20",
              "home_team": "Getafe",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Getafe",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0155,
                "expected_assists": 0.0063,
                "total_shots": 1,
                "total_pass": 24,
                "accurate_pass": 22,
                "tackles": 2,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416338,
              "match_date": "2026-09-17",
              "home_team": "Málaga CF",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 45,
                "rating": 6.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0007,
                "total_shots": 0,
                "total_pass": 8,
                "accurate_pass": 7,
                "tackles": 4,
                "tackles_won": 4,
                "clearances": 2,
                "duels_won": 5,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416347,
              "match_date": "2026-09-13",
              "home_team": "Celta Vigo",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 87,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0127,
                "total_shots": 0,
                "total_pass": 50,
                "accurate_pass": 47,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 2,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416320,
              "match_date": "2026-09-06",
              "home_team": "Málaga CF",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0111,
                "total_shots": 0,
                "total_pass": 45,
                "accurate_pass": 41,
                "interceptions": 2,
                "clearances": 3,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416312,
              "match_date": "2026-08-30",
              "home_team": "Real Madrid",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Málaga CF",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 30,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0022,
                "total_shots": 0,
                "total_pass": 12,
                "accurate_pass": 11,
                "interceptions": 1,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421055,
              "match_date": "2026-08-19",
              "home_team": "Atlético Madrid",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Málaga CF",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 18,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0028,
                "total_shots": 0,
                "total_pass": 11,
                "accurate_pass": 6,
                "aerial_won": 2,
                "duels_won": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083587,
              "match_date": "2026-05-09",
              "home_team": "Sevilla",
              "away_team": "Espanyol",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Espanyol",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 15,
                "rating": 5.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1573,
                "expected_assists": 0.0033,
                "total_shots": 1,
                "total_pass": 4,
                "accurate_pass": 2,
                "key_pass": 1,
                "interceptions": 1
              },
              "has_player_stats": true
            },
            {
              "match_id": 14083642,
              "match_date": "2026-03-15",
              "home_team": "Mallorca",
              "away_team": "Espanyol",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Espanyol",
              "opponent": "Mallorca",
              "stats": {
                "minutes": 9,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 1
              },
              "has_player_stats": true
            },
            {
              "match_id": 14083303,
              "match_date": "2026-02-09",
              "home_team": "Villarreal",
              "away_team": "Espanyol",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Espanyol",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 90,
                "rating": 4.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0111,
                "total_shots": 0,
                "total_pass": 45,
                "accurate_pass": 39,
                "key_pass": 1,
                "interceptions": 2,
                "clearances": 4,
                "aerial_won": 2,
                "duels_won": 4,
                "ball_recovery": 1
              },
              "has_player_stats": true
            }
          ],
          "ranking": {
            "global_player_rank": 2864,
            "combined_rank_score": 1199.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 969.0,
            "sofascore_rating": 6.35,
            "sofascore_appearances": 11.0,
            "fifa_rank": 1429.0,
            "fifa_overall": 77.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 16,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.6254,
            "source_file": "data/player_rankings.csv",
            "player_name": "Jose Salinas",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Jérémy Corinus",
                  "ranking": 2859
                },
                {
                  "player_name": "Livio Meier",
                  "ranking": 2860
                },
                {
                  "player_name": "Park Chae-Joon",
                  "ranking": 2861
                },
                {
                  "player_name": "Martin Andersen",
                  "ranking": 2862
                },
                {
                  "player_name": "Jorge Cabello",
                  "ranking": 2863
                }
              ],
              "lower": [
                {
                  "player_name": "Ryan Camenzuli",
                  "ranking": 2865
                },
                {
                  "player_name": "Miguel Loureiro",
                  "ranking": 2866
                },
                {
                  "player_name": "Saba Sazonov",
                  "ranking": 2867
                },
                {
                  "player_name": "Juan Pablo Nieto",
                  "ranking": 2868
                },
                {
                  "player_name": "Adalid Terrazas",
                  "ranking": 2869
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.75,
          "history_matches": 18,
          "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",
              "totalTackle",
              "totalShots",
              "rating",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "totalShots",
              "rating"
            ],
            "history_matches": 18,
            "data_confidence": 0.75,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 13.572222187561248,
            "bench_appearance_prob": 0.2987373721618749,
            "market_value_adjustment": 0.9956,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost D_service (18 historical appearances) to 13.6 expected mins (appearance prob 0.30)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 7 target models",
              "stats": {
                "interceptions": 0.2941,
                "tackles": 0.6697,
                "tackles_won": 0.4114,
                "clearances": 0.7449,
                "aerial_won": 0.3098,
                "total_shots": 0.1162,
                "rating": 6.6254,
                "minutes": 15.46,
                "total_pass": 4.9402,
                "accurate_pass": 3.3447,
                "duels_won": 0.3742,
                "total_long_balls": 0.2377,
                "accurate_long_balls": 0.0,
                "total_own_half_passes": 1.8897,
                "accurate_own_half_passes": 1.3333,
                "total_opp_half_passes": 3.0505,
                "accurate_opp_half_passes": 2.0114,
                "crosses_total": 0.0491,
                "crosses_accurate": 0.0,
                "touches": 7.6317,
                "possession_lost": 2.4081,
                "dispossessed": 0.0,
                "duels_lost": 1.1003,
                "aerial_lost": 0.4396,
                "total_contest": 0.1302,
                "won_contest": 0.0,
                "ball_recovery": 0.4437,
                "challenges_lost": 0.3103,
                "fouls": 0.2203,
                "fouls_drawn": 0.0,
                "blocks": 0.1801,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0205,
                "expected_assists": 0.0026,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 1.7669,
                "total_progression": 4.3965,
                "progressive_carries": 0.0,
                "key_pass": 0.1302,
                "shots_off_target": 0.1162
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 6,
                  "trained_at": "2026-10-23T10:04:32.310343+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 626,
                    "rows": 21426
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Real Sociedad",
                    "minutes": 45.0,
                    "is_starting": true,
                    "weight": 0.1585,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Getafe",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1347,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Villarreal",
                    "minutes": 45.0,
                    "is_starting": true,
                    "weight": 0.1145,
                    "rating": 6.0
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Celta Vigo",
                    "minutes": 87.0,
                    "is_starting": true,
                    "weight": 0.0973,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Levante UD",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0827,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Real Madrid",
                    "minutes": 30.0,
                    "is_starting": false,
                    "weight": 0.0703,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-08-19",
                    "opponent": "Atlético Madrid",
                    "minutes": 18.0,
                    "is_starting": false,
                    "weight": 0.0598,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-05-09",
                    "opponent": "Sevilla",
                    "minutes": 15.0,
                    "is_starting": false,
                    "weight": 0.0508,
                    "rating": 5.6
                  },
                  {
                    "match_date": "2026-03-15",
                    "opponent": "Mallorca",
                    "minutes": 9.0,
                    "is_starting": false,
                    "weight": 0.0432,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-02-09",
                    "opponent": "Villarreal",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0367,
                    "rating": 4.9
                  }
                ],
                "feature_row": {
                  "history_matches": 18.0,
                  "is_starting_11": 0.0,
                  "totalClearance": 1.2931,
                  "aerialWon": 0.5881,
                  "totalClearance_p90": 1.8458,
                  "totalTackle": 1.2843,
                  "defensive_actions": 1.839
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.2941436469554901,
                    "model_output": 0.2941,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2909
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0422
                      },
                      {
                        "name": "touches",
                        "importance": 0.0304
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0294
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.8603,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.4765
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0343
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": -0.011
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0106
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0096
                        }
                      ],
                      "others": -0.0242,
                      "total": 0.2941,
                      "log_link": true,
                      "margin_base": -0.150447,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.807163
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.0937
                        },
                        {
                          "name": "ballRecovery_p90",
                          "margin": -0.032007
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.031719
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.029783
                        }
                      ],
                      "others_margin": -0.078868
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 0.6696659922599792,
                    "model_output": 0.6697,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2494
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0709
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0459
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0405
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 1.3831,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.749
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": 0.02
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.0185
                        },
                        {
                          "name": "totalClearance",
                          "contribution": 0.0131
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0126
                        }
                      ],
                      "others": -0.0286,
                      "total": 0.6697,
                      "log_link": true,
                      "margin_base": 0.324299,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.779934
                        },
                        {
                          "name": "ballRecovery_p90",
                          "margin": 0.031113
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.027862
                        },
                        {
                          "name": "totalClearance",
                          "margin": 0.019223
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.018216
                        }
                      ],
                      "others_margin": -0.041756
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.41136014461517334,
                    "model_output": 0.4114,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2138
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0741
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0462
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0368
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0292
                      }
                    ],
                    "decomposition": {
                      "base": 0.845,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.4475
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0246
                        },
                        {
                          "name": "errorLeadToAShot",
                          "contribution": -0.0128
                        },
                        {
                          "name": "totalClearance",
                          "contribution": 0.0113
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.0092
                        }
                      ],
                      "others": -0.0184,
                      "total": 0.4114,
                      "log_link": true,
                      "margin_base": -0.168402,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.754186
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.059991
                        },
                        {
                          "name": "errorLeadToAShot",
                          "margin": -0.030681
                        },
                        {
                          "name": "totalClearance",
                          "margin": 0.027117
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.021559
                        }
                      ],
                      "others_margin": -0.043683
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 0.7448986172676086,
                    "model_output": 0.7449,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2886
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.1626
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0929
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0369
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.02
                      }
                    ],
                    "decomposition": {
                      "base": 3.4251,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -2.1216
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.3045
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.0965
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0581
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0485
                        }
                      ],
                      "others": -0.051,
                      "total": 0.7449,
                      "log_link": true,
                      "margin_base": 1.231123,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.96609
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.266014
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": -0.101577
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.066573
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.059109
                        }
                      ],
                      "others_margin": -0.066266
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.3097958564758301,
                    "model_output": 0.3098,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "aerialWon",
                        "importance": 0.1614
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1578
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0791
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0413
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0335
                      }
                    ],
                    "decomposition": {
                      "base": 1.3852,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.7824
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.1778
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0377
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0324
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0149
                        }
                      ],
                      "others": -0.0302,
                      "total": 0.3098,
                      "log_link": true,
                      "margin_base": 0.325816,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.832071
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.349575
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.092894
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.08729
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.042993
                        }
                      ],
                      "others_margin": -0.092836
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.11618750542402267,
                    "model_output": 0.1162,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0997
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0736
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.034
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0332
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.4749,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1883
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0814
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0242
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.0184
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0154
                        }
                      ],
                      "others": -0.031,
                      "total": 0.1162,
                      "log_link": false,
                      "margin_base": 0.47494,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.188321
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.081378
                        },
                        {
                          "name": "rating",
                          "margin": -0.024244
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": -0.018399
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.015411
                        }
                      ],
                      "others_margin": -0.030999
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.625420570373535,
                    "model_output": 6.6254,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "totalPass",
                        "importance": 0.0694
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0576
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.055
                      },
                      {
                        "name": "touches",
                        "importance": 0.0384
                      },
                      {
                        "name": "rating",
                        "importance": 0.0296
                      }
                    ],
                    "decomposition": {
                      "base": 6.7904,
                      "items": [
                        {
                          "name": "totalPass",
                          "contribution": -0.0421
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0202
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0192
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0152
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.0137
                        }
                      ],
                      "others": -0.0546,
                      "total": 6.6254,
                      "log_link": false,
                      "margin_base": 6.790384,
                      "item_margins": [
                        {
                          "name": "totalPass",
                          "margin": -0.042118
                        },
                        {
                          "name": "rating",
                          "margin": -0.020221
                        },
                        {
                          "name": "accuratePass",
                          "margin": -0.019152
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.015225
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": -0.013746
                        }
                      ],
                      "others_margin": -0.054501
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "substitute",
                  "history_matches": 18,
                  "role_matches": 11,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "role_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9956, quality 0.437)",
              "stats": {
                "interceptions": 0.2928,
                "tackles": 0.6667,
                "tackles_won": 0.4096,
                "clearances": 0.7416,
                "aerial_won": 0.3084,
                "total_shots": 0.1157,
                "rating": 6.6254,
                "minutes": 15.46,
                "total_pass": 4.9185,
                "accurate_pass": 3.33,
                "duels_won": 0.3726,
                "total_long_balls": 0.2367,
                "accurate_long_balls": 0.0,
                "total_own_half_passes": 1.8814,
                "accurate_own_half_passes": 1.3274,
                "total_opp_half_passes": 3.0371,
                "accurate_opp_half_passes": 2.0025,
                "crosses_total": 0.0489,
                "crosses_accurate": 0.0,
                "touches": 7.5981,
                "possession_lost": 2.3975,
                "dispossessed": 0.0,
                "duels_lost": 1.0955,
                "aerial_lost": 0.4377,
                "total_contest": 0.1296,
                "won_contest": 0.0,
                "ball_recovery": 0.4417,
                "challenges_lost": 0.3089,
                "fouls": 0.2193,
                "fouls_drawn": 0.0,
                "blocks": 0.1793,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0204,
                "expected_assists": 0.0026,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 1.7591,
                "total_progression": 4.3772,
                "progressive_carries": 0.0,
                "key_pass": 0.1296,
                "shots_off_target": 0.1157
              },
              "params": {
                "market_value_eur": 1800000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9956,
                "reference_quality": 0.505,
                "history_matches": 18,
                "history_shrink": 0.2174,
                "market_value_known": true
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 15.5 to 13.6 expected minutes (appearance prob 0.30)",
              "stats": {
                "interceptions": 0.257,
                "tackles": 0.5853,
                "tackles_won": 0.3596,
                "clearances": 0.651,
                "aerial_won": 0.2707,
                "total_shots": 0.1016,
                "rating": 6.6254,
                "minutes": 13.57,
                "total_pass": 4.3179,
                "accurate_pass": 2.9234,
                "duels_won": 0.3271,
                "total_long_balls": 0.2078,
                "accurate_long_balls": 0.0,
                "total_own_half_passes": 1.6517,
                "accurate_own_half_passes": 1.1653,
                "total_opp_half_passes": 2.6662,
                "accurate_opp_half_passes": 1.758,
                "crosses_total": 0.0429,
                "crosses_accurate": 0.0,
                "touches": 6.6703,
                "possession_lost": 2.1047,
                "dispossessed": 0.0,
                "duels_lost": 0.9617,
                "aerial_lost": 0.4377,
                "total_contest": 0.1138,
                "won_contest": 0.0,
                "ball_recovery": 0.3878,
                "challenges_lost": 0.3089,
                "fouls": 0.1925,
                "fouls_drawn": 0.0,
                "blocks": 0.1574,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0179,
                "expected_assists": 0.0023,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 1.5443,
                "total_progression": 3.8427,
                "progressive_carries": 0.0,
                "key_pass": 0.1138,
                "shots_off_target": 0.1016,
                "bench_appearance_probability": 0.299,
                "bench_expected_minutes": 13.57
              },
              "params": {
                "expected_minutes": 13.57,
                "projection_minutes": 15.46,
                "minutes_scale": 0.8779,
                "appearance_probability": 0.299
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 0.257,
                "tackles": 0.5853,
                "tackles_won": 0.3596,
                "clearances": 0.651,
                "aerial_won": 0.2707,
                "total_shots": 0.1016,
                "rating": 6.6254,
                "minutes": 13.57,
                "total_pass": 4.3179,
                "accurate_pass": 2.9234,
                "duels_won": 0.3271,
                "total_long_balls": 0.2078,
                "accurate_long_balls": 0.0,
                "total_own_half_passes": 1.6517,
                "accurate_own_half_passes": 1.1653,
                "total_opp_half_passes": 2.6662,
                "accurate_opp_half_passes": 1.758,
                "crosses_total": 0.0429,
                "crosses_accurate": 0.0,
                "touches": 6.6703,
                "possession_lost": 2.1047,
                "dispossessed": 0.0,
                "duels_lost": 0.9617,
                "aerial_lost": 0.4377,
                "total_contest": 0.1138,
                "won_contest": 0.0,
                "ball_recovery": 0.3878,
                "challenges_lost": 0.3089,
                "fouls": 0.1925,
                "fouls_drawn": 0.0,
                "blocks": 0.1574,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0179,
                "expected_assists": 0.0023,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 1.5443,
                "total_progression": 3.8427,
                "progressive_carries": 0.0,
                "key_pass": 0.1138,
                "shots_off_target": 0.1016,
                "bench_appearance_probability": 0.299,
                "bench_expected_minutes": 13.57
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "not_projected_to_play",
              "description": "Not among the projected substitutes: no share of the team's goals or assists",
              "stats": {
                "interceptions": 0.257,
                "tackles": 0.5853,
                "tackles_won": 0.3596,
                "clearances": 0.651,
                "aerial_won": 0.2707,
                "total_shots": 0.1016,
                "rating": 6.6254,
                "minutes": 13.57,
                "total_pass": 4.3179,
                "accurate_pass": 2.9234,
                "duels_won": 0.3271,
                "total_long_balls": 0.2078,
                "accurate_long_balls": 0.0,
                "total_own_half_passes": 1.6517,
                "accurate_own_half_passes": 1.1653,
                "total_opp_half_passes": 2.6662,
                "accurate_opp_half_passes": 1.758,
                "crosses_total": 0.0429,
                "crosses_accurate": 0.0,
                "touches": 6.6703,
                "possession_lost": 2.1047,
                "dispossessed": 0.0,
                "duels_lost": 0.9617,
                "aerial_lost": 0.4377,
                "total_contest": 0.1138,
                "won_contest": 0.0,
                "ball_recovery": 0.3878,
                "challenges_lost": 0.3089,
                "fouls": 0.1925,
                "fouls_drawn": 0.0,
                "blocks": 0.1574,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0179,
                "expected_assists": 0.0023,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 1.5443,
                "total_progression": 3.8427,
                "progressive_carries": 0.0,
                "key_pass": 0.1138,
                "shots_off_target": 0.1016,
                "bench_appearance_probability": 0.299,
                "bench_expected_minutes": 13.57,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "available_bench_not_projected_used",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "appearance_probability": 0.299,
                "projected_substitutes": 3,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 77.0)",
              "stats": {
                "interceptions": 0.257,
                "tackles": 0.5853,
                "tackles_won": 0.3596,
                "clearances": 0.651,
                "aerial_won": 0.2707,
                "total_shots": 0.1016,
                "rating": 6.6254,
                "minutes": 13.57,
                "total_pass": 4.3179,
                "accurate_pass": 2.9234,
                "duels_won": 0.3271,
                "total_long_balls": 0.2078,
                "accurate_long_balls": 0.0,
                "total_own_half_passes": 1.6517,
                "accurate_own_half_passes": 1.1653,
                "total_opp_half_passes": 2.6662,
                "accurate_opp_half_passes": 1.758,
                "crosses_total": 0.0429,
                "crosses_accurate": 0.0,
                "touches": 6.6703,
                "possession_lost": 2.1047,
                "dispossessed": 0.0,
                "duels_lost": 0.9617,
                "aerial_lost": 0.4377,
                "total_contest": 0.1138,
                "won_contest": 0.0,
                "ball_recovery": 0.3878,
                "challenges_lost": 0.3089,
                "fouls": 0.1925,
                "fouls_drawn": 0.0,
                "blocks": 0.1574,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0179,
                "expected_assists": 0.0023,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 1.5443,
                "total_progression": 3.8427,
                "progressive_carries": 0.0,
                "key_pass": 0.1138,
                "shots_off_target": 0.1016,
                "bench_appearance_probability": 0.299,
                "bench_expected_minutes": 13.57,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "available_bench_not_projected_used",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 77.0
              },
              "params": {
                "match_squad_rank": 16,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 2864,
                "fifa_rank": 1429.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 77.0
              }
            }
          ]
        },
        "Diego Murillo": {
          "player_id": 1410734,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 16,
          "height": 182,
          "market_value": 1600000,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 0,
            "aerial_won": 0,
            "duels_won": 1,
            "total_pass": 6,
            "accurate_pass": 5,
            "expected_goals": 0.0024,
            "rating": 6.8,
            "minutes": 14,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "total_own_half_passes": 4,
            "accurate_own_half_passes": 3,
            "total_opp_half_passes": 1,
            "accurate_opp_half_passes": 1,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 9,
            "possession_lost": 0.935,
            "dispossessed": 0.4,
            "duels_lost": 0,
            "aerial_lost": 2,
            "total_contest": 1,
            "won_contest": 0,
            "ball_recovery": 1,
            "challenges_lost": 1,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assist_rate": 0.006,
            "assists": 0,
            "expected_assists": 0.0068,
            "total_shots": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0018,
            "key_pass": 0,
            "ball_carries": 3,
            "total_progression": 8,
            "progressive_carries": 1,
            "bench_appearance_probability": 0.299,
            "bench_expected_minutes": 13.57,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.427,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "available_bench_not_projected_used",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 84.0
          },
          "latest_10_games": [],
          "ranking": {
            "global_player_rank": 327,
            "combined_rank_score": 208.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 197.0,
            "fifa_overall": 84.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 7,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.8,
            "source_file": "data/player_rankings.csv",
            "player_name": "Diego Murillo",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Nico Paz",
                  "ranking": 322
                },
                {
                  "player_name": "Unai Simón",
                  "ranking": 323
                },
                {
                  "player_name": "Aleksandre Andronikashvili",
                  "ranking": 324
                },
                {
                  "player_name": "Javier Correa",
                  "ranking": 325
                },
                {
                  "player_name": "Alejandro Santander",
                  "ranking": 326
                }
              ],
              "lower": [
                {
                  "player_name": "Boubacar Kamara",
                  "ranking": 328
                },
                {
                  "player_name": "Min-woo Kim",
                  "ranking": 329
                },
                {
                  "player_name": "Juan Berrocal",
                  "ranking": 330
                },
                {
                  "player_name": "Marcos Senesi",
                  "ranking": 331
                },
                {
                  "player_name": "Cristian Romero",
                  "ranking": 332
                }
              ]
            }
          },
          "data_sources": [
            "market_value"
          ],
          "data_confidence": 0.25,
          "history_matches": 0,
          "xgboost_reasoning": {
            "model_source": "market_value_prior",
            "position_service": "D_service",
            "features_evaluated": [],
            "targets_predicted": [],
            "history_matches": 0,
            "data_confidence": 0.25,
            "data_sources": [
              "market_value"
            ],
            "bench_expected_minutes": 13.572222187561248,
            "bench_appearance_prob": 0.2987373721618749,
            "market_value_adjustment": 0.4374,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection from market-value prior (€1,600,000) scaled to 13.6 expected mins."
          },
          "stat_evolution": [
            {
              "step": "market_value_prior",
              "description": "Market-value baseline for position D (quality 0.44)",
              "stats": {
                "interceptions": 1.4,
                "tackles": 2.2,
                "tackles_won": 1.3,
                "clearances": 2.5,
                "aerial_won": 2.1,
                "duels_won": 5.2,
                "total_pass": 42.0,
                "accurate_pass": 33.0,
                "expected_goals": 0.016,
                "rating": 6.8,
                "minutes": 90.0,
                "total_long_balls": 5.0,
                "accurate_long_balls": 2.8,
                "total_own_half_passes": 27.0,
                "accurate_own_half_passes": 21.0,
                "total_opp_half_passes": 9.0,
                "accurate_opp_half_passes": 6.0,
                "crosses_total": 0.8,
                "crosses_accurate": 0.4,
                "touches": 58.0,
                "possession_lost": 6.2,
                "dispossessed": 0.4,
                "duels_lost": 3.3,
                "aerial_lost": 1.9,
                "total_contest": 3.7,
                "won_contest": 2.1,
                "ball_recovery": 4.7,
                "challenges_lost": 0.9,
                "fouls": 0.9,
                "fouls_drawn": 0.6,
                "blocks": 0.6,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.04,
                "assist_rate": 0.04,
                "expected_assists": 0.045,
                "total_shots": 0.32,
                "shots_on_target": 0.14,
                "shots_off_target": 0.18,
                "big_chances_created": 0.04,
                "xgot": 0.012,
                "key_pass": 0.5,
                "ball_carries": 19.0,
                "total_progression": 56.0,
                "progressive_carries": 4.0
              },
              "params": {
                "market_value_eur": 1600000,
                "quality_factor": 0.4374
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 90.0 to 13.6 expected minutes (appearance prob 0.30)",
              "stats": {
                "interceptions": 0.2111,
                "tackles": 0.3318,
                "tackles_won": 0.196,
                "clearances": 0.377,
                "aerial_won": 0.3167,
                "duels_won": 0.7842,
                "total_pass": 6.3337,
                "accurate_pass": 4.9765,
                "expected_goals": 0.0024,
                "rating": 6.8,
                "minutes": 13.57,
                "total_long_balls": 0.754,
                "accurate_long_balls": 0.4222,
                "total_own_half_passes": 4.0717,
                "accurate_own_half_passes": 3.1669,
                "total_opp_half_passes": 1.3572,
                "accurate_opp_half_passes": 0.9048,
                "crosses_total": 0.1206,
                "crosses_accurate": 0.0603,
                "touches": 8.7465,
                "possession_lost": 0.935,
                "dispossessed": 0.4,
                "duels_lost": 0.4976,
                "aerial_lost": 1.9,
                "total_contest": 0.558,
                "won_contest": 0.3167,
                "ball_recovery": 0.7088,
                "challenges_lost": 0.9,
                "fouls": 0.1357,
                "fouls_drawn": 0.0905,
                "blocks": 0.0905,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.006,
                "assist_rate": 0.006,
                "expected_assists": 0.0068,
                "total_shots": 0.0483,
                "shots_on_target": 0.0211,
                "shots_off_target": 0.0271,
                "big_chances_created": 0.006,
                "xgot": 0.0018,
                "key_pass": 0.0754,
                "ball_carries": 2.8652,
                "total_progression": 8.4449,
                "progressive_carries": 0.6032,
                "bench_appearance_probability": 0.299,
                "bench_expected_minutes": 13.57
              },
              "params": {
                "expected_minutes": 13.57,
                "projection_minutes": 90.0,
                "minutes_scale": 0.1508,
                "appearance_probability": 0.299
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 0.2111,
                "tackles": 0.3318,
                "tackles_won": 0.196,
                "clearances": 0.377,
                "aerial_won": 0.3167,
                "duels_won": 0.7842,
                "total_pass": 6.3337,
                "accurate_pass": 4.9765,
                "expected_goals": 0.0024,
                "rating": 6.8,
                "minutes": 13.57,
                "total_long_balls": 0.754,
                "accurate_long_balls": 0.4222,
                "total_own_half_passes": 4.0717,
                "accurate_own_half_passes": 3.1669,
                "total_opp_half_passes": 1.3572,
                "accurate_opp_half_passes": 0.9048,
                "crosses_total": 0.1206,
                "crosses_accurate": 0.0603,
                "touches": 8.7465,
                "possession_lost": 0.935,
                "dispossessed": 0.4,
                "duels_lost": 0.4976,
                "aerial_lost": 1.9,
                "total_contest": 0.558,
                "won_contest": 0.3167,
                "ball_recovery": 0.7088,
                "challenges_lost": 0.9,
                "fouls": 0.1357,
                "fouls_drawn": 0.0905,
                "blocks": 0.0905,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.006,
                "assist_rate": 0.006,
                "expected_assists": 0.0068,
                "total_shots": 0.0483,
                "shots_on_target": 0.0211,
                "shots_off_target": 0.0271,
                "big_chances_created": 0.006,
                "xgot": 0.0018,
                "key_pass": 0.0754,
                "ball_carries": 2.8652,
                "total_progression": 8.4449,
                "progressive_carries": 0.6032,
                "bench_appearance_probability": 0.299,
                "bench_expected_minutes": 13.57
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "not_projected_to_play",
              "description": "Not among the projected substitutes: no share of the team's goals or assists",
              "stats": {
                "interceptions": 0.2111,
                "tackles": 0.3318,
                "tackles_won": 0.196,
                "clearances": 0.377,
                "aerial_won": 0.3167,
                "duels_won": 0.7842,
                "total_pass": 6.3337,
                "accurate_pass": 4.9765,
                "expected_goals": 0.0024,
                "rating": 6.8,
                "minutes": 13.57,
                "total_long_balls": 0.754,
                "accurate_long_balls": 0.4222,
                "total_own_half_passes": 4.0717,
                "accurate_own_half_passes": 3.1669,
                "total_opp_half_passes": 1.3572,
                "accurate_opp_half_passes": 0.9048,
                "crosses_total": 0.1206,
                "crosses_accurate": 0.0603,
                "touches": 8.7465,
                "possession_lost": 0.935,
                "dispossessed": 0.4,
                "duels_lost": 0.4976,
                "aerial_lost": 1.9,
                "total_contest": 0.558,
                "won_contest": 0.3167,
                "ball_recovery": 0.7088,
                "challenges_lost": 0.9,
                "fouls": 0.1357,
                "fouls_drawn": 0.0905,
                "blocks": 0.0905,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.006,
                "assists": 0,
                "expected_assists": 0.0068,
                "total_shots": 0.0483,
                "shots_on_target": 0.0211,
                "shots_off_target": 0.0271,
                "big_chances_created": 0.006,
                "xgot": 0.0018,
                "key_pass": 0.0754,
                "ball_carries": 2.8652,
                "total_progression": 8.4449,
                "progressive_carries": 0.6032,
                "bench_appearance_probability": 0.299,
                "bench_expected_minutes": 13.57,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "available_bench_not_projected_used",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "appearance_probability": 0.299,
                "projected_substitutes": 3,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 84.0)",
              "stats": {
                "interceptions": 0.2111,
                "tackles": 0.3318,
                "tackles_won": 0.196,
                "clearances": 0.377,
                "aerial_won": 0.3167,
                "duels_won": 0.7842,
                "total_pass": 6.3337,
                "accurate_pass": 4.9765,
                "expected_goals": 0.0024,
                "rating": 6.8,
                "minutes": 13.57,
                "total_long_balls": 0.754,
                "accurate_long_balls": 0.4222,
                "total_own_half_passes": 4.0717,
                "accurate_own_half_passes": 3.1669,
                "total_opp_half_passes": 1.3572,
                "accurate_opp_half_passes": 0.9048,
                "crosses_total": 0.1206,
                "crosses_accurate": 0.0603,
                "touches": 8.7465,
                "possession_lost": 0.935,
                "dispossessed": 0.4,
                "duels_lost": 0.4976,
                "aerial_lost": 1.9,
                "total_contest": 0.558,
                "won_contest": 0.3167,
                "ball_recovery": 0.7088,
                "challenges_lost": 0.9,
                "fouls": 0.1357,
                "fouls_drawn": 0.0905,
                "blocks": 0.0905,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.006,
                "assists": 0,
                "expected_assists": 0.0068,
                "total_shots": 0.0483,
                "shots_on_target": 0.0211,
                "shots_off_target": 0.0271,
                "big_chances_created": 0.006,
                "xgot": 0.0018,
                "key_pass": 0.0754,
                "ball_carries": 2.8652,
                "total_progression": 8.4449,
                "progressive_carries": 0.6032,
                "bench_appearance_probability": 0.299,
                "bench_expected_minutes": 13.57,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "available_bench_not_projected_used",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 84.0
              },
              "params": {
                "match_squad_rank": 7,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 327,
                "fifa_rank": 197.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 84.0
              }
            }
          ]
        },
        "Jens-Lys Cajuste": {
          "player_id": 857671,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 2,
          "height": 188,
          "market_value": 6600000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0065,
            "assist_rate": 0.0336,
            "assists": 0,
            "expected_goals": 0.012,
            "goal_rate": 0.0571,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 0,
            "rating": 6.6643,
            "minutes": 22,
            "total_pass": 8,
            "accurate_pass": 7,
            "duels_won": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 4,
            "accurate_own_half_passes": 4,
            "total_opp_half_passes": 4,
            "accurate_opp_half_passes": 3,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 10,
            "possession_lost": 1.4052,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_won": 0,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 1,
            "tackles": 1,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 3,
            "total_progression": 6,
            "progressive_carries": 0,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.507,
            "bench_expected_minutes": 22.15,
            "projected_substitution_order": 3,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.427,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0119,
            "projected_assists": 0,
            "assist_probability": 0.0065,
            "finishing_factor": 1.25,
            "creation_factor": 1.25,
            "fifa_overall": 73.0
          },
          "latest_10_games": [
            {
              "match_id": 16416320,
              "match_date": "2026-09-06",
              "home_team": "Málaga CF",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Málaga CF",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 9,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0005,
                "total_shots": 0,
                "total_pass": 6,
                "accurate_pass": 5,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 3806,
            "combined_rank_score": 1806.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 3437.0,
            "fifa_overall": 73.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 14,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.6643,
            "source_file": "data/player_rankings.csv",
            "player_name": "Jens-Lys Cajuste",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Bartłomiej Drągowski",
                  "ranking": 3801
                },
                {
                  "player_name": "Eliesse Ben Seghir",
                  "ranking": 3802
                },
                {
                  "player_name": "Roony Bardghji",
                  "ranking": 3803
                },
                {
                  "player_name": "Nilson Angulo",
                  "ranking": 3804
                },
                {
                  "player_name": "James McAtee",
                  "ranking": 3805
                }
              ],
              "lower": [
                {
                  "player_name": "Yáser Asprilla",
                  "ranking": 3807
                },
                {
                  "player_name": "Stephen Eustaquio",
                  "ranking": 3808
                },
                {
                  "player_name": "Darío Osorio",
                  "ranking": 3809
                },
                {
                  "player_name": "Josh Sargent",
                  "ranking": 3810
                },
                {
                  "player_name": "Haris Hajradinović",
                  "ranking": 3811
                }
              ]
            }
          },
          "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",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "rating",
              "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",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 1,
            "data_confidence": 0.312,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 22.147767132293673,
            "bench_appearance_prob": 0.5067166878315306,
            "market_value_adjustment": 0.9942,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost M_service (1 historical appearances) to 22.1 expected mins (appearance prob 0.51)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 0.2246,
                "expected_assists": 0.0114,
                "assists": 0.0239,
                "assist_rate": 0.0239,
                "expected_goals": 0.0228,
                "goals": 0.0406,
                "goal_rate": 0.0406,
                "shots_on_target": 0.0787,
                "total_shots": 0.2566,
                "rating": 6.6643,
                "minutes": 15.67,
                "total_pass": 6.0,
                "accurate_pass": 5.0,
                "duels_won": 1.0,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_own_half_passes": 3.0,
                "accurate_own_half_passes": 3.0,
                "total_opp_half_passes": 3.0,
                "accurate_opp_half_passes": 2.0,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 7.0,
                "possession_lost": 1.0,
                "dispossessed": 0.0,
                "duels_lost": 0.0,
                "aerial_won": 0.0,
                "aerial_lost": 0.0,
                "interceptions": 0.0,
                "tackles_won": 1.0,
                "tackles": 1.0,
                "clearances": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 2.0,
                "total_progression": 4.2118,
                "progressive_carries": 0.0,
                "shots_off_target": 0.1779
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 7,
                  "trained_at": "2026-10-23T10:05:23.571433+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 903,
                    "rows": 24475
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Levante UD",
                    "minutes": 9.0,
                    "is_starting": false,
                    "weight": 1.0,
                    "rating": 6.7
                  }
                ],
                "feature_row": {
                  "history_matches": 1.0,
                  "is_starting_11": 0.0,
                  "creative_index": 0.0003,
                  "totalShots": 0.0,
                  "expectedGoals": 0.0,
                  "expectedAssists": 0.0005,
                  "onTargetScoringAttempt": 0.0
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.2246042639017105,
                    "model_output": 0.2246,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1647
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1377
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0663
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0524
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0316
                      }
                    ],
                    "decomposition": {
                      "base": 0.8945,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.4456
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0581
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0383
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0328
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0291
                        }
                      ],
                      "others": -0.066,
                      "total": 0.2246,
                      "log_link": true,
                      "margin_base": -0.111507,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.689397
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.138484
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.103229
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.097561
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": -0.09538
                        }
                      ],
                      "others_margin": -0.257857
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.011418403126299381,
                    "model_output": 0.0114,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1545
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1048
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.1021
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0476
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0472
                      }
                    ],
                    "decomposition": {
                      "base": 0.0859,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0411
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0116
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0077
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0031
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.002
                        }
                      ],
                      "others": -0.009,
                      "total": 0.0114,
                      "log_link": true,
                      "margin_base": -2.454719,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.650563
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.298697
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.263878
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.13116
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.093994
                        }
                      ],
                      "others_margin": -0.579521
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.0239360760897398,
                    "model_output": 0.0239,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.0619
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0395
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0343
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0335
                      }
                    ],
                    "decomposition": {
                      "base": 0.0874,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0232
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.013
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0094
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0073
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": -0.0024
                        }
                      ],
                      "others": -0.0082,
                      "total": 0.0239,
                      "log_link": true,
                      "margin_base": -2.437263,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.309243
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.22713
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.202853
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.192496
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": -0.071326
                        }
                      ],
                      "others_margin": -0.292059
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.02282029204070568,
                    "model_output": 0.0228,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedGoals",
                        "importance": 0.134
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.074
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0705
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.039
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0273
                      }
                    ],
                    "decomposition": {
                      "base": 0.094,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0362
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0188
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0093
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0038
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": 0.0029
                        }
                      ],
                      "others": -0.006,
                      "total": 0.0228,
                      "log_link": true,
                      "margin_base": -2.364919,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.486251
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.39299
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.272593
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.136533
                        },
                        {
                          "name": "interceptionWon",
                          "margin": 0.10507
                        }
                      ],
                      "others_margin": -0.231888
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.040619347244501114,
                    "model_output": 0.0406,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0974
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0527
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0513
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0365
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.03
                      }
                    ],
                    "decomposition": {
                      "base": 0.0993,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0339
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0145
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0073
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0047
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0026
                        }
                      ],
                      "others": 0.0043,
                      "total": 0.0406,
                      "log_link": true,
                      "margin_base": -2.309444,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.417746
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.251313
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.154249
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.112963
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.069564
                        }
                      ],
                      "others_margin": 0.111769
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.07872195541858673,
                    "model_output": 0.0787,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1106
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0885
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0762
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0292
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0279
                      }
                    ],
                    "decomposition": {
                      "base": 0.326,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1425
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0589
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0275
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0183
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0106
                        }
                      ],
                      "others": -0.0107,
                      "total": 0.0787,
                      "log_link": true,
                      "margin_base": -1.120773,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.574432
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.386635
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.249342
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.208635
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.126619
                        }
                      ],
                      "others_margin": -0.128634
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.25658538937568665,
                    "model_output": 0.2566,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1261
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1167
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0633
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0419
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.9969,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.3708
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.239
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0502
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0276
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0259
                        }
                      ],
                      "others": -0.0268,
                      "total": 0.2566,
                      "log_link": false,
                      "margin_base": 0.996896,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.370769
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.238969
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.050176
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.027578
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.02588
                        }
                      ],
                      "others_margin": -0.026937
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.664326190948486,
                    "model_output": 6.6643,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "rating",
                        "importance": 0.0947
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0836
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0491
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0438
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.036
                      }
                    ],
                    "decomposition": {
                      "base": 6.8561,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.081
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0443
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0225
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.0135
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0121
                        }
                      ],
                      "others": -0.0184,
                      "total": 6.6643,
                      "log_link": false,
                      "margin_base": 6.856052,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.080971
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.044331
                        },
                        {
                          "name": "rating",
                          "margin": -0.022539
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.013493
                        },
                        {
                          "name": "totalPass",
                          "margin": -0.012112
                        }
                      ],
                      "others_margin": -0.01828
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "substitute",
                  "history_matches": 1,
                  "role_matches": 1,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "all_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9942, quality 0.482)",
              "stats": {
                "key_pass": 0.2233,
                "expected_assists": 0.0114,
                "assists": 0.0238,
                "assist_rate": 0.0238,
                "expected_goals": 0.0227,
                "goals": 0.0404,
                "goal_rate": 0.0404,
                "shots_on_target": 0.0783,
                "total_shots": 0.2552,
                "rating": 6.6643,
                "minutes": 15.67,
                "total_pass": 5.9652,
                "accurate_pass": 4.971,
                "duels_won": 0.9942,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_own_half_passes": 2.9826,
                "accurate_own_half_passes": 2.9826,
                "total_opp_half_passes": 2.9826,
                "accurate_opp_half_passes": 1.9884,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 6.9594,
                "possession_lost": 0.9942,
                "dispossessed": 0.0,
                "duels_lost": 0.0,
                "aerial_won": 0.0,
                "aerial_lost": 0.0,
                "interceptions": 0.0,
                "tackles_won": 0.9942,
                "tackles": 0.9942,
                "clearances": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 1.9884,
                "total_progression": 4.1874,
                "progressive_carries": 0.0,
                "shots_off_target": 0.1769
              },
              "params": {
                "market_value_eur": 6600000,
                "quality_factor": 0.4818,
                "boost_factor": 0.9942,
                "reference_quality": 0.505,
                "history_matches": 1,
                "history_shrink": 0.8333,
                "market_value_known": true
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 15.7 to 22.1 expected minutes (appearance prob 0.51)",
              "stats": {
                "key_pass": 0.3156,
                "expected_assists": 0.0161,
                "assists": 0.0336,
                "assist_rate": 0.0336,
                "expected_goals": 0.0321,
                "goals": 0.0571,
                "goal_rate": 0.0571,
                "shots_on_target": 0.1107,
                "total_shots": 0.3607,
                "rating": 6.6643,
                "minutes": 22.15,
                "total_pass": 8.4311,
                "accurate_pass": 7.0259,
                "duels_won": 1.4052,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_own_half_passes": 4.2156,
                "accurate_own_half_passes": 4.2156,
                "total_opp_half_passes": 4.2156,
                "accurate_opp_half_passes": 2.8104,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 9.8363,
                "possession_lost": 1.4052,
                "dispossessed": 0.0,
                "duels_lost": 0.0,
                "aerial_won": 0.0,
                "aerial_lost": 0.0,
                "interceptions": 0.0,
                "tackles_won": 1.4052,
                "tackles": 1.4052,
                "clearances": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 2.8104,
                "total_progression": 5.9184,
                "progressive_carries": 0.0,
                "shots_off_target": 0.25,
                "bench_appearance_probability": 0.507,
                "bench_expected_minutes": 22.15
              },
              "params": {
                "expected_minutes": 22.15,
                "projection_minutes": 15.67,
                "minutes_scale": 1.4134,
                "appearance_probability": 0.507
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0.3156,
                "expected_assists": 0.0161,
                "assists": 0.0336,
                "assist_rate": 0.0336,
                "expected_goals": 0.0321,
                "goals": 0.0571,
                "goal_rate": 0.0571,
                "shots_on_target": 0.1107,
                "total_shots": 0.3607,
                "rating": 6.6643,
                "minutes": 22.15,
                "total_pass": 8.4311,
                "accurate_pass": 7.0259,
                "duels_won": 1.4052,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_own_half_passes": 4.2156,
                "accurate_own_half_passes": 4.2156,
                "total_opp_half_passes": 4.2156,
                "accurate_opp_half_passes": 2.8104,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 9.8363,
                "possession_lost": 1.4052,
                "dispossessed": 0.0,
                "duels_lost": 0.0,
                "aerial_won": 0.0,
                "aerial_lost": 0.0,
                "interceptions": 0.0,
                "tackles_won": 1.4052,
                "tackles": 1.4052,
                "clearances": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 2.8104,
                "total_progression": 5.9184,
                "progressive_carries": 0.0,
                "shots_off_target": 0.25,
                "bench_appearance_probability": 0.507,
                "bench_expected_minutes": 22.15
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "key_pass": 0.3156,
                "expected_assists": 0.0161,
                "assist_rate": 0.0336,
                "assists": 0,
                "expected_goals": 0.0321,
                "goal_rate": 0.0571,
                "goals": 0,
                "shots_on_target": 0.1107,
                "total_shots": 0.3607,
                "rating": 6.6643,
                "minutes": 22.15,
                "total_pass": 8.4311,
                "accurate_pass": 7.0259,
                "duels_won": 1.4052,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_own_half_passes": 4.2156,
                "accurate_own_half_passes": 4.2156,
                "total_opp_half_passes": 4.2156,
                "accurate_opp_half_passes": 2.8104,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 9.8363,
                "possession_lost": 1.4052,
                "dispossessed": 0.0,
                "duels_lost": 0.0,
                "aerial_won": 0.0,
                "aerial_lost": 0.0,
                "interceptions": 0.0,
                "tackles_won": 1.4052,
                "tackles": 1.4052,
                "clearances": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 2.8104,
                "total_progression": 5.9184,
                "progressive_carries": 0.0,
                "shots_off_target": 0.25,
                "bench_appearance_probability": 0.507,
                "bench_expected_minutes": 22.15,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "scoreline_reset": true,
                "team_goals": 0
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.87 (squad xG sum 1.1744, xG scale 0.7400, xA scale 0.7968, team xA 0.56 = 0.65 x lambda)",
              "stats": {
                "key_pass": 0.3156,
                "expected_assists": 0.0065,
                "assist_rate": 0.0336,
                "assists": 0,
                "expected_goals": 0.012,
                "goal_rate": 0.0571,
                "goals": 0,
                "shots_on_target": 0.1107,
                "total_shots": 0.3607,
                "rating": 6.6643,
                "minutes": 22.15,
                "total_pass": 8.4311,
                "accurate_pass": 7.0259,
                "duels_won": 1.4052,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_own_half_passes": 4.2156,
                "accurate_own_half_passes": 4.2156,
                "total_opp_half_passes": 4.2156,
                "accurate_opp_half_passes": 2.8104,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 9.8363,
                "possession_lost": 1.4052,
                "dispossessed": 0.0,
                "duels_lost": 0.0,
                "aerial_won": 0.0,
                "aerial_lost": 0.0,
                "interceptions": 0.0,
                "tackles_won": 1.4052,
                "tackles": 1.4052,
                "clearances": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 2.8104,
                "total_progression": 5.9184,
                "progressive_carries": 0.0,
                "shots_off_target": 0.25,
                "bench_appearance_probability": 0.507,
                "bench_expected_minutes": 22.15,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 1.25
              },
              "params": {
                "team_lambda": 0.869,
                "squad_xg_sum": 1.1744,
                "squad_xa_sum": 0.7089,
                "team_expected_assists": 0.5648,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.74,
                "xa_scale": 0.7968,
                "opponent_lambda": 1.257,
                "scoreline_reset": true,
                "appearance_weight": 0.507
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0321,
                  "after": 0.012
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0161,
                  "after": 0.0065
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 73.0)",
              "stats": {
                "key_pass": 0.3156,
                "expected_assists": 0.0065,
                "assist_rate": 0.0336,
                "assists": 0,
                "expected_goals": 0.012,
                "goal_rate": 0.0571,
                "goals": 0,
                "shots_on_target": 0.1107,
                "total_shots": 0.3607,
                "rating": 6.6643,
                "minutes": 22.15,
                "total_pass": 8.4311,
                "accurate_pass": 7.0259,
                "duels_won": 1.4052,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_own_half_passes": 4.2156,
                "accurate_own_half_passes": 4.2156,
                "total_opp_half_passes": 4.2156,
                "accurate_opp_half_passes": 2.8104,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 9.8363,
                "possession_lost": 1.4052,
                "dispossessed": 0.0,
                "duels_lost": 0.0,
                "aerial_won": 0.0,
                "aerial_lost": 0.0,
                "interceptions": 0.0,
                "tackles_won": 1.4052,
                "tackles": 1.4052,
                "clearances": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 2.8104,
                "total_progression": 5.9184,
                "progressive_carries": 0.0,
                "shots_off_target": 0.25,
                "bench_appearance_probability": 0.507,
                "bench_expected_minutes": 22.15,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 1.25,
                "fifa_overall": 73.0
              },
              "params": {
                "match_squad_rank": 14,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3806,
                "fifa_rank": 3437.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 73.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "key_pass": 0.3156,
                "expected_assists": 0.0065,
                "assist_rate": 0.0336,
                "assists": 0,
                "expected_goals": 0.012,
                "goal_rate": 0.0571,
                "goals": 0,
                "shots_on_target": 0.1107,
                "total_shots": 0.3607,
                "rating": 6.6643,
                "minutes": 22.15,
                "total_pass": 8.4311,
                "accurate_pass": 7.0259,
                "duels_won": 1.4052,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_own_half_passes": 4.2156,
                "accurate_own_half_passes": 4.2156,
                "total_opp_half_passes": 4.2156,
                "accurate_opp_half_passes": 2.8104,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 9.8363,
                "possession_lost": 1.4052,
                "dispossessed": 0.0,
                "duels_lost": 0.0,
                "aerial_won": 0.0,
                "aerial_lost": 0.0,
                "interceptions": 0.0,
                "tackles_won": 1.4052,
                "tackles": 1.4052,
                "clearances": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 2.8104,
                "total_progression": 5.9184,
                "progressive_carries": 0.0,
                "shots_off_target": 0.25,
                "bench_appearance_probability": 0.507,
                "bench_expected_minutes": 22.15,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0119,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 1.25,
                "fifa_overall": 73.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0119,
                "goal_rate": 0.0571,
                "scorer_weight": 0.015,
                "squad_weight_total": 0.91,
                "weight_share": 0.0165,
                "finishing_factor": 1.25,
                "appearance_weight": 0.507,
                "weight_rank": 11,
                "eligible_players": 13
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "key_pass": 0.3156,
                "expected_assists": 0.0065,
                "assist_rate": 0.0336,
                "assists": 0,
                "expected_goals": 0.012,
                "goal_rate": 0.0571,
                "goals": 0,
                "shots_on_target": 0.1107,
                "total_shots": 0.3607,
                "rating": 6.6643,
                "minutes": 22.15,
                "total_pass": 8.4311,
                "accurate_pass": 7.0259,
                "duels_won": 1.4052,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_own_half_passes": 4.2156,
                "accurate_own_half_passes": 4.2156,
                "total_opp_half_passes": 4.2156,
                "accurate_opp_half_passes": 2.8104,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 9.8363,
                "possession_lost": 1.4052,
                "dispossessed": 0.0,
                "duels_lost": 0.0,
                "aerial_won": 0.0,
                "aerial_lost": 0.0,
                "interceptions": 0.0,
                "tackles_won": 1.4052,
                "tackles": 1.4052,
                "clearances": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 2.8104,
                "total_progression": 5.9184,
                "progressive_carries": 0.0,
                "shots_off_target": 0.25,
                "bench_appearance_probability": 0.507,
                "bench_expected_minutes": 22.15,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0119,
                "projected_assists": 0,
                "assist_probability": 0.0065,
                "finishing_factor": 1.25,
                "creation_factor": 1.25,
                "fifa_overall": 73.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0065,
                "assist_rate": 0.0336,
                "provider_weight": 0.0081,
                "squad_weight_total": 0.5067,
                "weight_share": 0.016,
                "creation_factor": 1.25,
                "appearance_weight": 0.507,
                "weight_rank": 11,
                "eligible_players": 13
              }
            }
          ]
        },
        "Izan Merino": {
          "player_id": 1493488,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 23,
          "height": 186,
          "market_value": 4800000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.018,
            "assist_rate": 0.0274,
            "assists": 0,
            "expected_goals": 0.0146,
            "goal_rate": 0.0318,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 0,
            "rating": 6.5371,
            "minutes": 22,
            "total_pass": 36,
            "accurate_pass": 33,
            "duels_won": 0,
            "total_long_balls": 4,
            "accurate_long_balls": 2,
            "total_own_half_passes": 21,
            "accurate_own_half_passes": 20,
            "total_opp_half_passes": 15,
            "accurate_opp_half_passes": 13,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 40,
            "possession_lost": 3.703,
            "dispossessed": 0.1482,
            "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": 1,
            "fouls_drawn": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 10,
            "total_progression": 29,
            "progressive_carries": 0,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.503,
            "bench_expected_minutes": 22.06,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.427,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "available_bench_not_projected_used",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 70.0
          },
          "latest_10_games": [
            {
              "match_id": 16421073,
              "match_date": "2026-10-18",
              "home_team": "Málaga CF",
              "away_team": "Real Sociedad",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 45,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0051,
                "total_shots": 0,
                "total_pass": 31,
                "accurate_pass": 27,
                "clearances": 1,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421062,
              "match_date": "2026-10-09",
              "home_team": "Málaga CF",
              "away_team": "Espanyol",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Málaga CF",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 16,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0069,
                "total_shots": 0,
                "total_pass": 14,
                "accurate_pass": 14,
                "clearances": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416338,
              "match_date": "2026-09-17",
              "home_team": "Málaga CF",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 61,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0005,
                "total_shots": 0,
                "total_pass": 21,
                "accurate_pass": 18,
                "clearances": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416347,
              "match_date": "2026-09-13",
              "home_team": "Celta Vigo",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 67,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0197,
                "total_shots": 0,
                "total_pass": 54,
                "accurate_pass": 52,
                "clearances": 1,
                "duels_won": 1,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416320,
              "match_date": "2026-09-06",
              "home_team": "Málaga CF",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Málaga CF",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 31,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0122,
                "total_shots": 0,
                "total_pass": 20,
                "accurate_pass": 20,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416312,
              "match_date": "2026-08-30",
              "home_team": "Real Madrid",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 87,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0277,
                "total_shots": 0,
                "total_pass": 54,
                "accurate_pass": 48,
                "key_pass": 2,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "duels_won": 1,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416307,
              "match_date": "2026-08-24",
              "home_team": "Málaga CF",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 85,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0472,
                "expected_assists": 0.0427,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 71,
                "accurate_pass": 68,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 1,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421055,
              "match_date": "2026-08-19",
              "home_team": "Atlético Madrid",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0109,
                "total_shots": 0,
                "total_pass": 47,
                "accurate_pass": 43,
                "tackles": 1,
                "interceptions": 2,
                "clearances": 1,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 5154,
            "combined_rank_score": 3350.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 784.0,
            "sofascore_rating": 6.6333,
            "sofascore_appearances": 3.0,
            "fifa_rank": 5916.0,
            "fifa_overall": 70.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 18,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.5371,
            "source_file": "data/player_rankings.csv",
            "player_name": "Izan Merino",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Jean-Philippe Krasso",
                  "ranking": 5149
                },
                {
                  "player_name": "Abdallah Sima",
                  "ranking": 5150
                },
                {
                  "player_name": "Bryan Okoh",
                  "ranking": 5151
                },
                {
                  "player_name": "Lamine Sy",
                  "ranking": 5152
                },
                {
                  "player_name": "Santiago Hidalgo",
                  "ranking": 5153
                }
              ],
              "lower": [
                {
                  "player_name": "Louis Mouton",
                  "ranking": 5155
                },
                {
                  "player_name": "Yassin Belkhdim",
                  "ranking": 5156
                },
                {
                  "player_name": "Erik Janža",
                  "ranking": 5157
                },
                {
                  "player_name": "Fernando Cornejo",
                  "ranking": 5158
                },
                {
                  "player_name": "Jacques Ekomié",
                  "ranking": 5159
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.75,
          "history_matches": 8,
          "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",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "rating",
              "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",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 8,
            "data_confidence": 0.75,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 22.060466051098082,
            "bench_appearance_prob": 0.5027484568680947,
            "market_value_adjustment": 0.9948,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost M_service (8 historical appearances) to 22.1 expected mins (appearance prob 0.50)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 0.2895,
                "expected_assists": 0.0172,
                "assists": 0.0261,
                "assist_rate": 0.0261,
                "expected_goals": 0.014,
                "goals": 0.0303,
                "goal_rate": 0.0303,
                "shots_on_target": 0.0582,
                "total_shots": 0.2075,
                "rating": 6.5371,
                "minutes": 20.95,
                "total_pass": 34.5316,
                "accurate_pass": 31.9601,
                "duels_won": 0.4696,
                "total_long_balls": 3.3841,
                "accurate_long_balls": 2.1748,
                "total_own_half_passes": 20.3753,
                "accurate_own_half_passes": 19.5495,
                "total_opp_half_passes": 14.1563,
                "accurate_opp_half_passes": 12.4107,
                "crosses_total": 0.1753,
                "crosses_accurate": 0.0,
                "touches": 38.0192,
                "possession_lost": 3.535,
                "dispossessed": 0.149,
                "duels_lost": 1.2868,
                "aerial_won": 0.0,
                "aerial_lost": 0.0778,
                "interceptions": 0.2237,
                "tackles_won": 0.2769,
                "tackles": 0.343,
                "clearances": 1.1963,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "challenges_lost": 0.4576,
                "fouls": 0.6024,
                "fouls_drawn": 0.1266,
                "blocks": 0.0661,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 9.4819,
                "total_progression": 27.8706,
                "progressive_carries": 0.2667,
                "shots_off_target": 0.1493
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 7,
                  "trained_at": "2026-10-23T10:05:23.571433+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 903,
                    "rows": 24475
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Real Sociedad",
                    "minutes": 45.0,
                    "is_starting": true,
                    "weight": 0.2062,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-10-09",
                    "opponent": "Espanyol",
                    "minutes": 16.0,
                    "is_starting": false,
                    "weight": 0.1753,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Villarreal",
                    "minutes": 61.0,
                    "is_starting": true,
                    "weight": 0.149,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Celta Vigo",
                    "minutes": 67.0,
                    "is_starting": true,
                    "weight": 0.1266,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Levante UD",
                    "minutes": 31.0,
                    "is_starting": false,
                    "weight": 0.1076,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Real Madrid",
                    "minutes": 87.0,
                    "is_starting": true,
                    "weight": 0.0915,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-24",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 85.0,
                    "is_starting": true,
                    "weight": 0.0778,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-08-19",
                    "opponent": "Atlético Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0661,
                    "rating": 6.6
                  }
                ],
                "feature_row": {
                  "history_matches": 8.0,
                  "is_starting_11": 0.0,
                  "creative_index": 0.1119,
                  "totalShots": 0.0778,
                  "expectedGoals": 0.0037,
                  "expectedAssists": 0.0127,
                  "onTargetScoringAttempt": 0.0
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.28950756788253784,
                    "model_output": 0.2895,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1647
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1377
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0663
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0524
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0316
                      }
                    ],
                    "decomposition": {
                      "base": 0.8945,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.3854
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0649
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0439
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0379
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": -0.0208
                        }
                      ],
                      "others": -0.0521,
                      "total": 0.2895,
                      "log_link": true,
                      "margin_base": -0.111507,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.563561
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.136268
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.103971
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.099414
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": -0.058979
                        }
                      ],
                      "others_margin": -0.165875
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.017173737287521362,
                    "model_output": 0.0172,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1545
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1048
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.1021
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0476
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0472
                      }
                    ],
                    "decomposition": {
                      "base": 0.0859,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0374
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0094
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0074
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0055
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0021
                        }
                      ],
                      "others": -0.0069,
                      "total": 0.0172,
                      "log_link": true,
                      "margin_base": -2.454719,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.57111
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.216247
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.209269
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.188683
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.082993
                        }
                      ],
                      "others_margin": -0.341352
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.02612512931227684,
                    "model_output": 0.0261,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.0619
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0395
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0343
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0335
                      }
                    ],
                    "decomposition": {
                      "base": 0.0874,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.024
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0116
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0094
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0062
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.004
                        }
                      ],
                      "others": -0.0061,
                      "total": 0.0261,
                      "log_link": true,
                      "margin_base": -2.437263,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.321074
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.202724
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.200236
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.159417
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.117633
                        }
                      ],
                      "others_margin": -0.20651
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.013967730104923248,
                    "model_output": 0.014,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedGoals",
                        "importance": 0.134
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.074
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0705
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.039
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0273
                      }
                    ],
                    "decomposition": {
                      "base": 0.094,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.041
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0184
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.009
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0035
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0014
                        }
                      ],
                      "others": -0.0067,
                      "total": 0.014,
                      "log_link": true,
                      "margin_base": -2.364919,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.574191
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.427355
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.303668
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.147976
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.067773
                        }
                      ],
                      "others_margin": -0.385123
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.030308591201901436,
                    "model_output": 0.0303,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0974
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0527
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0513
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0365
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.03
                      }
                    ],
                    "decomposition": {
                      "base": 0.0993,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.036
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0119
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0078
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.004
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0032
                        }
                      ],
                      "others": -0.0061,
                      "total": 0.0303,
                      "log_link": true,
                      "margin_base": -2.309444,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.449988
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.208927
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.16409
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.097012
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.083873
                        }
                      ],
                      "others_margin": -0.18299
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.0581803135573864,
                    "model_output": 0.0582,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1106
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0885
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0762
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0292
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0279
                      }
                    ],
                    "decomposition": {
                      "base": 0.326,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1473
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0558
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0244
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0165
                        },
                        {
                          "name": "dispossessed",
                          "contribution": -0.0034
                        }
                      ],
                      "others": -0.0204,
                      "total": 0.0582,
                      "log_link": true,
                      "margin_base": -1.120773,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.601234
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.374366
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.22114
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.183704
                        },
                        {
                          "name": "dispossessed",
                          "margin": -0.042424
                        }
                      ],
                      "others_margin": -0.300564
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.207471564412117,
                    "model_output": 0.2075,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1261
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1167
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0633
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0419
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.9969,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.3216
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.234
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0444
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0352
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0271
                        }
                      ],
                      "others": -0.1271,
                      "total": 0.2075,
                      "log_link": false,
                      "margin_base": 0.996896,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.321557
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.234024
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.04442
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.035158
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.027092
                        }
                      ],
                      "others_margin": -0.127174
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.537076950073242,
                    "model_output": 6.5371,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "rating",
                        "importance": 0.0947
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0836
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0491
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0438
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.036
                      }
                    ],
                    "decomposition": {
                      "base": 6.8561,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0841
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0628
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0503
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0453
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0243
                        }
                      ],
                      "others": -0.0522,
                      "total": 6.5371,
                      "log_link": false,
                      "margin_base": 6.856052,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.084053
                        },
                        {
                          "name": "totalPass",
                          "margin": -0.062788
                        },
                        {
                          "name": "accuratePass",
                          "margin": -0.050286
                        },
                        {
                          "name": "rating",
                          "margin": -0.045311
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.024267
                        }
                      ],
                      "others_margin": -0.05227
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "substitute",
                  "history_matches": 8,
                  "role_matches": 2,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "all_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9948, quality 0.460)",
              "stats": {
                "key_pass": 0.288,
                "expected_assists": 0.0171,
                "assists": 0.026,
                "assist_rate": 0.026,
                "expected_goals": 0.0139,
                "goals": 0.0302,
                "goal_rate": 0.0302,
                "shots_on_target": 0.0579,
                "total_shots": 0.2064,
                "rating": 6.5371,
                "minutes": 20.95,
                "total_pass": 34.352,
                "accurate_pass": 31.7939,
                "duels_won": 0.4672,
                "total_long_balls": 3.3665,
                "accurate_long_balls": 2.1635,
                "total_own_half_passes": 20.2693,
                "accurate_own_half_passes": 19.4478,
                "total_opp_half_passes": 14.0827,
                "accurate_opp_half_passes": 12.3462,
                "crosses_total": 0.1744,
                "crosses_accurate": 0.0,
                "touches": 37.8215,
                "possession_lost": 3.5166,
                "dispossessed": 0.1482,
                "duels_lost": 1.2801,
                "aerial_won": 0.0,
                "aerial_lost": 0.0774,
                "interceptions": 0.2225,
                "tackles_won": 0.2755,
                "tackles": 0.3412,
                "clearances": 1.1901,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "challenges_lost": 0.4552,
                "fouls": 0.5993,
                "fouls_drawn": 0.1259,
                "blocks": 0.0658,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 9.4326,
                "total_progression": 27.7257,
                "progressive_carries": 0.2653,
                "shots_off_target": 0.1485
              },
              "params": {
                "market_value_eur": 4800000,
                "quality_factor": 0.4597,
                "boost_factor": 0.9948,
                "reference_quality": 0.505,
                "history_matches": 8,
                "history_shrink": 0.3846,
                "market_value_known": true
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 20.9 to 22.1 expected minutes (appearance prob 0.50)",
              "stats": {
                "key_pass": 0.3033,
                "expected_assists": 0.018,
                "assists": 0.0274,
                "assist_rate": 0.0274,
                "expected_goals": 0.0146,
                "goals": 0.0318,
                "goal_rate": 0.0318,
                "shots_on_target": 0.061,
                "total_shots": 0.2174,
                "rating": 6.5371,
                "minutes": 22.06,
                "total_pass": 36.1728,
                "accurate_pass": 33.4792,
                "duels_won": 0.492,
                "total_long_balls": 3.5449,
                "accurate_long_balls": 2.2782,
                "total_own_half_passes": 21.3437,
                "accurate_own_half_passes": 20.4786,
                "total_opp_half_passes": 14.8292,
                "accurate_opp_half_passes": 13.0006,
                "crosses_total": 0.1836,
                "crosses_accurate": 0.0,
                "touches": 39.8262,
                "possession_lost": 3.703,
                "dispossessed": 0.1482,
                "duels_lost": 1.348,
                "aerial_won": 0.0,
                "aerial_lost": 0.0774,
                "interceptions": 0.2343,
                "tackles_won": 0.2901,
                "tackles": 0.3593,
                "clearances": 1.2532,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "challenges_lost": 0.4552,
                "fouls": 0.6311,
                "fouls_drawn": 0.1326,
                "blocks": 0.0693,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 9.9326,
                "total_progression": 29.1953,
                "progressive_carries": 0.2794,
                "shots_off_target": 0.1564,
                "bench_appearance_probability": 0.503,
                "bench_expected_minutes": 22.06
              },
              "params": {
                "expected_minutes": 22.06,
                "projection_minutes": 20.95,
                "minutes_scale": 1.053,
                "appearance_probability": 0.503
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0.3033,
                "expected_assists": 0.018,
                "assists": 0.0274,
                "assist_rate": 0.0274,
                "expected_goals": 0.0146,
                "goals": 0.0318,
                "goal_rate": 0.0318,
                "shots_on_target": 0.061,
                "total_shots": 0.2174,
                "rating": 6.5371,
                "minutes": 22.06,
                "total_pass": 36.1728,
                "accurate_pass": 33.4792,
                "duels_won": 0.492,
                "total_long_balls": 3.5449,
                "accurate_long_balls": 2.2782,
                "total_own_half_passes": 21.3437,
                "accurate_own_half_passes": 20.4786,
                "total_opp_half_passes": 14.8292,
                "accurate_opp_half_passes": 13.0006,
                "crosses_total": 0.1836,
                "crosses_accurate": 0.0,
                "touches": 39.8262,
                "possession_lost": 3.703,
                "dispossessed": 0.1482,
                "duels_lost": 1.348,
                "aerial_won": 0.0,
                "aerial_lost": 0.0774,
                "interceptions": 0.2343,
                "tackles_won": 0.2901,
                "tackles": 0.3593,
                "clearances": 1.2532,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "challenges_lost": 0.4552,
                "fouls": 0.6311,
                "fouls_drawn": 0.1326,
                "blocks": 0.0693,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 9.9326,
                "total_progression": 29.1953,
                "progressive_carries": 0.2794,
                "shots_off_target": 0.1564,
                "bench_appearance_probability": 0.503,
                "bench_expected_minutes": 22.06
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "not_projected_to_play",
              "description": "Not among the projected substitutes: no share of the team's goals or assists",
              "stats": {
                "key_pass": 0.3033,
                "expected_assists": 0.018,
                "assist_rate": 0.0274,
                "assists": 0,
                "expected_goals": 0.0146,
                "goal_rate": 0.0318,
                "goals": 0,
                "shots_on_target": 0.061,
                "total_shots": 0.2174,
                "rating": 6.5371,
                "minutes": 22.06,
                "total_pass": 36.1728,
                "accurate_pass": 33.4792,
                "duels_won": 0.492,
                "total_long_balls": 3.5449,
                "accurate_long_balls": 2.2782,
                "total_own_half_passes": 21.3437,
                "accurate_own_half_passes": 20.4786,
                "total_opp_half_passes": 14.8292,
                "accurate_opp_half_passes": 13.0006,
                "crosses_total": 0.1836,
                "crosses_accurate": 0.0,
                "touches": 39.8262,
                "possession_lost": 3.703,
                "dispossessed": 0.1482,
                "duels_lost": 1.348,
                "aerial_won": 0.0,
                "aerial_lost": 0.0774,
                "interceptions": 0.2343,
                "tackles_won": 0.2901,
                "tackles": 0.3593,
                "clearances": 1.2532,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "challenges_lost": 0.4552,
                "fouls": 0.6311,
                "fouls_drawn": 0.1326,
                "blocks": 0.0693,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 9.9326,
                "total_progression": 29.1953,
                "progressive_carries": 0.2794,
                "shots_off_target": 0.1564,
                "bench_appearance_probability": 0.503,
                "bench_expected_minutes": 22.06,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "available_bench_not_projected_used",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "appearance_probability": 0.503,
                "projected_substitutes": 3,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 18 by projected rating, fifa_overall 70.0)",
              "stats": {
                "key_pass": 0.3033,
                "expected_assists": 0.018,
                "assist_rate": 0.0274,
                "assists": 0,
                "expected_goals": 0.0146,
                "goal_rate": 0.0318,
                "goals": 0,
                "shots_on_target": 0.061,
                "total_shots": 0.2174,
                "rating": 6.5371,
                "minutes": 22.06,
                "total_pass": 36.1728,
                "accurate_pass": 33.4792,
                "duels_won": 0.492,
                "total_long_balls": 3.5449,
                "accurate_long_balls": 2.2782,
                "total_own_half_passes": 21.3437,
                "accurate_own_half_passes": 20.4786,
                "total_opp_half_passes": 14.8292,
                "accurate_opp_half_passes": 13.0006,
                "crosses_total": 0.1836,
                "crosses_accurate": 0.0,
                "touches": 39.8262,
                "possession_lost": 3.703,
                "dispossessed": 0.1482,
                "duels_lost": 1.348,
                "aerial_won": 0.0,
                "aerial_lost": 0.0774,
                "interceptions": 0.2343,
                "tackles_won": 0.2901,
                "tackles": 0.3593,
                "clearances": 1.2532,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "challenges_lost": 0.4552,
                "fouls": 0.6311,
                "fouls_drawn": 0.1326,
                "blocks": 0.0693,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 9.9326,
                "total_progression": 29.1953,
                "progressive_carries": 0.2794,
                "shots_off_target": 0.1564,
                "bench_appearance_probability": 0.503,
                "bench_expected_minutes": 22.06,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "available_bench_not_projected_used",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 70.0
              },
              "params": {
                "match_squad_rank": 18,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 5154,
                "fifa_rank": 5916.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 70.0
              }
            }
          ]
        },
        "Joaquín Muñoz": {
          "player_id": 904964,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 11,
          "height": 172,
          "market_value": 1900000,
          "stats": {
            "expected_goals": 0.0263,
            "goal_rate": 0.0703,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "expected_assists": 0.023,
            "key_pass": 0,
            "rating": 6.665,
            "minutes": 25,
            "total_pass": 9,
            "accurate_pass": 6,
            "duels_won": 1,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 8,
            "accurate_opp_half_passes": 5,
            "crosses_total": 1,
            "crosses_accurate": 0,
            "touches": 16,
            "possession_lost": 5.8465,
            "dispossessed": 0.2789,
            "duels_lost": 2,
            "aerial_lost": 0,
            "total_contest": 2,
            "won_contest": 1,
            "ball_recovery": 1,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assist_rate": 0.0,
            "assists": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.008,
            "offsides": 0,
            "ball_carries": 6,
            "total_progression": 43,
            "progressive_carries": 2,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.559,
            "bench_expected_minutes": 25.29,
            "projected_substitution_order": 2,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.427,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0257,
            "projected_assists": 0,
            "assist_probability": 0.0225,
            "finishing_factor": 1.0599,
            "creation_factor": 0.8,
            "fifa_overall": 71.0
          },
          "latest_10_games": [
            {
              "match_id": 16421073,
              "match_date": "2026-10-18",
              "home_team": "Málaga CF",
              "away_team": "Real Sociedad",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Málaga CF",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 22,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0963,
                "expected_assists": 0.3045,
                "total_shots": 2,
                "shots_on_target": 1,
                "total_pass": 8,
                "accurate_pass": 5,
                "key_pass": 2,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421062,
              "match_date": "2026-10-09",
              "home_team": "Málaga CF",
              "away_team": "Espanyol",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 62,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0888,
                "total_shots": 0,
                "total_pass": 13,
                "accurate_pass": 10,
                "key_pass": 1,
                "interceptions": 1,
                "duels_won": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416303,
              "match_date": "2026-09-20",
              "home_team": "Getafe",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Getafe",
              "stats": {
                "minutes": 67,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0607,
                "expected_assists": 0.0834,
                "total_shots": 1,
                "total_pass": 12,
                "accurate_pass": 6,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416338,
              "match_date": "2026-09-17",
              "home_team": "Málaga CF",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Málaga CF",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 29,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0174,
                "expected_assists": 0.0067,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 8,
                "accurate_pass": 5,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416347,
              "match_date": "2026-09-13",
              "home_team": "Celta Vigo",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 61,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0269,
                "expected_assists": 0.0167,
                "total_shots": 1,
                "total_pass": 11,
                "accurate_pass": 11,
                "tackles": 1,
                "interceptions": 1,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416320,
              "match_date": "2026-09-06",
              "home_team": "Málaga CF",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Málaga CF",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 31,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0598,
                "total_shots": 0,
                "total_pass": 11,
                "accurate_pass": 9,
                "key_pass": 2,
                "duels_won": 2,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416312,
              "match_date": "2026-08-30",
              "home_team": "Real Madrid",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 61,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0216,
                "expected_assists": 0.0675,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 17,
                "accurate_pass": 16,
                "key_pass": 1,
                "clearances": 1,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416307,
              "match_date": "2026-08-24",
              "home_team": "Málaga CF",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 73,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.029,
                "expected_assists": 0.0199,
                "total_shots": 1,
                "total_pass": 19,
                "accurate_pass": 17,
                "tackles": 2,
                "tackles_won": 2,
                "duels_won": 6,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421055,
              "match_date": "2026-08-19",
              "home_team": "Atlético Madrid",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 67,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0255,
                "total_shots": 0,
                "total_pass": 23,
                "accurate_pass": 18,
                "tackles": 1,
                "duels_won": 7,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 4788,
            "combined_rank_score": 2863.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 698.0,
            "sofascore_rating": 6.7,
            "sofascore_appearances": 1.0,
            "fifa_rank": 5029.0,
            "fifa_overall": 71.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 13,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.665,
            "source_file": "data/player_rankings.csv",
            "player_name": "Joaquín Muñoz",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Jorge Ruvalcaba",
                  "ranking": 4783
                },
                {
                  "player_name": "Luca Langoni",
                  "ranking": 4784
                },
                {
                  "player_name": "John Victor",
                  "ranking": 4785
                },
                {
                  "player_name": "Diego Luna",
                  "ranking": 4786
                },
                {
                  "player_name": "Rafael Navarro",
                  "ranking": 4787
                }
              ],
              "lower": [
                {
                  "player_name": "Odin Luraas Bjørtuft",
                  "ranking": 4789
                },
                {
                  "player_name": "Harry Milne",
                  "ranking": 4790
                },
                {
                  "player_name": "Auston Trusty",
                  "ranking": 4791
                },
                {
                  "player_name": "Cameron Devlin",
                  "ranking": 4792
                },
                {
                  "player_name": "Reo Hatate",
                  "ranking": 4793
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.75,
          "history_matches": 9,
          "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",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "expectedGoals",
              "goals",
              "rating",
              "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",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 9,
            "data_confidence": 0.75,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 25.292222187561247,
            "bench_appearance_prob": 0.5587373721618749,
            "market_value_adjustment": 0.9928,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost F_service (9 historical appearances) to 25.3 expected mins (appearance prob 0.56)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.0609,
                "goals": 0.0675,
                "goal_rate": 0.0675,
                "shots_on_target": 0.2468,
                "total_shots": 0.6198,
                "expected_assists": 0.0496,
                "key_pass": 0.4576,
                "rating": 6.665,
                "minutes": 24.1,
                "total_pass": 8.8426,
                "accurate_pass": 6.1234,
                "duels_won": 1.2809,
                "total_long_balls": 0.6113,
                "accurate_long_balls": 0.2809,
                "total_opp_half_passes": 7.3392,
                "accurate_opp_half_passes": 4.9505,
                "crosses_total": 0.6113,
                "crosses_accurate": 0.0,
                "touches": 15.6783,
                "possession_lost": 5.6113,
                "dispossessed": 0.2809,
                "duels_lost": 2.2225,
                "aerial_lost": 0.0,
                "total_contest": 2.3304,
                "won_contest": 1.0,
                "ball_recovery": 1.2313,
                "challenges_lost": 0.3304,
                "fouls": 0.2809,
                "fouls_drawn": 0.2809,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.0,
                "clearances": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0186,
                "offsides": 0.0,
                "ball_carries": 6.0,
                "total_progression": 41.4616,
                "progressive_carries": 2.1079,
                "shots_off_target": 0.373
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 6,
                  "trained_at": "2026-10-23T10:05:54.625928+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 611,
                    "rows": 16533
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Real Sociedad",
                    "minutes": 22.0,
                    "is_starting": false,
                    "weight": 0.1952,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-10-09",
                    "opponent": "Espanyol",
                    "minutes": 62.0,
                    "is_starting": true,
                    "weight": 0.1659,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Getafe",
                    "minutes": 67.0,
                    "is_starting": true,
                    "weight": 0.141,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Villarreal",
                    "minutes": 29.0,
                    "is_starting": false,
                    "weight": 0.1199,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Celta Vigo",
                    "minutes": 61.0,
                    "is_starting": true,
                    "weight": 0.1019,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Levante UD",
                    "minutes": 31.0,
                    "is_starting": false,
                    "weight": 0.0866,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Real Madrid",
                    "minutes": 61.0,
                    "is_starting": true,
                    "weight": 0.0736,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-24",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 73.0,
                    "is_starting": true,
                    "weight": 0.0626,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-19",
                    "opponent": "Atlético Madrid",
                    "minutes": 67.0,
                    "is_starting": true,
                    "weight": 0.0532,
                    "rating": 6.7
                  }
                ],
                "feature_row": {
                  "history_matches": 9.0,
                  "is_starting_11": 0.0,
                  "expectedGoals": 0.0356,
                  "totalOppositionHalfPasses": 10.135,
                  "accurateOppositionHalfPasses": 7.7254,
                  "accuratePass": 9.181,
                  "totalShots": 0.8895
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.060894548892974854,
                    "model_output": 0.0609,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2858
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0881
                      },
                      {
                        "name": "goals",
                        "importance": 0.0357
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0272
                      },
                      {
                        "name": "bigChanceMissed",
                        "importance": 0.0231
                      }
                    ],
                    "decomposition": {
                      "base": 0.1979,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0847
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.02
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0083
                        },
                        {
                          "name": "goals",
                          "contribution": -0.0074
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": -0.0044
                        }
                      ],
                      "others": -0.0122,
                      "total": 0.0609,
                      "log_link": true,
                      "margin_base": -1.619934,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.558856
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.194167
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": -0.093852
                        },
                        {
                          "name": "goals",
                          "margin": -0.090715
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": -0.058258
                        }
                      ],
                      "others_margin": -0.182829
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.06746992468833923,
                    "model_output": 0.0675,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1497
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0696
                      },
                      {
                        "name": "goals",
                        "importance": 0.0577
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0307
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0286
                      }
                    ],
                    "decomposition": {
                      "base": 0.2023,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.077
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0175
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0088
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": -0.0078
                        },
                        {
                          "name": "goals",
                          "contribution": -0.0052
                        }
                      ],
                      "others": -0.0185,
                      "total": 0.0675,
                      "log_link": true,
                      "margin_base": -1.597983,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.478733
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.150177
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": -0.085416
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": -0.081919
                        },
                        {
                          "name": "goals",
                          "margin": -0.058652
                        }
                      ],
                      "others_margin": -0.243194
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.24675241112709045,
                    "model_output": 0.2468,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2171
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0661
                      },
                      {
                        "name": "goals",
                        "importance": 0.0553
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0475
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0308
                      }
                    ],
                    "decomposition": {
                      "base": 0.5362,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1954
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0314
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.019
                        },
                        {
                          "name": "goals",
                          "contribution": -0.0142
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": 0.01
                        }
                      ],
                      "others": -0.0394,
                      "total": 0.2468,
                      "log_link": true,
                      "margin_base": -0.623262,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.453089
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.096804
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.063272
                        },
                        {
                          "name": "goals",
                          "margin": -0.049981
                        },
                        {
                          "name": "ballRecovery",
                          "margin": 0.035555
                        }
                      ],
                      "others_margin": -0.148517
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.6197428107261658,
                    "model_output": 0.6197,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2864
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0656
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.051
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.031
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0298
                      }
                    ],
                    "decomposition": {
                      "base": 1.3807,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.4669
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.1317
                        },
                        {
                          "name": "goals",
                          "contribution": -0.0509
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0233
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.023
                        }
                      ],
                      "others": -0.1118,
                      "total": 0.6197,
                      "log_link": false,
                      "margin_base": 1.380749,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.466854
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.131696
                        },
                        {
                          "name": "goals",
                          "margin": -0.050928
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.023324
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.022982
                        }
                      ],
                      "others_margin": -0.11187
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.04960735887289047,
                    "model_output": 0.0496,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.1157
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0645
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0607
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0558
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 0.0644,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.021
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.0041
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0039
                        },
                        {
                          "name": "aerialWon",
                          "contribution": 0.0022
                        },
                        {
                          "name": "rating",
                          "contribution": -0.002
                        }
                      ],
                      "others": 0.0062,
                      "total": 0.0496,
                      "log_link": true,
                      "margin_base": -2.741965,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.393262
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.098328
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.095106
                        },
                        {
                          "name": "aerialWon",
                          "margin": 0.048454
                        },
                        {
                          "name": "rating",
                          "margin": -0.045773
                        }
                      ],
                      "others_margin": 0.132151
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.4576026201248169,
                    "model_output": 0.4576,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1481
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1244
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.1112
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.052
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0395
                      }
                    ],
                    "decomposition": {
                      "base": 0.6805,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2448
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0267
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.022
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0202
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0128
                        }
                      ],
                      "others": 0.0246,
                      "total": 0.4576,
                      "log_link": true,
                      "margin_base": -0.384987,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.445978
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.059529
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.048821
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.046884
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": 0.029915
                        }
                      ],
                      "others_margin": 0.055472
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.664977550506592,
                    "model_output": 6.665,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.059
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0483
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0421
                      },
                      {
                        "name": "rating",
                        "importance": 0.0418
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0415
                      }
                    ],
                    "decomposition": {
                      "base": 6.7683,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.069
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0218
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0217
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": 0.0114
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0107
                        }
                      ],
                      "others": -0.0349,
                      "total": 6.665,
                      "log_link": false,
                      "margin_base": 6.768281,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.068996
                        },
                        {
                          "name": "rating",
                          "margin": -0.02183
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.021741
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": 0.011398
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.010678
                        }
                      ],
                      "others_margin": -0.034938
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "substitute",
                  "history_matches": 9,
                  "role_matches": 3,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "role_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9928, quality 0.437)",
              "stats": {
                "expected_goals": 0.0605,
                "goals": 0.067,
                "goal_rate": 0.067,
                "shots_on_target": 0.245,
                "total_shots": 0.6153,
                "expected_assists": 0.0493,
                "key_pass": 0.4543,
                "rating": 6.665,
                "minutes": 24.1,
                "total_pass": 8.7789,
                "accurate_pass": 6.0793,
                "duels_won": 1.2717,
                "total_long_balls": 0.6069,
                "accurate_long_balls": 0.2789,
                "total_opp_half_passes": 7.2864,
                "accurate_opp_half_passes": 4.9149,
                "crosses_total": 0.6069,
                "crosses_accurate": 0.0,
                "touches": 15.5654,
                "possession_lost": 5.5709,
                "dispossessed": 0.2789,
                "duels_lost": 2.2065,
                "aerial_lost": 0.0,
                "total_contest": 2.3136,
                "won_contest": 0.9928,
                "ball_recovery": 1.2224,
                "challenges_lost": 0.328,
                "fouls": 0.2789,
                "fouls_drawn": 0.2789,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.0,
                "clearances": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0185,
                "offsides": 0.0,
                "ball_carries": 5.9568,
                "total_progression": 41.1631,
                "progressive_carries": 2.0927,
                "shots_off_target": 0.3703
              },
              "params": {
                "market_value_eur": 1900000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9928,
                "reference_quality": 0.505,
                "history_matches": 9,
                "history_shrink": 0.3571,
                "market_value_known": true
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 24.1 to 25.3 expected minutes (appearance prob 0.56)",
              "stats": {
                "expected_goals": 0.0635,
                "goals": 0.0703,
                "goal_rate": 0.0703,
                "shots_on_target": 0.2571,
                "total_shots": 0.6457,
                "expected_assists": 0.0517,
                "key_pass": 0.4768,
                "rating": 6.665,
                "minutes": 25.29,
                "total_pass": 9.2132,
                "accurate_pass": 6.38,
                "duels_won": 1.3346,
                "total_long_balls": 0.6369,
                "accurate_long_balls": 0.2927,
                "total_opp_half_passes": 7.6469,
                "accurate_opp_half_passes": 5.158,
                "crosses_total": 0.6369,
                "crosses_accurate": 0.0,
                "touches": 16.3354,
                "possession_lost": 5.8465,
                "dispossessed": 0.2789,
                "duels_lost": 2.3157,
                "aerial_lost": 0.0,
                "total_contest": 2.4281,
                "won_contest": 1.0419,
                "ball_recovery": 1.2829,
                "challenges_lost": 0.328,
                "fouls": 0.2927,
                "fouls_drawn": 0.2927,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.0,
                "clearances": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0194,
                "offsides": 0.0,
                "ball_carries": 6.2515,
                "total_progression": 43.1994,
                "progressive_carries": 2.1962,
                "shots_off_target": 0.3886,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29
              },
              "params": {
                "expected_minutes": 25.29,
                "projection_minutes": 24.1,
                "minutes_scale": 1.0495,
                "appearance_probability": 0.559
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0635,
                "goals": 0.0703,
                "goal_rate": 0.0703,
                "shots_on_target": 0.2571,
                "total_shots": 0.6457,
                "expected_assists": 0.0517,
                "key_pass": 0.4768,
                "rating": 6.665,
                "minutes": 25.29,
                "total_pass": 9.2132,
                "accurate_pass": 6.38,
                "duels_won": 1.3346,
                "total_long_balls": 0.6369,
                "accurate_long_balls": 0.2927,
                "total_opp_half_passes": 7.6469,
                "accurate_opp_half_passes": 5.158,
                "crosses_total": 0.6369,
                "crosses_accurate": 0.0,
                "touches": 16.3354,
                "possession_lost": 5.8465,
                "dispossessed": 0.2789,
                "duels_lost": 2.3157,
                "aerial_lost": 0.0,
                "total_contest": 2.4281,
                "won_contest": 1.0419,
                "ball_recovery": 1.2829,
                "challenges_lost": 0.328,
                "fouls": 0.2927,
                "fouls_drawn": 0.2927,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.0,
                "clearances": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0194,
                "offsides": 0.0,
                "ball_carries": 6.2515,
                "total_progression": 43.1994,
                "progressive_carries": 2.1962,
                "shots_off_target": 0.3886,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "expected_goals": 0.0635,
                "goal_rate": 0.0703,
                "goals": 0,
                "shots_on_target": 0.2571,
                "total_shots": 0.6457,
                "expected_assists": 0.0517,
                "key_pass": 0.4768,
                "rating": 6.665,
                "minutes": 25.29,
                "total_pass": 9.2132,
                "accurate_pass": 6.38,
                "duels_won": 1.3346,
                "total_long_balls": 0.6369,
                "accurate_long_balls": 0.2927,
                "total_opp_half_passes": 7.6469,
                "accurate_opp_half_passes": 5.158,
                "crosses_total": 0.6369,
                "crosses_accurate": 0.0,
                "touches": 16.3354,
                "possession_lost": 5.8465,
                "dispossessed": 0.2789,
                "duels_lost": 2.3157,
                "aerial_lost": 0.0,
                "total_contest": 2.4281,
                "won_contest": 1.0419,
                "ball_recovery": 1.2829,
                "challenges_lost": 0.328,
                "fouls": 0.2927,
                "fouls_drawn": 0.2927,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.0,
                "clearances": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0194,
                "offsides": 0.0,
                "ball_carries": 6.2515,
                "total_progression": 43.1994,
                "progressive_carries": 2.1962,
                "shots_off_target": 0.3886,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "scoreline_reset": true,
                "team_goals": 0
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.87 (squad xG sum 1.1744, xG scale 0.7400, xA scale 0.7968, team xA 0.56 = 0.65 x lambda)",
              "stats": {
                "expected_goals": 0.0263,
                "goal_rate": 0.0703,
                "goals": 0,
                "shots_on_target": 0.2571,
                "total_shots": 0.6457,
                "expected_assists": 0.023,
                "key_pass": 0.4768,
                "rating": 6.665,
                "minutes": 25.29,
                "total_pass": 9.2132,
                "accurate_pass": 6.38,
                "duels_won": 1.3346,
                "total_long_balls": 0.6369,
                "accurate_long_balls": 0.2927,
                "total_opp_half_passes": 7.6469,
                "accurate_opp_half_passes": 5.158,
                "crosses_total": 0.6369,
                "crosses_accurate": 0.0,
                "touches": 16.3354,
                "possession_lost": 5.8465,
                "dispossessed": 0.2789,
                "duels_lost": 2.3157,
                "aerial_lost": 0.0,
                "total_contest": 2.4281,
                "won_contest": 1.0419,
                "ball_recovery": 1.2829,
                "challenges_lost": 0.328,
                "fouls": 0.2927,
                "fouls_drawn": 0.2927,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.0,
                "clearances": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.008,
                "offsides": 0.0,
                "ball_carries": 6.2515,
                "total_progression": 43.1994,
                "progressive_carries": 2.1962,
                "shots_off_target": 0.3886,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0599,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 0.869,
                "squad_xg_sum": 1.1744,
                "squad_xa_sum": 0.7089,
                "team_expected_assists": 0.5648,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.74,
                "xa_scale": 0.7968,
                "opponent_lambda": 1.257,
                "scoreline_reset": true,
                "appearance_weight": 0.559
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0635,
                  "after": 0.0263
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0517,
                  "after": 0.023
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 71.0)",
              "stats": {
                "expected_goals": 0.0263,
                "goal_rate": 0.0703,
                "goals": 0,
                "shots_on_target": 0.2571,
                "total_shots": 0.6457,
                "expected_assists": 0.023,
                "key_pass": 0.4768,
                "rating": 6.665,
                "minutes": 25.29,
                "total_pass": 9.2132,
                "accurate_pass": 6.38,
                "duels_won": 1.3346,
                "total_long_balls": 0.6369,
                "accurate_long_balls": 0.2927,
                "total_opp_half_passes": 7.6469,
                "accurate_opp_half_passes": 5.158,
                "crosses_total": 0.6369,
                "crosses_accurate": 0.0,
                "touches": 16.3354,
                "possession_lost": 5.8465,
                "dispossessed": 0.2789,
                "duels_lost": 2.3157,
                "aerial_lost": 0.0,
                "total_contest": 2.4281,
                "won_contest": 1.0419,
                "ball_recovery": 1.2829,
                "challenges_lost": 0.328,
                "fouls": 0.2927,
                "fouls_drawn": 0.2927,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.0,
                "clearances": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.008,
                "offsides": 0.0,
                "ball_carries": 6.2515,
                "total_progression": 43.1994,
                "progressive_carries": 2.1962,
                "shots_off_target": 0.3886,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0599,
                "creation_factor": 0.8,
                "fifa_overall": 71.0
              },
              "params": {
                "match_squad_rank": 13,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 4788,
                "fifa_rank": 5029.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 71.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "expected_goals": 0.0263,
                "goal_rate": 0.0703,
                "goals": 0,
                "shots_on_target": 0.2571,
                "total_shots": 0.6457,
                "expected_assists": 0.023,
                "key_pass": 0.4768,
                "rating": 6.665,
                "minutes": 25.29,
                "total_pass": 9.2132,
                "accurate_pass": 6.38,
                "duels_won": 1.3346,
                "total_long_balls": 0.6369,
                "accurate_long_balls": 0.2927,
                "total_opp_half_passes": 7.6469,
                "accurate_opp_half_passes": 5.158,
                "crosses_total": 0.6369,
                "crosses_accurate": 0.0,
                "touches": 16.3354,
                "possession_lost": 5.8465,
                "dispossessed": 0.2789,
                "duels_lost": 2.3157,
                "aerial_lost": 0.0,
                "total_contest": 2.4281,
                "won_contest": 1.0419,
                "ball_recovery": 1.2829,
                "challenges_lost": 0.328,
                "fouls": 0.2927,
                "fouls_drawn": 0.2927,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.0,
                "clearances": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.008,
                "offsides": 0.0,
                "ball_carries": 6.2515,
                "total_progression": 43.1994,
                "progressive_carries": 2.1962,
                "shots_off_target": 0.3886,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0257,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0599,
                "creation_factor": 0.8,
                "fifa_overall": 71.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0257,
                "goal_rate": 0.0703,
                "scorer_weight": 0.0279,
                "squad_weight_total": 0.91,
                "weight_share": 0.0306,
                "finishing_factor": 1.0599,
                "appearance_weight": 0.559,
                "weight_rank": 9,
                "eligible_players": 13
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "expected_goals": 0.0263,
                "goal_rate": 0.0703,
                "goals": 0,
                "shots_on_target": 0.2571,
                "total_shots": 0.6457,
                "expected_assists": 0.023,
                "key_pass": 0.4768,
                "rating": 6.665,
                "minutes": 25.29,
                "total_pass": 9.2132,
                "accurate_pass": 6.38,
                "duels_won": 1.3346,
                "total_long_balls": 0.6369,
                "accurate_long_balls": 0.2927,
                "total_opp_half_passes": 7.6469,
                "accurate_opp_half_passes": 5.158,
                "crosses_total": 0.6369,
                "crosses_accurate": 0.0,
                "touches": 16.3354,
                "possession_lost": 5.8465,
                "dispossessed": 0.2789,
                "duels_lost": 2.3157,
                "aerial_lost": 0.0,
                "total_contest": 2.4281,
                "won_contest": 1.0419,
                "ball_recovery": 1.2829,
                "challenges_lost": 0.328,
                "fouls": 0.2927,
                "fouls_drawn": 0.2927,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.0,
                "clearances": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.008,
                "offsides": 0.0,
                "ball_carries": 6.2515,
                "total_progression": 43.1994,
                "progressive_carries": 2.1962,
                "shots_off_target": 0.3886,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0257,
                "projected_assists": 0,
                "assist_probability": 0.0225,
                "finishing_factor": 1.0599,
                "creation_factor": 0.8,
                "fifa_overall": 71.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0225,
                "assist_rate": 0.0,
                "provider_weight": 0.0184,
                "squad_weight_total": 0.5067,
                "weight_share": 0.0363,
                "creation_factor": 0.8,
                "appearance_weight": 0.559,
                "weight_rank": 9,
                "eligible_players": 13
              }
            }
          ]
        },
        "Juan Cruz": {
          "player_id": 936234,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 19,
          "height": 179,
          "market_value": 1700000,
          "stats": {
            "expected_goals": 0.0297,
            "goal_rate": 0.0709,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "expected_assists": 0.0209,
            "key_pass": 0,
            "rating": 6.6219,
            "minutes": 25,
            "total_pass": 8,
            "accurate_pass": 7,
            "duels_won": 1,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 6,
            "accurate_opp_half_passes": 5,
            "crosses_total": 2,
            "crosses_accurate": 0,
            "touches": 13,
            "possession_lost": 4.377,
            "dispossessed": 0.6408,
            "duels_lost": 1,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 1,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assist_rate": 0.0,
            "assists": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0169,
            "offsides": 0,
            "ball_carries": 4,
            "total_progression": 35,
            "progressive_carries": 1,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.559,
            "bench_expected_minutes": 25.29,
            "projected_substitution_order": 1,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.427,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0289,
            "projected_assists": 0,
            "assist_probability": 0.0205,
            "finishing_factor": 0.9918,
            "creation_factor": 0.8,
            "fifa_overall": 73.0
          },
          "latest_10_games": [
            {
              "match_id": 16416303,
              "match_date": "2026-09-20",
              "home_team": "Getafe",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Málaga CF",
              "opponent": "Getafe",
              "stats": {
                "minutes": 10,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0361,
                "expected_assists": 0.0,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416338,
              "match_date": "2026-09-17",
              "home_team": "Málaga CF",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 45,
                "rating": 6.9,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_assists": 0.0689,
                "total_shots": 0,
                "total_pass": 9,
                "accurate_pass": 5,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 1,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416347,
              "match_date": "2026-09-13",
              "home_team": "Celta Vigo",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Málaga CF",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 29,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0016,
                "total_shots": 0,
                "total_pass": 5,
                "accurate_pass": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416320,
              "match_date": "2026-09-06",
              "home_team": "Málaga CF",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 59,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0188,
                "total_shots": 0,
                "total_pass": 21,
                "accurate_pass": 16,
                "tackles": 2,
                "tackles_won": 1,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416312,
              "match_date": "2026-08-30",
              "home_team": "Real Madrid",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Málaga CF",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 29,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0196,
                "expected_assists": 0.0057,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 14,
                "accurate_pass": 12,
                "tackles": 1,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416307,
              "match_date": "2026-08-24",
              "home_team": "Málaga CF",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 56,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0225,
                "expected_assists": 0.0104,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 11,
                "accurate_pass": 11,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421055,
              "match_date": "2026-08-19",
              "home_team": "Atlético Madrid",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Málaga CF",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 23,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0092,
                "total_shots": 0,
                "total_pass": 8,
                "accurate_pass": 8,
                "tackles": 1,
                "duels_won": 2,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 4217,
            "combined_rank_score": 2245.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 959.0,
            "sofascore_rating": 6.4,
            "sofascore_appearances": 1.0,
            "fifa_rank": 3532.0,
            "fifa_overall": 73.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 17,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.6219,
            "source_file": "data/player_rankings.csv",
            "player_name": "Juan Cruz",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Anthony Lopes",
                  "ranking": 4212
                },
                {
                  "player_name": "Thorgan Hazard",
                  "ranking": 4213
                },
                {
                  "player_name": "Kenny Lala",
                  "ranking": 4214
                },
                {
                  "player_name": "Morgan Sanson",
                  "ranking": 4215
                },
                {
                  "player_name": "Hamari Traoré",
                  "ranking": 4216
                }
              ],
              "lower": [
                {
                  "player_name": "Maxime Lopez",
                  "ranking": 4218
                },
                {
                  "player_name": "Guillermo Martínez",
                  "ranking": 4219
                },
                {
                  "player_name": "Haris Belkebla",
                  "ranking": 4220
                },
                {
                  "player_name": "Renato Sanches",
                  "ranking": 4221
                },
                {
                  "player_name": "Yusuf Sarı",
                  "ranking": 4222
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.688,
          "history_matches": 7,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "F_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "onTargetScoringAttempt",
              "shotOffTarget",
              "bigChanceMissed",
              "expectedAssists",
              "keyPass",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "touches",
              "dispossessed",
              "wasFouled",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "expectedGoals",
              "goals",
              "rating",
              "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",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 7,
            "data_confidence": 0.688,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 25.292222187561247,
            "bench_appearance_prob": 0.5587373721618749,
            "market_value_adjustment": 0.9916,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost F_service (7 historical appearances) to 25.3 expected mins (appearance prob 0.56)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.0609,
                "goals": 0.0601,
                "goal_rate": 0.0601,
                "shots_on_target": 0.2302,
                "total_shots": 0.4654,
                "expected_assists": 0.0398,
                "key_pass": 0.3467,
                "rating": 6.6219,
                "minutes": 21.25,
                "total_pass": 6.3635,
                "accurate_pass": 5.5962,
                "duels_won": 0.6122,
                "total_long_balls": 0.7673,
                "accurate_long_balls": 0.2267,
                "total_opp_half_passes": 5.1898,
                "accurate_opp_half_passes": 4.4225,
                "crosses_total": 1.4749,
                "crosses_accurate": 0.0,
                "touches": 11.3836,
                "possession_lost": 3.7087,
                "dispossessed": 0.6462,
                "duels_lost": 1.0656,
                "aerial_lost": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 0.8049,
                "challenges_lost": 0.2267,
                "fouls": 0.1927,
                "fouls_drawn": 0.1927,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.4194,
                "clearances": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0346,
                "offsides": 0.0,
                "ball_carries": 3.7273,
                "total_progression": 29.9771,
                "progressive_carries": 0.96,
                "shots_off_target": 0.2351
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 6,
                  "trained_at": "2026-10-23T10:05:54.625928+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 611,
                    "rows": 16533
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Getafe",
                    "minutes": 10.0,
                    "is_starting": false,
                    "weight": 0.2208,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Villarreal",
                    "minutes": 45.0,
                    "is_starting": true,
                    "weight": 0.1877,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Celta Vigo",
                    "minutes": 29.0,
                    "is_starting": false,
                    "weight": 0.1595,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Levante UD",
                    "minutes": 59.0,
                    "is_starting": true,
                    "weight": 0.1356,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Real Madrid",
                    "minutes": 29.0,
                    "is_starting": false,
                    "weight": 0.1152,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-08-24",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 56.0,
                    "is_starting": true,
                    "weight": 0.098,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-19",
                    "opponent": "Atlético Madrid",
                    "minutes": 23.0,
                    "is_starting": false,
                    "weight": 0.0833,
                    "rating": 6.4
                  }
                ],
                "feature_row": {
                  "history_matches": 7.0,
                  "is_starting_11": 0.0,
                  "expectedGoals": 0.0124,
                  "totalOppositionHalfPasses": 6.1558,
                  "accurateOppositionHalfPasses": 5.2978,
                  "accuratePass": 7.0318,
                  "totalShots": 0.434
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.06087997183203697,
                    "model_output": 0.0609,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2858
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0881
                      },
                      {
                        "name": "goals",
                        "importance": 0.0357
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0272
                      },
                      {
                        "name": "bigChanceMissed",
                        "importance": 0.0231
                      }
                    ],
                    "decomposition": {
                      "base": 0.1979,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0845
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0191
                        },
                        {
                          "name": "goals",
                          "contribution": -0.0087
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": -0.0055
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0044
                        }
                      ],
                      "others": -0.0148,
                      "total": 0.0609,
                      "log_link": true,
                      "margin_base": -1.619934,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.556573
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.184796
                        },
                        {
                          "name": "goals",
                          "margin": -0.09643
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": -0.06581
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.056792
                        }
                      ],
                      "others_margin": -0.218518
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.06013544648885727,
                    "model_output": 0.0601,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1497
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0696
                      },
                      {
                        "name": "goals",
                        "importance": 0.0577
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0307
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0286
                      }
                    ],
                    "decomposition": {
                      "base": 0.2023,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0849
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0164
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0088
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": -0.0077
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0058
                        }
                      ],
                      "others": -0.0186,
                      "total": 0.0601,
                      "log_link": true,
                      "margin_base": -1.597983,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.544297
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.150514
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.091469
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": -0.087638
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": -0.071686
                        }
                      ],
                      "others_margin": -0.267568
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.2302488088607788,
                    "model_output": 0.2302,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2171
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0661
                      },
                      {
                        "name": "goals",
                        "importance": 0.0553
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0475
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0308
                      }
                    ],
                    "decomposition": {
                      "base": 0.5362,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1953
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0333
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0153
                        },
                        {
                          "name": "goals",
                          "contribution": -0.0136
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": -0.0107
                        }
                      ],
                      "others": -0.0378,
                      "total": 0.2302,
                      "log_link": true,
                      "margin_base": -0.623262,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.452806
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.102904
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.050887
                        },
                        {
                          "name": "goals",
                          "margin": -0.047538
                        },
                        {
                          "name": "duel_win_rate",
                          "margin": -0.039089
                        }
                      ],
                      "others_margin": -0.152109
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.4653748571872711,
                    "model_output": 0.4654,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2864
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0656
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.051
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.031
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0298
                      }
                    ],
                    "decomposition": {
                      "base": 1.3807,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.4997
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.138
                        },
                        {
                          "name": "goals",
                          "contribution": -0.0487
                        },
                        {
                          "name": "duelWon",
                          "contribution": -0.0444
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0322
                        }
                      ],
                      "others": -0.1523,
                      "total": 0.4654,
                      "log_link": false,
                      "margin_base": 1.380749,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.49966
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.138034
                        },
                        {
                          "name": "goals",
                          "margin": -0.048711
                        },
                        {
                          "name": "duelWon",
                          "margin": -0.044368
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.032199
                        }
                      ],
                      "others_margin": -0.152402
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.039772260934114456,
                    "model_output": 0.0398,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.1157
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0645
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0607
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0558
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 0.0644,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0172
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.005
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.004
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0031
                        },
                        {
                          "name": "rating",
                          "contribution": 0.0015
                        }
                      ],
                      "others": 0.0032,
                      "total": 0.0398,
                      "log_link": true,
                      "margin_base": -2.741965,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.311366
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.111525
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.09977
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.08415
                        },
                        {
                          "name": "rating",
                          "margin": 0.041414
                        }
                      ],
                      "others_margin": 0.082775
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.3466947078704834,
                    "model_output": 0.3467,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1481
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1244
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.1112
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.052
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0395
                      }
                    ],
                    "decomposition": {
                      "base": 0.6805,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2432
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.0234
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0222
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0138
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.0133
                        }
                      ],
                      "others": -0.0179,
                      "total": 0.3467,
                      "log_link": true,
                      "margin_base": -0.384987,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.442317
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.055104
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.05503
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.035844
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.035819
                        }
                      ],
                      "others_margin": -0.05021
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.6219329833984375,
                    "model_output": 6.6219,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.059
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0483
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0421
                      },
                      {
                        "name": "rating",
                        "importance": 0.0418
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0415
                      }
                    ],
                    "decomposition": {
                      "base": 6.7683,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0563
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": 0.0142
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0104
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.01
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0089
                        }
                      ],
                      "others": -0.075,
                      "total": 6.6219,
                      "log_link": false,
                      "margin_base": 6.768281,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.056259
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": 0.014166
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.010386
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.009972
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.008932
                        }
                      ],
                      "others_margin": -0.074965
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "substitute",
                  "history_matches": 7,
                  "role_matches": 4,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "role_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9916, quality 0.437)",
              "stats": {
                "expected_goals": 0.0604,
                "goals": 0.0596,
                "goal_rate": 0.0596,
                "shots_on_target": 0.2283,
                "total_shots": 0.4615,
                "expected_assists": 0.0394,
                "key_pass": 0.3438,
                "rating": 6.6219,
                "minutes": 21.25,
                "total_pass": 6.31,
                "accurate_pass": 5.5492,
                "duels_won": 0.6071,
                "total_long_balls": 0.7609,
                "accurate_long_balls": 0.2248,
                "total_opp_half_passes": 5.1462,
                "accurate_opp_half_passes": 4.3854,
                "crosses_total": 1.4625,
                "crosses_accurate": 0.0,
                "touches": 11.288,
                "possession_lost": 3.6775,
                "dispossessed": 0.6408,
                "duels_lost": 1.0566,
                "aerial_lost": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 0.7981,
                "challenges_lost": 0.2248,
                "fouls": 0.1911,
                "fouls_drawn": 0.1911,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.4159,
                "clearances": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0343,
                "offsides": 0.0,
                "ball_carries": 3.696,
                "total_progression": 29.7253,
                "progressive_carries": 0.9519,
                "shots_off_target": 0.2331
              },
              "params": {
                "market_value_eur": 1700000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9916,
                "reference_quality": 0.505,
                "history_matches": 7,
                "history_shrink": 0.4167,
                "market_value_known": true
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 21.2 to 25.3 expected minutes (appearance prob 0.56)",
              "stats": {
                "expected_goals": 0.0719,
                "goals": 0.0709,
                "goal_rate": 0.0709,
                "shots_on_target": 0.2717,
                "total_shots": 0.5493,
                "expected_assists": 0.0469,
                "key_pass": 0.4092,
                "rating": 6.6219,
                "minutes": 25.29,
                "total_pass": 7.5103,
                "accurate_pass": 6.6048,
                "duels_won": 0.7226,
                "total_long_balls": 0.9056,
                "accurate_long_balls": 0.2676,
                "total_opp_half_passes": 6.1251,
                "accurate_opp_half_passes": 5.2196,
                "crosses_total": 1.7407,
                "crosses_accurate": 0.0,
                "touches": 13.4352,
                "possession_lost": 4.377,
                "dispossessed": 0.6408,
                "duels_lost": 1.2576,
                "aerial_lost": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 0.9499,
                "challenges_lost": 0.2248,
                "fouls": 0.2275,
                "fouls_drawn": 0.2275,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.495,
                "clearances": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0408,
                "offsides": 0.0,
                "ball_carries": 4.3991,
                "total_progression": 35.3797,
                "progressive_carries": 1.133,
                "shots_off_target": 0.2774,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29
              },
              "params": {
                "expected_minutes": 25.29,
                "projection_minutes": 21.25,
                "minutes_scale": 1.1902,
                "appearance_probability": 0.559
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0719,
                "goals": 0.0709,
                "goal_rate": 0.0709,
                "shots_on_target": 0.2717,
                "total_shots": 0.5493,
                "expected_assists": 0.0469,
                "key_pass": 0.4092,
                "rating": 6.6219,
                "minutes": 25.29,
                "total_pass": 7.5103,
                "accurate_pass": 6.6048,
                "duels_won": 0.7226,
                "total_long_balls": 0.9056,
                "accurate_long_balls": 0.2676,
                "total_opp_half_passes": 6.1251,
                "accurate_opp_half_passes": 5.2196,
                "crosses_total": 1.7407,
                "crosses_accurate": 0.0,
                "touches": 13.4352,
                "possession_lost": 4.377,
                "dispossessed": 0.6408,
                "duels_lost": 1.2576,
                "aerial_lost": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 0.9499,
                "challenges_lost": 0.2248,
                "fouls": 0.2275,
                "fouls_drawn": 0.2275,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.495,
                "clearances": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0408,
                "offsides": 0.0,
                "ball_carries": 4.3991,
                "total_progression": 35.3797,
                "progressive_carries": 1.133,
                "shots_off_target": 0.2774,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "expected_goals": 0.0719,
                "goal_rate": 0.0709,
                "goals": 0,
                "shots_on_target": 0.2717,
                "total_shots": 0.5493,
                "expected_assists": 0.0469,
                "key_pass": 0.4092,
                "rating": 6.6219,
                "minutes": 25.29,
                "total_pass": 7.5103,
                "accurate_pass": 6.6048,
                "duels_won": 0.7226,
                "total_long_balls": 0.9056,
                "accurate_long_balls": 0.2676,
                "total_opp_half_passes": 6.1251,
                "accurate_opp_half_passes": 5.2196,
                "crosses_total": 1.7407,
                "crosses_accurate": 0.0,
                "touches": 13.4352,
                "possession_lost": 4.377,
                "dispossessed": 0.6408,
                "duels_lost": 1.2576,
                "aerial_lost": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 0.9499,
                "challenges_lost": 0.2248,
                "fouls": 0.2275,
                "fouls_drawn": 0.2275,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.495,
                "clearances": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0408,
                "offsides": 0.0,
                "ball_carries": 4.3991,
                "total_progression": 35.3797,
                "progressive_carries": 1.133,
                "shots_off_target": 0.2774,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "scoreline_reset": true,
                "team_goals": 0
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.87 (squad xG sum 1.1744, xG scale 0.7400, xA scale 0.7968, team xA 0.56 = 0.65 x lambda)",
              "stats": {
                "expected_goals": 0.0297,
                "goal_rate": 0.0709,
                "goals": 0,
                "shots_on_target": 0.2717,
                "total_shots": 0.5493,
                "expected_assists": 0.0209,
                "key_pass": 0.4092,
                "rating": 6.6219,
                "minutes": 25.29,
                "total_pass": 7.5103,
                "accurate_pass": 6.6048,
                "duels_won": 0.7226,
                "total_long_balls": 0.9056,
                "accurate_long_balls": 0.2676,
                "total_opp_half_passes": 6.1251,
                "accurate_opp_half_passes": 5.2196,
                "crosses_total": 1.7407,
                "crosses_accurate": 0.0,
                "touches": 13.4352,
                "possession_lost": 4.377,
                "dispossessed": 0.6408,
                "duels_lost": 1.2576,
                "aerial_lost": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 0.9499,
                "challenges_lost": 0.2248,
                "fouls": 0.2275,
                "fouls_drawn": 0.2275,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.495,
                "clearances": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0169,
                "offsides": 0.0,
                "ball_carries": 4.3991,
                "total_progression": 35.3797,
                "progressive_carries": 1.133,
                "shots_off_target": 0.2774,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.9918,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 0.869,
                "squad_xg_sum": 1.1744,
                "squad_xa_sum": 0.7089,
                "team_expected_assists": 0.5648,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.74,
                "xa_scale": 0.7968,
                "opponent_lambda": 1.257,
                "scoreline_reset": true,
                "appearance_weight": 0.559
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0719,
                  "after": 0.0297
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0469,
                  "after": 0.0209
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 73.0)",
              "stats": {
                "expected_goals": 0.0297,
                "goal_rate": 0.0709,
                "goals": 0,
                "shots_on_target": 0.2717,
                "total_shots": 0.5493,
                "expected_assists": 0.0209,
                "key_pass": 0.4092,
                "rating": 6.6219,
                "minutes": 25.29,
                "total_pass": 7.5103,
                "accurate_pass": 6.6048,
                "duels_won": 0.7226,
                "total_long_balls": 0.9056,
                "accurate_long_balls": 0.2676,
                "total_opp_half_passes": 6.1251,
                "accurate_opp_half_passes": 5.2196,
                "crosses_total": 1.7407,
                "crosses_accurate": 0.0,
                "touches": 13.4352,
                "possession_lost": 4.377,
                "dispossessed": 0.6408,
                "duels_lost": 1.2576,
                "aerial_lost": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 0.9499,
                "challenges_lost": 0.2248,
                "fouls": 0.2275,
                "fouls_drawn": 0.2275,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.495,
                "clearances": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0169,
                "offsides": 0.0,
                "ball_carries": 4.3991,
                "total_progression": 35.3797,
                "progressive_carries": 1.133,
                "shots_off_target": 0.2774,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.9918,
                "creation_factor": 0.8,
                "fifa_overall": 73.0
              },
              "params": {
                "match_squad_rank": 17,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 4217,
                "fifa_rank": 3532.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 73.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "expected_goals": 0.0297,
                "goal_rate": 0.0709,
                "goals": 0,
                "shots_on_target": 0.2717,
                "total_shots": 0.5493,
                "expected_assists": 0.0209,
                "key_pass": 0.4092,
                "rating": 6.6219,
                "minutes": 25.29,
                "total_pass": 7.5103,
                "accurate_pass": 6.6048,
                "duels_won": 0.7226,
                "total_long_balls": 0.9056,
                "accurate_long_balls": 0.2676,
                "total_opp_half_passes": 6.1251,
                "accurate_opp_half_passes": 5.2196,
                "crosses_total": 1.7407,
                "crosses_accurate": 0.0,
                "touches": 13.4352,
                "possession_lost": 4.377,
                "dispossessed": 0.6408,
                "duels_lost": 1.2576,
                "aerial_lost": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 0.9499,
                "challenges_lost": 0.2248,
                "fouls": 0.2275,
                "fouls_drawn": 0.2275,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.495,
                "clearances": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0169,
                "offsides": 0.0,
                "ball_carries": 4.3991,
                "total_progression": 35.3797,
                "progressive_carries": 1.133,
                "shots_off_target": 0.2774,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0289,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.9918,
                "creation_factor": 0.8,
                "fifa_overall": 73.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0289,
                "goal_rate": 0.0709,
                "scorer_weight": 0.0295,
                "squad_weight_total": 0.91,
                "weight_share": 0.0324,
                "finishing_factor": 0.9918,
                "appearance_weight": 0.559,
                "weight_rank": 8,
                "eligible_players": 13
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "expected_goals": 0.0297,
                "goal_rate": 0.0709,
                "goals": 0,
                "shots_on_target": 0.2717,
                "total_shots": 0.5493,
                "expected_assists": 0.0209,
                "key_pass": 0.4092,
                "rating": 6.6219,
                "minutes": 25.29,
                "total_pass": 7.5103,
                "accurate_pass": 6.6048,
                "duels_won": 0.7226,
                "total_long_balls": 0.9056,
                "accurate_long_balls": 0.2676,
                "total_opp_half_passes": 6.1251,
                "accurate_opp_half_passes": 5.2196,
                "crosses_total": 1.7407,
                "crosses_accurate": 0.0,
                "touches": 13.4352,
                "possession_lost": 4.377,
                "dispossessed": 0.6408,
                "duels_lost": 1.2576,
                "aerial_lost": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 0.9499,
                "challenges_lost": 0.2248,
                "fouls": 0.2275,
                "fouls_drawn": 0.2275,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.495,
                "clearances": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0169,
                "offsides": 0.0,
                "ball_carries": 4.3991,
                "total_progression": 35.3797,
                "progressive_carries": 1.133,
                "shots_off_target": 0.2774,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0289,
                "projected_assists": 0,
                "assist_probability": 0.0205,
                "finishing_factor": 0.9918,
                "creation_factor": 0.8,
                "fifa_overall": 73.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0205,
                "assist_rate": 0.0,
                "provider_weight": 0.0167,
                "squad_weight_total": 0.5067,
                "weight_share": 0.033,
                "creation_factor": 0.8,
                "appearance_weight": 0.559,
                "weight_rank": 10,
                "eligible_players": 13
              }
            }
          ]
        }
      },
      "substitutes": {
        "Juan Cruz": {
          "player_id": 936234,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 19,
          "height": 179,
          "market_value": 1700000,
          "stats": {
            "expected_goals": 0.0297,
            "goal_rate": 0.0709,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "expected_assists": 0.0209,
            "key_pass": 0,
            "rating": 6.6219,
            "minutes": 25,
            "total_pass": 8,
            "accurate_pass": 7,
            "duels_won": 1,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 6,
            "accurate_opp_half_passes": 5,
            "crosses_total": 2,
            "crosses_accurate": 0,
            "touches": 13,
            "possession_lost": 4.377,
            "dispossessed": 0.6408,
            "duels_lost": 1,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 1,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assist_rate": 0.0,
            "assists": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0169,
            "offsides": 0,
            "ball_carries": 4,
            "total_progression": 35,
            "progressive_carries": 1,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.559,
            "bench_expected_minutes": 25.29,
            "projected_substitution_order": 1,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.427,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0289,
            "projected_assists": 0,
            "assist_probability": 0.0205,
            "finishing_factor": 0.9918,
            "creation_factor": 0.8,
            "fifa_overall": 73.0
          },
          "latest_10_games": [
            {
              "match_id": 16416303,
              "match_date": "2026-09-20",
              "home_team": "Getafe",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Málaga CF",
              "opponent": "Getafe",
              "stats": {
                "minutes": 10,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0361,
                "expected_assists": 0.0,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416338,
              "match_date": "2026-09-17",
              "home_team": "Málaga CF",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 45,
                "rating": 6.9,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_assists": 0.0689,
                "total_shots": 0,
                "total_pass": 9,
                "accurate_pass": 5,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 1,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416347,
              "match_date": "2026-09-13",
              "home_team": "Celta Vigo",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Málaga CF",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 29,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0016,
                "total_shots": 0,
                "total_pass": 5,
                "accurate_pass": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416320,
              "match_date": "2026-09-06",
              "home_team": "Málaga CF",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 59,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0188,
                "total_shots": 0,
                "total_pass": 21,
                "accurate_pass": 16,
                "tackles": 2,
                "tackles_won": 1,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416312,
              "match_date": "2026-08-30",
              "home_team": "Real Madrid",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Málaga CF",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 29,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0196,
                "expected_assists": 0.0057,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 14,
                "accurate_pass": 12,
                "tackles": 1,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416307,
              "match_date": "2026-08-24",
              "home_team": "Málaga CF",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 56,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0225,
                "expected_assists": 0.0104,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 11,
                "accurate_pass": 11,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421055,
              "match_date": "2026-08-19",
              "home_team": "Atlético Madrid",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Málaga CF",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 23,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0092,
                "total_shots": 0,
                "total_pass": 8,
                "accurate_pass": 8,
                "tackles": 1,
                "duels_won": 2,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 4217,
            "combined_rank_score": 2245.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 959.0,
            "sofascore_rating": 6.4,
            "sofascore_appearances": 1.0,
            "fifa_rank": 3532.0,
            "fifa_overall": 73.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 17,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.6219,
            "source_file": "data/player_rankings.csv",
            "player_name": "Juan Cruz",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Anthony Lopes",
                  "ranking": 4212
                },
                {
                  "player_name": "Thorgan Hazard",
                  "ranking": 4213
                },
                {
                  "player_name": "Kenny Lala",
                  "ranking": 4214
                },
                {
                  "player_name": "Morgan Sanson",
                  "ranking": 4215
                },
                {
                  "player_name": "Hamari Traoré",
                  "ranking": 4216
                }
              ],
              "lower": [
                {
                  "player_name": "Maxime Lopez",
                  "ranking": 4218
                },
                {
                  "player_name": "Guillermo Martínez",
                  "ranking": 4219
                },
                {
                  "player_name": "Haris Belkebla",
                  "ranking": 4220
                },
                {
                  "player_name": "Renato Sanches",
                  "ranking": 4221
                },
                {
                  "player_name": "Yusuf Sarı",
                  "ranking": 4222
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.688,
          "history_matches": 7,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "F_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "onTargetScoringAttempt",
              "shotOffTarget",
              "bigChanceMissed",
              "expectedAssists",
              "keyPass",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "touches",
              "dispossessed",
              "wasFouled",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "expectedGoals",
              "goals",
              "rating",
              "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",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 7,
            "data_confidence": 0.688,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 25.292222187561247,
            "bench_appearance_prob": 0.5587373721618749,
            "market_value_adjustment": 0.9916,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost F_service (7 historical appearances) to 25.3 expected mins (appearance prob 0.56)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.0609,
                "goals": 0.0601,
                "goal_rate": 0.0601,
                "shots_on_target": 0.2302,
                "total_shots": 0.4654,
                "expected_assists": 0.0398,
                "key_pass": 0.3467,
                "rating": 6.6219,
                "minutes": 21.25,
                "total_pass": 6.3635,
                "accurate_pass": 5.5962,
                "duels_won": 0.6122,
                "total_long_balls": 0.7673,
                "accurate_long_balls": 0.2267,
                "total_opp_half_passes": 5.1898,
                "accurate_opp_half_passes": 4.4225,
                "crosses_total": 1.4749,
                "crosses_accurate": 0.0,
                "touches": 11.3836,
                "possession_lost": 3.7087,
                "dispossessed": 0.6462,
                "duels_lost": 1.0656,
                "aerial_lost": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 0.8049,
                "challenges_lost": 0.2267,
                "fouls": 0.1927,
                "fouls_drawn": 0.1927,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.4194,
                "clearances": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0346,
                "offsides": 0.0,
                "ball_carries": 3.7273,
                "total_progression": 29.9771,
                "progressive_carries": 0.96,
                "shots_off_target": 0.2351
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 6,
                  "trained_at": "2026-10-23T10:05:54.625928+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 611,
                    "rows": 16533
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Getafe",
                    "minutes": 10.0,
                    "is_starting": false,
                    "weight": 0.2208,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Villarreal",
                    "minutes": 45.0,
                    "is_starting": true,
                    "weight": 0.1877,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Celta Vigo",
                    "minutes": 29.0,
                    "is_starting": false,
                    "weight": 0.1595,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Levante UD",
                    "minutes": 59.0,
                    "is_starting": true,
                    "weight": 0.1356,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Real Madrid",
                    "minutes": 29.0,
                    "is_starting": false,
                    "weight": 0.1152,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-08-24",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 56.0,
                    "is_starting": true,
                    "weight": 0.098,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-19",
                    "opponent": "Atlético Madrid",
                    "minutes": 23.0,
                    "is_starting": false,
                    "weight": 0.0833,
                    "rating": 6.4
                  }
                ],
                "feature_row": {
                  "history_matches": 7.0,
                  "is_starting_11": 0.0,
                  "expectedGoals": 0.0124,
                  "totalOppositionHalfPasses": 6.1558,
                  "accurateOppositionHalfPasses": 5.2978,
                  "accuratePass": 7.0318,
                  "totalShots": 0.434
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.06087997183203697,
                    "model_output": 0.0609,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2858
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0881
                      },
                      {
                        "name": "goals",
                        "importance": 0.0357
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0272
                      },
                      {
                        "name": "bigChanceMissed",
                        "importance": 0.0231
                      }
                    ],
                    "decomposition": {
                      "base": 0.1979,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0845
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0191
                        },
                        {
                          "name": "goals",
                          "contribution": -0.0087
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": -0.0055
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0044
                        }
                      ],
                      "others": -0.0148,
                      "total": 0.0609,
                      "log_link": true,
                      "margin_base": -1.619934,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.556573
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.184796
                        },
                        {
                          "name": "goals",
                          "margin": -0.09643
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": -0.06581
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.056792
                        }
                      ],
                      "others_margin": -0.218518
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.06013544648885727,
                    "model_output": 0.0601,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1497
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0696
                      },
                      {
                        "name": "goals",
                        "importance": 0.0577
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0307
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0286
                      }
                    ],
                    "decomposition": {
                      "base": 0.2023,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0849
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0164
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0088
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": -0.0077
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0058
                        }
                      ],
                      "others": -0.0186,
                      "total": 0.0601,
                      "log_link": true,
                      "margin_base": -1.597983,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.544297
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.150514
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.091469
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": -0.087638
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": -0.071686
                        }
                      ],
                      "others_margin": -0.267568
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.2302488088607788,
                    "model_output": 0.2302,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2171
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0661
                      },
                      {
                        "name": "goals",
                        "importance": 0.0553
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0475
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0308
                      }
                    ],
                    "decomposition": {
                      "base": 0.5362,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1953
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0333
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0153
                        },
                        {
                          "name": "goals",
                          "contribution": -0.0136
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": -0.0107
                        }
                      ],
                      "others": -0.0378,
                      "total": 0.2302,
                      "log_link": true,
                      "margin_base": -0.623262,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.452806
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.102904
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.050887
                        },
                        {
                          "name": "goals",
                          "margin": -0.047538
                        },
                        {
                          "name": "duel_win_rate",
                          "margin": -0.039089
                        }
                      ],
                      "others_margin": -0.152109
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.4653748571872711,
                    "model_output": 0.4654,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2864
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0656
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.051
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.031
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0298
                      }
                    ],
                    "decomposition": {
                      "base": 1.3807,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.4997
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.138
                        },
                        {
                          "name": "goals",
                          "contribution": -0.0487
                        },
                        {
                          "name": "duelWon",
                          "contribution": -0.0444
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0322
                        }
                      ],
                      "others": -0.1523,
                      "total": 0.4654,
                      "log_link": false,
                      "margin_base": 1.380749,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.49966
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.138034
                        },
                        {
                          "name": "goals",
                          "margin": -0.048711
                        },
                        {
                          "name": "duelWon",
                          "margin": -0.044368
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.032199
                        }
                      ],
                      "others_margin": -0.152402
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.039772260934114456,
                    "model_output": 0.0398,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.1157
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0645
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0607
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0558
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 0.0644,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0172
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.005
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.004
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0031
                        },
                        {
                          "name": "rating",
                          "contribution": 0.0015
                        }
                      ],
                      "others": 0.0032,
                      "total": 0.0398,
                      "log_link": true,
                      "margin_base": -2.741965,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.311366
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.111525
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.09977
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.08415
                        },
                        {
                          "name": "rating",
                          "margin": 0.041414
                        }
                      ],
                      "others_margin": 0.082775
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.3466947078704834,
                    "model_output": 0.3467,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1481
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1244
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.1112
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.052
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0395
                      }
                    ],
                    "decomposition": {
                      "base": 0.6805,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2432
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.0234
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0222
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0138
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.0133
                        }
                      ],
                      "others": -0.0179,
                      "total": 0.3467,
                      "log_link": true,
                      "margin_base": -0.384987,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.442317
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.055104
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.05503
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.035844
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.035819
                        }
                      ],
                      "others_margin": -0.05021
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.6219329833984375,
                    "model_output": 6.6219,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.059
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0483
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0421
                      },
                      {
                        "name": "rating",
                        "importance": 0.0418
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0415
                      }
                    ],
                    "decomposition": {
                      "base": 6.7683,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0563
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": 0.0142
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0104
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.01
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0089
                        }
                      ],
                      "others": -0.075,
                      "total": 6.6219,
                      "log_link": false,
                      "margin_base": 6.768281,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.056259
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": 0.014166
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.010386
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.009972
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.008932
                        }
                      ],
                      "others_margin": -0.074965
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "substitute",
                  "history_matches": 7,
                  "role_matches": 4,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "role_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9916, quality 0.437)",
              "stats": {
                "expected_goals": 0.0604,
                "goals": 0.0596,
                "goal_rate": 0.0596,
                "shots_on_target": 0.2283,
                "total_shots": 0.4615,
                "expected_assists": 0.0394,
                "key_pass": 0.3438,
                "rating": 6.6219,
                "minutes": 21.25,
                "total_pass": 6.31,
                "accurate_pass": 5.5492,
                "duels_won": 0.6071,
                "total_long_balls": 0.7609,
                "accurate_long_balls": 0.2248,
                "total_opp_half_passes": 5.1462,
                "accurate_opp_half_passes": 4.3854,
                "crosses_total": 1.4625,
                "crosses_accurate": 0.0,
                "touches": 11.288,
                "possession_lost": 3.6775,
                "dispossessed": 0.6408,
                "duels_lost": 1.0566,
                "aerial_lost": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 0.7981,
                "challenges_lost": 0.2248,
                "fouls": 0.1911,
                "fouls_drawn": 0.1911,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.4159,
                "clearances": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0343,
                "offsides": 0.0,
                "ball_carries": 3.696,
                "total_progression": 29.7253,
                "progressive_carries": 0.9519,
                "shots_off_target": 0.2331
              },
              "params": {
                "market_value_eur": 1700000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9916,
                "reference_quality": 0.505,
                "history_matches": 7,
                "history_shrink": 0.4167,
                "market_value_known": true
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 21.2 to 25.3 expected minutes (appearance prob 0.56)",
              "stats": {
                "expected_goals": 0.0719,
                "goals": 0.0709,
                "goal_rate": 0.0709,
                "shots_on_target": 0.2717,
                "total_shots": 0.5493,
                "expected_assists": 0.0469,
                "key_pass": 0.4092,
                "rating": 6.6219,
                "minutes": 25.29,
                "total_pass": 7.5103,
                "accurate_pass": 6.6048,
                "duels_won": 0.7226,
                "total_long_balls": 0.9056,
                "accurate_long_balls": 0.2676,
                "total_opp_half_passes": 6.1251,
                "accurate_opp_half_passes": 5.2196,
                "crosses_total": 1.7407,
                "crosses_accurate": 0.0,
                "touches": 13.4352,
                "possession_lost": 4.377,
                "dispossessed": 0.6408,
                "duels_lost": 1.2576,
                "aerial_lost": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 0.9499,
                "challenges_lost": 0.2248,
                "fouls": 0.2275,
                "fouls_drawn": 0.2275,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.495,
                "clearances": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0408,
                "offsides": 0.0,
                "ball_carries": 4.3991,
                "total_progression": 35.3797,
                "progressive_carries": 1.133,
                "shots_off_target": 0.2774,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29
              },
              "params": {
                "expected_minutes": 25.29,
                "projection_minutes": 21.25,
                "minutes_scale": 1.1902,
                "appearance_probability": 0.559
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0719,
                "goals": 0.0709,
                "goal_rate": 0.0709,
                "shots_on_target": 0.2717,
                "total_shots": 0.5493,
                "expected_assists": 0.0469,
                "key_pass": 0.4092,
                "rating": 6.6219,
                "minutes": 25.29,
                "total_pass": 7.5103,
                "accurate_pass": 6.6048,
                "duels_won": 0.7226,
                "total_long_balls": 0.9056,
                "accurate_long_balls": 0.2676,
                "total_opp_half_passes": 6.1251,
                "accurate_opp_half_passes": 5.2196,
                "crosses_total": 1.7407,
                "crosses_accurate": 0.0,
                "touches": 13.4352,
                "possession_lost": 4.377,
                "dispossessed": 0.6408,
                "duels_lost": 1.2576,
                "aerial_lost": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 0.9499,
                "challenges_lost": 0.2248,
                "fouls": 0.2275,
                "fouls_drawn": 0.2275,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.495,
                "clearances": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0408,
                "offsides": 0.0,
                "ball_carries": 4.3991,
                "total_progression": 35.3797,
                "progressive_carries": 1.133,
                "shots_off_target": 0.2774,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "expected_goals": 0.0719,
                "goal_rate": 0.0709,
                "goals": 0,
                "shots_on_target": 0.2717,
                "total_shots": 0.5493,
                "expected_assists": 0.0469,
                "key_pass": 0.4092,
                "rating": 6.6219,
                "minutes": 25.29,
                "total_pass": 7.5103,
                "accurate_pass": 6.6048,
                "duels_won": 0.7226,
                "total_long_balls": 0.9056,
                "accurate_long_balls": 0.2676,
                "total_opp_half_passes": 6.1251,
                "accurate_opp_half_passes": 5.2196,
                "crosses_total": 1.7407,
                "crosses_accurate": 0.0,
                "touches": 13.4352,
                "possession_lost": 4.377,
                "dispossessed": 0.6408,
                "duels_lost": 1.2576,
                "aerial_lost": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 0.9499,
                "challenges_lost": 0.2248,
                "fouls": 0.2275,
                "fouls_drawn": 0.2275,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.495,
                "clearances": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0408,
                "offsides": 0.0,
                "ball_carries": 4.3991,
                "total_progression": 35.3797,
                "progressive_carries": 1.133,
                "shots_off_target": 0.2774,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "scoreline_reset": true,
                "team_goals": 0
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.87 (squad xG sum 1.1744, xG scale 0.7400, xA scale 0.7968, team xA 0.56 = 0.65 x lambda)",
              "stats": {
                "expected_goals": 0.0297,
                "goal_rate": 0.0709,
                "goals": 0,
                "shots_on_target": 0.2717,
                "total_shots": 0.5493,
                "expected_assists": 0.0209,
                "key_pass": 0.4092,
                "rating": 6.6219,
                "minutes": 25.29,
                "total_pass": 7.5103,
                "accurate_pass": 6.6048,
                "duels_won": 0.7226,
                "total_long_balls": 0.9056,
                "accurate_long_balls": 0.2676,
                "total_opp_half_passes": 6.1251,
                "accurate_opp_half_passes": 5.2196,
                "crosses_total": 1.7407,
                "crosses_accurate": 0.0,
                "touches": 13.4352,
                "possession_lost": 4.377,
                "dispossessed": 0.6408,
                "duels_lost": 1.2576,
                "aerial_lost": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 0.9499,
                "challenges_lost": 0.2248,
                "fouls": 0.2275,
                "fouls_drawn": 0.2275,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.495,
                "clearances": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0169,
                "offsides": 0.0,
                "ball_carries": 4.3991,
                "total_progression": 35.3797,
                "progressive_carries": 1.133,
                "shots_off_target": 0.2774,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.9918,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 0.869,
                "squad_xg_sum": 1.1744,
                "squad_xa_sum": 0.7089,
                "team_expected_assists": 0.5648,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.74,
                "xa_scale": 0.7968,
                "opponent_lambda": 1.257,
                "scoreline_reset": true,
                "appearance_weight": 0.559
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0719,
                  "after": 0.0297
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0469,
                  "after": 0.0209
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 73.0)",
              "stats": {
                "expected_goals": 0.0297,
                "goal_rate": 0.0709,
                "goals": 0,
                "shots_on_target": 0.2717,
                "total_shots": 0.5493,
                "expected_assists": 0.0209,
                "key_pass": 0.4092,
                "rating": 6.6219,
                "minutes": 25.29,
                "total_pass": 7.5103,
                "accurate_pass": 6.6048,
                "duels_won": 0.7226,
                "total_long_balls": 0.9056,
                "accurate_long_balls": 0.2676,
                "total_opp_half_passes": 6.1251,
                "accurate_opp_half_passes": 5.2196,
                "crosses_total": 1.7407,
                "crosses_accurate": 0.0,
                "touches": 13.4352,
                "possession_lost": 4.377,
                "dispossessed": 0.6408,
                "duels_lost": 1.2576,
                "aerial_lost": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 0.9499,
                "challenges_lost": 0.2248,
                "fouls": 0.2275,
                "fouls_drawn": 0.2275,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.495,
                "clearances": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0169,
                "offsides": 0.0,
                "ball_carries": 4.3991,
                "total_progression": 35.3797,
                "progressive_carries": 1.133,
                "shots_off_target": 0.2774,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.9918,
                "creation_factor": 0.8,
                "fifa_overall": 73.0
              },
              "params": {
                "match_squad_rank": 17,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 4217,
                "fifa_rank": 3532.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 73.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "expected_goals": 0.0297,
                "goal_rate": 0.0709,
                "goals": 0,
                "shots_on_target": 0.2717,
                "total_shots": 0.5493,
                "expected_assists": 0.0209,
                "key_pass": 0.4092,
                "rating": 6.6219,
                "minutes": 25.29,
                "total_pass": 7.5103,
                "accurate_pass": 6.6048,
                "duels_won": 0.7226,
                "total_long_balls": 0.9056,
                "accurate_long_balls": 0.2676,
                "total_opp_half_passes": 6.1251,
                "accurate_opp_half_passes": 5.2196,
                "crosses_total": 1.7407,
                "crosses_accurate": 0.0,
                "touches": 13.4352,
                "possession_lost": 4.377,
                "dispossessed": 0.6408,
                "duels_lost": 1.2576,
                "aerial_lost": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 0.9499,
                "challenges_lost": 0.2248,
                "fouls": 0.2275,
                "fouls_drawn": 0.2275,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.495,
                "clearances": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0169,
                "offsides": 0.0,
                "ball_carries": 4.3991,
                "total_progression": 35.3797,
                "progressive_carries": 1.133,
                "shots_off_target": 0.2774,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0289,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.9918,
                "creation_factor": 0.8,
                "fifa_overall": 73.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0289,
                "goal_rate": 0.0709,
                "scorer_weight": 0.0295,
                "squad_weight_total": 0.91,
                "weight_share": 0.0324,
                "finishing_factor": 0.9918,
                "appearance_weight": 0.559,
                "weight_rank": 8,
                "eligible_players": 13
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "expected_goals": 0.0297,
                "goal_rate": 0.0709,
                "goals": 0,
                "shots_on_target": 0.2717,
                "total_shots": 0.5493,
                "expected_assists": 0.0209,
                "key_pass": 0.4092,
                "rating": 6.6219,
                "minutes": 25.29,
                "total_pass": 7.5103,
                "accurate_pass": 6.6048,
                "duels_won": 0.7226,
                "total_long_balls": 0.9056,
                "accurate_long_balls": 0.2676,
                "total_opp_half_passes": 6.1251,
                "accurate_opp_half_passes": 5.2196,
                "crosses_total": 1.7407,
                "crosses_accurate": 0.0,
                "touches": 13.4352,
                "possession_lost": 4.377,
                "dispossessed": 0.6408,
                "duels_lost": 1.2576,
                "aerial_lost": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 0.9499,
                "challenges_lost": 0.2248,
                "fouls": 0.2275,
                "fouls_drawn": 0.2275,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.495,
                "clearances": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0169,
                "offsides": 0.0,
                "ball_carries": 4.3991,
                "total_progression": 35.3797,
                "progressive_carries": 1.133,
                "shots_off_target": 0.2774,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0289,
                "projected_assists": 0,
                "assist_probability": 0.0205,
                "finishing_factor": 0.9918,
                "creation_factor": 0.8,
                "fifa_overall": 73.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0205,
                "assist_rate": 0.0,
                "provider_weight": 0.0167,
                "squad_weight_total": 0.5067,
                "weight_share": 0.033,
                "creation_factor": 0.8,
                "appearance_weight": 0.559,
                "weight_rank": 10,
                "eligible_players": 13
              }
            }
          ]
        },
        "Joaquín Muñoz": {
          "player_id": 904964,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 11,
          "height": 172,
          "market_value": 1900000,
          "stats": {
            "expected_goals": 0.0263,
            "goal_rate": 0.0703,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "expected_assists": 0.023,
            "key_pass": 0,
            "rating": 6.665,
            "minutes": 25,
            "total_pass": 9,
            "accurate_pass": 6,
            "duels_won": 1,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 8,
            "accurate_opp_half_passes": 5,
            "crosses_total": 1,
            "crosses_accurate": 0,
            "touches": 16,
            "possession_lost": 5.8465,
            "dispossessed": 0.2789,
            "duels_lost": 2,
            "aerial_lost": 0,
            "total_contest": 2,
            "won_contest": 1,
            "ball_recovery": 1,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assist_rate": 0.0,
            "assists": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.008,
            "offsides": 0,
            "ball_carries": 6,
            "total_progression": 43,
            "progressive_carries": 2,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.559,
            "bench_expected_minutes": 25.29,
            "projected_substitution_order": 2,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.427,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0257,
            "projected_assists": 0,
            "assist_probability": 0.0225,
            "finishing_factor": 1.0599,
            "creation_factor": 0.8,
            "fifa_overall": 71.0
          },
          "latest_10_games": [
            {
              "match_id": 16421073,
              "match_date": "2026-10-18",
              "home_team": "Málaga CF",
              "away_team": "Real Sociedad",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Málaga CF",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 22,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0963,
                "expected_assists": 0.3045,
                "total_shots": 2,
                "shots_on_target": 1,
                "total_pass": 8,
                "accurate_pass": 5,
                "key_pass": 2,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421062,
              "match_date": "2026-10-09",
              "home_team": "Málaga CF",
              "away_team": "Espanyol",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 62,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0888,
                "total_shots": 0,
                "total_pass": 13,
                "accurate_pass": 10,
                "key_pass": 1,
                "interceptions": 1,
                "duels_won": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416303,
              "match_date": "2026-09-20",
              "home_team": "Getafe",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Getafe",
              "stats": {
                "minutes": 67,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0607,
                "expected_assists": 0.0834,
                "total_shots": 1,
                "total_pass": 12,
                "accurate_pass": 6,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416338,
              "match_date": "2026-09-17",
              "home_team": "Málaga CF",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Málaga CF",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 29,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0174,
                "expected_assists": 0.0067,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 8,
                "accurate_pass": 5,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416347,
              "match_date": "2026-09-13",
              "home_team": "Celta Vigo",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 61,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0269,
                "expected_assists": 0.0167,
                "total_shots": 1,
                "total_pass": 11,
                "accurate_pass": 11,
                "tackles": 1,
                "interceptions": 1,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416320,
              "match_date": "2026-09-06",
              "home_team": "Málaga CF",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Málaga CF",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 31,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0598,
                "total_shots": 0,
                "total_pass": 11,
                "accurate_pass": 9,
                "key_pass": 2,
                "duels_won": 2,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416312,
              "match_date": "2026-08-30",
              "home_team": "Real Madrid",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 61,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0216,
                "expected_assists": 0.0675,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 17,
                "accurate_pass": 16,
                "key_pass": 1,
                "clearances": 1,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416307,
              "match_date": "2026-08-24",
              "home_team": "Málaga CF",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 73,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.029,
                "expected_assists": 0.0199,
                "total_shots": 1,
                "total_pass": 19,
                "accurate_pass": 17,
                "tackles": 2,
                "tackles_won": 2,
                "duels_won": 6,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421055,
              "match_date": "2026-08-19",
              "home_team": "Atlético Madrid",
              "away_team": "Málaga CF",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Málaga CF",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 67,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0255,
                "total_shots": 0,
                "total_pass": 23,
                "accurate_pass": 18,
                "tackles": 1,
                "duels_won": 7,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 4788,
            "combined_rank_score": 2863.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 698.0,
            "sofascore_rating": 6.7,
            "sofascore_appearances": 1.0,
            "fifa_rank": 5029.0,
            "fifa_overall": 71.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 13,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.665,
            "source_file": "data/player_rankings.csv",
            "player_name": "Joaquín Muñoz",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Jorge Ruvalcaba",
                  "ranking": 4783
                },
                {
                  "player_name": "Luca Langoni",
                  "ranking": 4784
                },
                {
                  "player_name": "John Victor",
                  "ranking": 4785
                },
                {
                  "player_name": "Diego Luna",
                  "ranking": 4786
                },
                {
                  "player_name": "Rafael Navarro",
                  "ranking": 4787
                }
              ],
              "lower": [
                {
                  "player_name": "Odin Luraas Bjørtuft",
                  "ranking": 4789
                },
                {
                  "player_name": "Harry Milne",
                  "ranking": 4790
                },
                {
                  "player_name": "Auston Trusty",
                  "ranking": 4791
                },
                {
                  "player_name": "Cameron Devlin",
                  "ranking": 4792
                },
                {
                  "player_name": "Reo Hatate",
                  "ranking": 4793
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.75,
          "history_matches": 9,
          "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",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "expectedGoals",
              "goals",
              "rating",
              "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",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 9,
            "data_confidence": 0.75,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 25.292222187561247,
            "bench_appearance_prob": 0.5587373721618749,
            "market_value_adjustment": 0.9928,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost F_service (9 historical appearances) to 25.3 expected mins (appearance prob 0.56)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.0609,
                "goals": 0.0675,
                "goal_rate": 0.0675,
                "shots_on_target": 0.2468,
                "total_shots": 0.6198,
                "expected_assists": 0.0496,
                "key_pass": 0.4576,
                "rating": 6.665,
                "minutes": 24.1,
                "total_pass": 8.8426,
                "accurate_pass": 6.1234,
                "duels_won": 1.2809,
                "total_long_balls": 0.6113,
                "accurate_long_balls": 0.2809,
                "total_opp_half_passes": 7.3392,
                "accurate_opp_half_passes": 4.9505,
                "crosses_total": 0.6113,
                "crosses_accurate": 0.0,
                "touches": 15.6783,
                "possession_lost": 5.6113,
                "dispossessed": 0.2809,
                "duels_lost": 2.2225,
                "aerial_lost": 0.0,
                "total_contest": 2.3304,
                "won_contest": 1.0,
                "ball_recovery": 1.2313,
                "challenges_lost": 0.3304,
                "fouls": 0.2809,
                "fouls_drawn": 0.2809,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.0,
                "clearances": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0186,
                "offsides": 0.0,
                "ball_carries": 6.0,
                "total_progression": 41.4616,
                "progressive_carries": 2.1079,
                "shots_off_target": 0.373
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 6,
                  "trained_at": "2026-10-23T10:05:54.625928+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 611,
                    "rows": 16533
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Real Sociedad",
                    "minutes": 22.0,
                    "is_starting": false,
                    "weight": 0.1952,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-10-09",
                    "opponent": "Espanyol",
                    "minutes": 62.0,
                    "is_starting": true,
                    "weight": 0.1659,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Getafe",
                    "minutes": 67.0,
                    "is_starting": true,
                    "weight": 0.141,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Villarreal",
                    "minutes": 29.0,
                    "is_starting": false,
                    "weight": 0.1199,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Celta Vigo",
                    "minutes": 61.0,
                    "is_starting": true,
                    "weight": 0.1019,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Levante UD",
                    "minutes": 31.0,
                    "is_starting": false,
                    "weight": 0.0866,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Real Madrid",
                    "minutes": 61.0,
                    "is_starting": true,
                    "weight": 0.0736,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-24",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 73.0,
                    "is_starting": true,
                    "weight": 0.0626,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-19",
                    "opponent": "Atlético Madrid",
                    "minutes": 67.0,
                    "is_starting": true,
                    "weight": 0.0532,
                    "rating": 6.7
                  }
                ],
                "feature_row": {
                  "history_matches": 9.0,
                  "is_starting_11": 0.0,
                  "expectedGoals": 0.0356,
                  "totalOppositionHalfPasses": 10.135,
                  "accurateOppositionHalfPasses": 7.7254,
                  "accuratePass": 9.181,
                  "totalShots": 0.8895
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.060894548892974854,
                    "model_output": 0.0609,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2858
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0881
                      },
                      {
                        "name": "goals",
                        "importance": 0.0357
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0272
                      },
                      {
                        "name": "bigChanceMissed",
                        "importance": 0.0231
                      }
                    ],
                    "decomposition": {
                      "base": 0.1979,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0847
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.02
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0083
                        },
                        {
                          "name": "goals",
                          "contribution": -0.0074
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": -0.0044
                        }
                      ],
                      "others": -0.0122,
                      "total": 0.0609,
                      "log_link": true,
                      "margin_base": -1.619934,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.558856
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.194167
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": -0.093852
                        },
                        {
                          "name": "goals",
                          "margin": -0.090715
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": -0.058258
                        }
                      ],
                      "others_margin": -0.182829
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.06746992468833923,
                    "model_output": 0.0675,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1497
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0696
                      },
                      {
                        "name": "goals",
                        "importance": 0.0577
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0307
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0286
                      }
                    ],
                    "decomposition": {
                      "base": 0.2023,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.077
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0175
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0088
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": -0.0078
                        },
                        {
                          "name": "goals",
                          "contribution": -0.0052
                        }
                      ],
                      "others": -0.0185,
                      "total": 0.0675,
                      "log_link": true,
                      "margin_base": -1.597983,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.478733
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.150177
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": -0.085416
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": -0.081919
                        },
                        {
                          "name": "goals",
                          "margin": -0.058652
                        }
                      ],
                      "others_margin": -0.243194
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.24675241112709045,
                    "model_output": 0.2468,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2171
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0661
                      },
                      {
                        "name": "goals",
                        "importance": 0.0553
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0475
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0308
                      }
                    ],
                    "decomposition": {
                      "base": 0.5362,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1954
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0314
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.019
                        },
                        {
                          "name": "goals",
                          "contribution": -0.0142
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": 0.01
                        }
                      ],
                      "others": -0.0394,
                      "total": 0.2468,
                      "log_link": true,
                      "margin_base": -0.623262,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.453089
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.096804
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.063272
                        },
                        {
                          "name": "goals",
                          "margin": -0.049981
                        },
                        {
                          "name": "ballRecovery",
                          "margin": 0.035555
                        }
                      ],
                      "others_margin": -0.148517
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.6197428107261658,
                    "model_output": 0.6197,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2864
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0656
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.051
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.031
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0298
                      }
                    ],
                    "decomposition": {
                      "base": 1.3807,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.4669
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.1317
                        },
                        {
                          "name": "goals",
                          "contribution": -0.0509
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0233
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.023
                        }
                      ],
                      "others": -0.1118,
                      "total": 0.6197,
                      "log_link": false,
                      "margin_base": 1.380749,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.466854
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.131696
                        },
                        {
                          "name": "goals",
                          "margin": -0.050928
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.023324
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.022982
                        }
                      ],
                      "others_margin": -0.11187
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.04960735887289047,
                    "model_output": 0.0496,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.1157
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0645
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0607
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0558
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 0.0644,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.021
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.0041
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0039
                        },
                        {
                          "name": "aerialWon",
                          "contribution": 0.0022
                        },
                        {
                          "name": "rating",
                          "contribution": -0.002
                        }
                      ],
                      "others": 0.0062,
                      "total": 0.0496,
                      "log_link": true,
                      "margin_base": -2.741965,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.393262
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.098328
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.095106
                        },
                        {
                          "name": "aerialWon",
                          "margin": 0.048454
                        },
                        {
                          "name": "rating",
                          "margin": -0.045773
                        }
                      ],
                      "others_margin": 0.132151
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.4576026201248169,
                    "model_output": 0.4576,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1481
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1244
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.1112
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.052
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0395
                      }
                    ],
                    "decomposition": {
                      "base": 0.6805,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2448
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0267
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.022
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0202
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0128
                        }
                      ],
                      "others": 0.0246,
                      "total": 0.4576,
                      "log_link": true,
                      "margin_base": -0.384987,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.445978
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.059529
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.048821
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.046884
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": 0.029915
                        }
                      ],
                      "others_margin": 0.055472
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.664977550506592,
                    "model_output": 6.665,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.059
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0483
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0421
                      },
                      {
                        "name": "rating",
                        "importance": 0.0418
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0415
                      }
                    ],
                    "decomposition": {
                      "base": 6.7683,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.069
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0218
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0217
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": 0.0114
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0107
                        }
                      ],
                      "others": -0.0349,
                      "total": 6.665,
                      "log_link": false,
                      "margin_base": 6.768281,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.068996
                        },
                        {
                          "name": "rating",
                          "margin": -0.02183
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.021741
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": 0.011398
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.010678
                        }
                      ],
                      "others_margin": -0.034938
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "substitute",
                  "history_matches": 9,
                  "role_matches": 3,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "role_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9928, quality 0.437)",
              "stats": {
                "expected_goals": 0.0605,
                "goals": 0.067,
                "goal_rate": 0.067,
                "shots_on_target": 0.245,
                "total_shots": 0.6153,
                "expected_assists": 0.0493,
                "key_pass": 0.4543,
                "rating": 6.665,
                "minutes": 24.1,
                "total_pass": 8.7789,
                "accurate_pass": 6.0793,
                "duels_won": 1.2717,
                "total_long_balls": 0.6069,
                "accurate_long_balls": 0.2789,
                "total_opp_half_passes": 7.2864,
                "accurate_opp_half_passes": 4.9149,
                "crosses_total": 0.6069,
                "crosses_accurate": 0.0,
                "touches": 15.5654,
                "possession_lost": 5.5709,
                "dispossessed": 0.2789,
                "duels_lost": 2.2065,
                "aerial_lost": 0.0,
                "total_contest": 2.3136,
                "won_contest": 0.9928,
                "ball_recovery": 1.2224,
                "challenges_lost": 0.328,
                "fouls": 0.2789,
                "fouls_drawn": 0.2789,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.0,
                "clearances": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0185,
                "offsides": 0.0,
                "ball_carries": 5.9568,
                "total_progression": 41.1631,
                "progressive_carries": 2.0927,
                "shots_off_target": 0.3703
              },
              "params": {
                "market_value_eur": 1900000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9928,
                "reference_quality": 0.505,
                "history_matches": 9,
                "history_shrink": 0.3571,
                "market_value_known": true
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 24.1 to 25.3 expected minutes (appearance prob 0.56)",
              "stats": {
                "expected_goals": 0.0635,
                "goals": 0.0703,
                "goal_rate": 0.0703,
                "shots_on_target": 0.2571,
                "total_shots": 0.6457,
                "expected_assists": 0.0517,
                "key_pass": 0.4768,
                "rating": 6.665,
                "minutes": 25.29,
                "total_pass": 9.2132,
                "accurate_pass": 6.38,
                "duels_won": 1.3346,
                "total_long_balls": 0.6369,
                "accurate_long_balls": 0.2927,
                "total_opp_half_passes": 7.6469,
                "accurate_opp_half_passes": 5.158,
                "crosses_total": 0.6369,
                "crosses_accurate": 0.0,
                "touches": 16.3354,
                "possession_lost": 5.8465,
                "dispossessed": 0.2789,
                "duels_lost": 2.3157,
                "aerial_lost": 0.0,
                "total_contest": 2.4281,
                "won_contest": 1.0419,
                "ball_recovery": 1.2829,
                "challenges_lost": 0.328,
                "fouls": 0.2927,
                "fouls_drawn": 0.2927,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.0,
                "clearances": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0194,
                "offsides": 0.0,
                "ball_carries": 6.2515,
                "total_progression": 43.1994,
                "progressive_carries": 2.1962,
                "shots_off_target": 0.3886,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29
              },
              "params": {
                "expected_minutes": 25.29,
                "projection_minutes": 24.1,
                "minutes_scale": 1.0495,
                "appearance_probability": 0.559
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0635,
                "goals": 0.0703,
                "goal_rate": 0.0703,
                "shots_on_target": 0.2571,
                "total_shots": 0.6457,
                "expected_assists": 0.0517,
                "key_pass": 0.4768,
                "rating": 6.665,
                "minutes": 25.29,
                "total_pass": 9.2132,
                "accurate_pass": 6.38,
                "duels_won": 1.3346,
                "total_long_balls": 0.6369,
                "accurate_long_balls": 0.2927,
                "total_opp_half_passes": 7.6469,
                "accurate_opp_half_passes": 5.158,
                "crosses_total": 0.6369,
                "crosses_accurate": 0.0,
                "touches": 16.3354,
                "possession_lost": 5.8465,
                "dispossessed": 0.2789,
                "duels_lost": 2.3157,
                "aerial_lost": 0.0,
                "total_contest": 2.4281,
                "won_contest": 1.0419,
                "ball_recovery": 1.2829,
                "challenges_lost": 0.328,
                "fouls": 0.2927,
                "fouls_drawn": 0.2927,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.0,
                "clearances": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0194,
                "offsides": 0.0,
                "ball_carries": 6.2515,
                "total_progression": 43.1994,
                "progressive_carries": 2.1962,
                "shots_off_target": 0.3886,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "expected_goals": 0.0635,
                "goal_rate": 0.0703,
                "goals": 0,
                "shots_on_target": 0.2571,
                "total_shots": 0.6457,
                "expected_assists": 0.0517,
                "key_pass": 0.4768,
                "rating": 6.665,
                "minutes": 25.29,
                "total_pass": 9.2132,
                "accurate_pass": 6.38,
                "duels_won": 1.3346,
                "total_long_balls": 0.6369,
                "accurate_long_balls": 0.2927,
                "total_opp_half_passes": 7.6469,
                "accurate_opp_half_passes": 5.158,
                "crosses_total": 0.6369,
                "crosses_accurate": 0.0,
                "touches": 16.3354,
                "possession_lost": 5.8465,
                "dispossessed": 0.2789,
                "duels_lost": 2.3157,
                "aerial_lost": 0.0,
                "total_contest": 2.4281,
                "won_contest": 1.0419,
                "ball_recovery": 1.2829,
                "challenges_lost": 0.328,
                "fouls": 0.2927,
                "fouls_drawn": 0.2927,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.0,
                "clearances": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0194,
                "offsides": 0.0,
                "ball_carries": 6.2515,
                "total_progression": 43.1994,
                "progressive_carries": 2.1962,
                "shots_off_target": 0.3886,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "scoreline_reset": true,
                "team_goals": 0
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.87 (squad xG sum 1.1744, xG scale 0.7400, xA scale 0.7968, team xA 0.56 = 0.65 x lambda)",
              "stats": {
                "expected_goals": 0.0263,
                "goal_rate": 0.0703,
                "goals": 0,
                "shots_on_target": 0.2571,
                "total_shots": 0.6457,
                "expected_assists": 0.023,
                "key_pass": 0.4768,
                "rating": 6.665,
                "minutes": 25.29,
                "total_pass": 9.2132,
                "accurate_pass": 6.38,
                "duels_won": 1.3346,
                "total_long_balls": 0.6369,
                "accurate_long_balls": 0.2927,
                "total_opp_half_passes": 7.6469,
                "accurate_opp_half_passes": 5.158,
                "crosses_total": 0.6369,
                "crosses_accurate": 0.0,
                "touches": 16.3354,
                "possession_lost": 5.8465,
                "dispossessed": 0.2789,
                "duels_lost": 2.3157,
                "aerial_lost": 0.0,
                "total_contest": 2.4281,
                "won_contest": 1.0419,
                "ball_recovery": 1.2829,
                "challenges_lost": 0.328,
                "fouls": 0.2927,
                "fouls_drawn": 0.2927,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.0,
                "clearances": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.008,
                "offsides": 0.0,
                "ball_carries": 6.2515,
                "total_progression": 43.1994,
                "progressive_carries": 2.1962,
                "shots_off_target": 0.3886,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0599,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 0.869,
                "squad_xg_sum": 1.1744,
                "squad_xa_sum": 0.7089,
                "team_expected_assists": 0.5648,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.74,
                "xa_scale": 0.7968,
                "opponent_lambda": 1.257,
                "scoreline_reset": true,
                "appearance_weight": 0.559
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0635,
                  "after": 0.0263
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0517,
                  "after": 0.023
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 71.0)",
              "stats": {
                "expected_goals": 0.0263,
                "goal_rate": 0.0703,
                "goals": 0,
                "shots_on_target": 0.2571,
                "total_shots": 0.6457,
                "expected_assists": 0.023,
                "key_pass": 0.4768,
                "rating": 6.665,
                "minutes": 25.29,
                "total_pass": 9.2132,
                "accurate_pass": 6.38,
                "duels_won": 1.3346,
                "total_long_balls": 0.6369,
                "accurate_long_balls": 0.2927,
                "total_opp_half_passes": 7.6469,
                "accurate_opp_half_passes": 5.158,
                "crosses_total": 0.6369,
                "crosses_accurate": 0.0,
                "touches": 16.3354,
                "possession_lost": 5.8465,
                "dispossessed": 0.2789,
                "duels_lost": 2.3157,
                "aerial_lost": 0.0,
                "total_contest": 2.4281,
                "won_contest": 1.0419,
                "ball_recovery": 1.2829,
                "challenges_lost": 0.328,
                "fouls": 0.2927,
                "fouls_drawn": 0.2927,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.0,
                "clearances": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.008,
                "offsides": 0.0,
                "ball_carries": 6.2515,
                "total_progression": 43.1994,
                "progressive_carries": 2.1962,
                "shots_off_target": 0.3886,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0599,
                "creation_factor": 0.8,
                "fifa_overall": 71.0
              },
              "params": {
                "match_squad_rank": 13,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 4788,
                "fifa_rank": 5029.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 71.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "expected_goals": 0.0263,
                "goal_rate": 0.0703,
                "goals": 0,
                "shots_on_target": 0.2571,
                "total_shots": 0.6457,
                "expected_assists": 0.023,
                "key_pass": 0.4768,
                "rating": 6.665,
                "minutes": 25.29,
                "total_pass": 9.2132,
                "accurate_pass": 6.38,
                "duels_won": 1.3346,
                "total_long_balls": 0.6369,
                "accurate_long_balls": 0.2927,
                "total_opp_half_passes": 7.6469,
                "accurate_opp_half_passes": 5.158,
                "crosses_total": 0.6369,
                "crosses_accurate": 0.0,
                "touches": 16.3354,
                "possession_lost": 5.8465,
                "dispossessed": 0.2789,
                "duels_lost": 2.3157,
                "aerial_lost": 0.0,
                "total_contest": 2.4281,
                "won_contest": 1.0419,
                "ball_recovery": 1.2829,
                "challenges_lost": 0.328,
                "fouls": 0.2927,
                "fouls_drawn": 0.2927,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.0,
                "clearances": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.008,
                "offsides": 0.0,
                "ball_carries": 6.2515,
                "total_progression": 43.1994,
                "progressive_carries": 2.1962,
                "shots_off_target": 0.3886,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0257,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0599,
                "creation_factor": 0.8,
                "fifa_overall": 71.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0257,
                "goal_rate": 0.0703,
                "scorer_weight": 0.0279,
                "squad_weight_total": 0.91,
                "weight_share": 0.0306,
                "finishing_factor": 1.0599,
                "appearance_weight": 0.559,
                "weight_rank": 9,
                "eligible_players": 13
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "expected_goals": 0.0263,
                "goal_rate": 0.0703,
                "goals": 0,
                "shots_on_target": 0.2571,
                "total_shots": 0.6457,
                "expected_assists": 0.023,
                "key_pass": 0.4768,
                "rating": 6.665,
                "minutes": 25.29,
                "total_pass": 9.2132,
                "accurate_pass": 6.38,
                "duels_won": 1.3346,
                "total_long_balls": 0.6369,
                "accurate_long_balls": 0.2927,
                "total_opp_half_passes": 7.6469,
                "accurate_opp_half_passes": 5.158,
                "crosses_total": 0.6369,
                "crosses_accurate": 0.0,
                "touches": 16.3354,
                "possession_lost": 5.8465,
                "dispossessed": 0.2789,
                "duels_lost": 2.3157,
                "aerial_lost": 0.0,
                "total_contest": 2.4281,
                "won_contest": 1.0419,
                "ball_recovery": 1.2829,
                "challenges_lost": 0.328,
                "fouls": 0.2927,
                "fouls_drawn": 0.2927,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.0,
                "clearances": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.008,
                "offsides": 0.0,
                "ball_carries": 6.2515,
                "total_progression": 43.1994,
                "progressive_carries": 2.1962,
                "shots_off_target": 0.3886,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0257,
                "projected_assists": 0,
                "assist_probability": 0.0225,
                "finishing_factor": 1.0599,
                "creation_factor": 0.8,
                "fifa_overall": 71.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0225,
                "assist_rate": 0.0,
                "provider_weight": 0.0184,
                "squad_weight_total": 0.5067,
                "weight_share": 0.0363,
                "creation_factor": 0.8,
                "appearance_weight": 0.559,
                "weight_rank": 9,
                "eligible_players": 13
              }
            }
          ]
        },
        "Jens-Lys Cajuste": {
          "player_id": 857671,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 2,
          "height": 188,
          "market_value": 6600000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0065,
            "assist_rate": 0.0336,
            "assists": 0,
            "expected_goals": 0.012,
            "goal_rate": 0.0571,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 0,
            "rating": 6.6643,
            "minutes": 22,
            "total_pass": 8,
            "accurate_pass": 7,
            "duels_won": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 4,
            "accurate_own_half_passes": 4,
            "total_opp_half_passes": 4,
            "accurate_opp_half_passes": 3,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 10,
            "possession_lost": 1.4052,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_won": 0,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 1,
            "tackles": 1,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 3,
            "total_progression": 6,
            "progressive_carries": 0,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.507,
            "bench_expected_minutes": 22.15,
            "projected_substitution_order": 3,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.427,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0119,
            "projected_assists": 0,
            "assist_probability": 0.0065,
            "finishing_factor": 1.25,
            "creation_factor": 1.25,
            "fifa_overall": 73.0
          },
          "latest_10_games": [
            {
              "match_id": 16416320,
              "match_date": "2026-09-06",
              "home_team": "Málaga CF",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Málaga CF",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 9,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0005,
                "total_shots": 0,
                "total_pass": 6,
                "accurate_pass": 5,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 3806,
            "combined_rank_score": 1806.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 3437.0,
            "fifa_overall": 73.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 14,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.6643,
            "source_file": "data/player_rankings.csv",
            "player_name": "Jens-Lys Cajuste",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Bartłomiej Drągowski",
                  "ranking": 3801
                },
                {
                  "player_name": "Eliesse Ben Seghir",
                  "ranking": 3802
                },
                {
                  "player_name": "Roony Bardghji",
                  "ranking": 3803
                },
                {
                  "player_name": "Nilson Angulo",
                  "ranking": 3804
                },
                {
                  "player_name": "James McAtee",
                  "ranking": 3805
                }
              ],
              "lower": [
                {
                  "player_name": "Yáser Asprilla",
                  "ranking": 3807
                },
                {
                  "player_name": "Stephen Eustaquio",
                  "ranking": 3808
                },
                {
                  "player_name": "Darío Osorio",
                  "ranking": 3809
                },
                {
                  "player_name": "Josh Sargent",
                  "ranking": 3810
                },
                {
                  "player_name": "Haris Hajradinović",
                  "ranking": 3811
                }
              ]
            }
          },
          "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",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "rating",
              "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",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 1,
            "data_confidence": 0.312,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 22.147767132293673,
            "bench_appearance_prob": 0.5067166878315306,
            "market_value_adjustment": 0.9942,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost M_service (1 historical appearances) to 22.1 expected mins (appearance prob 0.51)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 0.2246,
                "expected_assists": 0.0114,
                "assists": 0.0239,
                "assist_rate": 0.0239,
                "expected_goals": 0.0228,
                "goals": 0.0406,
                "goal_rate": 0.0406,
                "shots_on_target": 0.0787,
                "total_shots": 0.2566,
                "rating": 6.6643,
                "minutes": 15.67,
                "total_pass": 6.0,
                "accurate_pass": 5.0,
                "duels_won": 1.0,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_own_half_passes": 3.0,
                "accurate_own_half_passes": 3.0,
                "total_opp_half_passes": 3.0,
                "accurate_opp_half_passes": 2.0,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 7.0,
                "possession_lost": 1.0,
                "dispossessed": 0.0,
                "duels_lost": 0.0,
                "aerial_won": 0.0,
                "aerial_lost": 0.0,
                "interceptions": 0.0,
                "tackles_won": 1.0,
                "tackles": 1.0,
                "clearances": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 2.0,
                "total_progression": 4.2118,
                "progressive_carries": 0.0,
                "shots_off_target": 0.1779
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 7,
                  "trained_at": "2026-10-23T10:05:23.571433+00:00",
                  "trained_on": {
                    "matches": 1391,
                    "players": 903,
                    "rows": 24475
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Levante UD",
                    "minutes": 9.0,
                    "is_starting": false,
                    "weight": 1.0,
                    "rating": 6.7
                  }
                ],
                "feature_row": {
                  "history_matches": 1.0,
                  "is_starting_11": 0.0,
                  "creative_index": 0.0003,
                  "totalShots": 0.0,
                  "expectedGoals": 0.0,
                  "expectedAssists": 0.0005,
                  "onTargetScoringAttempt": 0.0
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.2246042639017105,
                    "model_output": 0.2246,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1647
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1377
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0663
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0524
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0316
                      }
                    ],
                    "decomposition": {
                      "base": 0.8945,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.4456
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0581
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0383
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0328
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0291
                        }
                      ],
                      "others": -0.066,
                      "total": 0.2246,
                      "log_link": true,
                      "margin_base": -0.111507,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.689397
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.138484
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.103229
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.097561
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": -0.09538
                        }
                      ],
                      "others_margin": -0.257857
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.011418403126299381,
                    "model_output": 0.0114,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1545
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1048
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.1021
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0476
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0472
                      }
                    ],
                    "decomposition": {
                      "base": 0.0859,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0411
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0116
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0077
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0031
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.002
                        }
                      ],
                      "others": -0.009,
                      "total": 0.0114,
                      "log_link": true,
                      "margin_base": -2.454719,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.650563
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.298697
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.263878
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.13116
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.093994
                        }
                      ],
                      "others_margin": -0.579521
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.0239360760897398,
                    "model_output": 0.0239,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.0619
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0395
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0343
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0335
                      }
                    ],
                    "decomposition": {
                      "base": 0.0874,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0232
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.013
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0094
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0073
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": -0.0024
                        }
                      ],
                      "others": -0.0082,
                      "total": 0.0239,
                      "log_link": true,
                      "margin_base": -2.437263,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.309243
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.22713
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.202853
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.192496
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": -0.071326
                        }
                      ],
                      "others_margin": -0.292059
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.02282029204070568,
                    "model_output": 0.0228,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedGoals",
                        "importance": 0.134
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.074
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0705
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.039
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0273
                      }
                    ],
                    "decomposition": {
                      "base": 0.094,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0362
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0188
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0093
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0038
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": 0.0029
                        }
                      ],
                      "others": -0.006,
                      "total": 0.0228,
                      "log_link": true,
                      "margin_base": -2.364919,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.486251
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.39299
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.272593
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.136533
                        },
                        {
                          "name": "interceptionWon",
                          "margin": 0.10507
                        }
                      ],
                      "others_margin": -0.231888
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.040619347244501114,
                    "model_output": 0.0406,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0974
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0527
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0513
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0365
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.03
                      }
                    ],
                    "decomposition": {
                      "base": 0.0993,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0339
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0145
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0073
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0047
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0026
                        }
                      ],
                      "others": 0.0043,
                      "total": 0.0406,
                      "log_link": true,
                      "margin_base": -2.309444,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.417746
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.251313
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.154249
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.112963
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.069564
                        }
                      ],
                      "others_margin": 0.111769
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.07872195541858673,
                    "model_output": 0.0787,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1106
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0885
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0762
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0292
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0279
                      }
                    ],
                    "decomposition": {
                      "base": 0.326,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1425
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0589
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0275
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0183
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0106
                        }
                      ],
                      "others": -0.0107,
                      "total": 0.0787,
                      "log_link": true,
                      "margin_base": -1.120773,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.574432
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.386635
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.249342
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.208635
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.126619
                        }
                      ],
                      "others_margin": -0.128634
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.25658538937568665,
                    "model_output": 0.2566,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1261
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1167
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0633
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0419
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.9969,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.3708
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.239
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0502
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0276
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0259
                        }
                      ],
                      "others": -0.0268,
                      "total": 0.2566,
                      "log_link": false,
                      "margin_base": 0.996896,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.370769
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.238969
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.050176
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.027578
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.02588
                        }
                      ],
                      "others_margin": -0.026937
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.664326190948486,
                    "model_output": 6.6643,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "rating",
                        "importance": 0.0947
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0836
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0491
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0438
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.036
                      }
                    ],
                    "decomposition": {
                      "base": 6.8561,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.081
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0443
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0225
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.0135
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0121
                        }
                      ],
                      "others": -0.0184,
                      "total": 6.6643,
                      "log_link": false,
                      "margin_base": 6.856052,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.080971
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.044331
                        },
                        {
                          "name": "rating",
                          "margin": -0.022539
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.013493
                        },
                        {
                          "name": "totalPass",
                          "margin": -0.012112
                        }
                      ],
                      "others_margin": -0.01828
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "substitute",
                  "history_matches": 1,
                  "role_matches": 1,
                  "minutes_source": "role_history_shrunk",
                  "volume_basis": "all_history"
                },
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the recency-weighted average of his appearances in this role (starter / substitute). Missing provider values count as 0 only when the provider recorded that stat for the match."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9942, quality 0.482)",
              "stats": {
                "key_pass": 0.2233,
                "expected_assists": 0.0114,
                "assists": 0.0238,
                "assist_rate": 0.0238,
                "expected_goals": 0.0227,
                "goals": 0.0404,
                "goal_rate": 0.0404,
                "shots_on_target": 0.0783,
                "total_shots": 0.2552,
                "rating": 6.6643,
                "minutes": 15.67,
                "total_pass": 5.9652,
                "accurate_pass": 4.971,
                "duels_won": 0.9942,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_own_half_passes": 2.9826,
                "accurate_own_half_passes": 2.9826,
                "total_opp_half_passes": 2.9826,
                "accurate_opp_half_passes": 1.9884,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 6.9594,
                "possession_lost": 0.9942,
                "dispossessed": 0.0,
                "duels_lost": 0.0,
                "aerial_won": 0.0,
                "aerial_lost": 0.0,
                "interceptions": 0.0,
                "tackles_won": 0.9942,
                "tackles": 0.9942,
                "clearances": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 1.9884,
                "total_progression": 4.1874,
                "progressive_carries": 0.0,
                "shots_off_target": 0.1769
              },
              "params": {
                "market_value_eur": 6600000,
                "quality_factor": 0.4818,
                "boost_factor": 0.9942,
                "reference_quality": 0.505,
                "history_matches": 1,
                "history_shrink": 0.8333,
                "market_value_known": true
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 15.7 to 22.1 expected minutes (appearance prob 0.51)",
              "stats": {
                "key_pass": 0.3156,
                "expected_assists": 0.0161,
                "assists": 0.0336,
                "assist_rate": 0.0336,
                "expected_goals": 0.0321,
                "goals": 0.0571,
                "goal_rate": 0.0571,
                "shots_on_target": 0.1107,
                "total_shots": 0.3607,
                "rating": 6.6643,
                "minutes": 22.15,
                "total_pass": 8.4311,
                "accurate_pass": 7.0259,
                "duels_won": 1.4052,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_own_half_passes": 4.2156,
                "accurate_own_half_passes": 4.2156,
                "total_opp_half_passes": 4.2156,
                "accurate_opp_half_passes": 2.8104,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 9.8363,
                "possession_lost": 1.4052,
                "dispossessed": 0.0,
                "duels_lost": 0.0,
                "aerial_won": 0.0,
                "aerial_lost": 0.0,
                "interceptions": 0.0,
                "tackles_won": 1.4052,
                "tackles": 1.4052,
                "clearances": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 2.8104,
                "total_progression": 5.9184,
                "progressive_carries": 0.0,
                "shots_off_target": 0.25,
                "bench_appearance_probability": 0.507,
                "bench_expected_minutes": 22.15
              },
              "params": {
                "expected_minutes": 22.15,
                "projection_minutes": 15.67,
                "minutes_scale": 1.4134,
                "appearance_probability": 0.507
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0.3156,
                "expected_assists": 0.0161,
                "assists": 0.0336,
                "assist_rate": 0.0336,
                "expected_goals": 0.0321,
                "goals": 0.0571,
                "goal_rate": 0.0571,
                "shots_on_target": 0.1107,
                "total_shots": 0.3607,
                "rating": 6.6643,
                "minutes": 22.15,
                "total_pass": 8.4311,
                "accurate_pass": 7.0259,
                "duels_won": 1.4052,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_own_half_passes": 4.2156,
                "accurate_own_half_passes": 4.2156,
                "total_opp_half_passes": 4.2156,
                "accurate_opp_half_passes": 2.8104,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 9.8363,
                "possession_lost": 1.4052,
                "dispossessed": 0.0,
                "duels_lost": 0.0,
                "aerial_won": 0.0,
                "aerial_lost": 0.0,
                "interceptions": 0.0,
                "tackles_won": 1.4052,
                "tackles": 1.4052,
                "clearances": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 2.8104,
                "total_progression": 5.9184,
                "progressive_carries": 0.0,
                "shots_off_target": 0.25,
                "bench_appearance_probability": 0.507,
                "bench_expected_minutes": 22.15
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 0 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "key_pass": 0.3156,
                "expected_assists": 0.0161,
                "assist_rate": 0.0336,
                "assists": 0,
                "expected_goals": 0.0321,
                "goal_rate": 0.0571,
                "goals": 0,
                "shots_on_target": 0.1107,
                "total_shots": 0.3607,
                "rating": 6.6643,
                "minutes": 22.15,
                "total_pass": 8.4311,
                "accurate_pass": 7.0259,
                "duels_won": 1.4052,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_own_half_passes": 4.2156,
                "accurate_own_half_passes": 4.2156,
                "total_opp_half_passes": 4.2156,
                "accurate_opp_half_passes": 2.8104,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 9.8363,
                "possession_lost": 1.4052,
                "dispossessed": 0.0,
                "duels_lost": 0.0,
                "aerial_won": 0.0,
                "aerial_lost": 0.0,
                "interceptions": 0.0,
                "tackles_won": 1.4052,
                "tackles": 1.4052,
                "clearances": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 2.8104,
                "total_progression": 5.9184,
                "progressive_carries": 0.0,
                "shots_off_target": 0.25,
                "bench_appearance_probability": 0.507,
                "bench_expected_minutes": 22.15,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "scoreline_reset": true,
                "team_goals": 0
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 0.87 (squad xG sum 1.1744, xG scale 0.7400, xA scale 0.7968, team xA 0.56 = 0.65 x lambda)",
              "stats": {
                "key_pass": 0.3156,
                "expected_assists": 0.0065,
                "assist_rate": 0.0336,
                "assists": 0,
                "expected_goals": 0.012,
                "goal_rate": 0.0571,
                "goals": 0,
                "shots_on_target": 0.1107,
                "total_shots": 0.3607,
                "rating": 6.6643,
                "minutes": 22.15,
                "total_pass": 8.4311,
                "accurate_pass": 7.0259,
                "duels_won": 1.4052,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_own_half_passes": 4.2156,
                "accurate_own_half_passes": 4.2156,
                "total_opp_half_passes": 4.2156,
                "accurate_opp_half_passes": 2.8104,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 9.8363,
                "possession_lost": 1.4052,
                "dispossessed": 0.0,
                "duels_lost": 0.0,
                "aerial_won": 0.0,
                "aerial_lost": 0.0,
                "interceptions": 0.0,
                "tackles_won": 1.4052,
                "tackles": 1.4052,
                "clearances": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 2.8104,
                "total_progression": 5.9184,
                "progressive_carries": 0.0,
                "shots_off_target": 0.25,
                "bench_appearance_probability": 0.507,
                "bench_expected_minutes": 22.15,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 1.25
              },
              "params": {
                "team_lambda": 0.869,
                "squad_xg_sum": 1.1744,
                "squad_xa_sum": 0.7089,
                "team_expected_assists": 0.5648,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.74,
                "xa_scale": 0.7968,
                "opponent_lambda": 1.257,
                "scoreline_reset": true,
                "appearance_weight": 0.507
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0321,
                  "after": 0.012
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0161,
                  "after": 0.0065
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 73.0)",
              "stats": {
                "key_pass": 0.3156,
                "expected_assists": 0.0065,
                "assist_rate": 0.0336,
                "assists": 0,
                "expected_goals": 0.012,
                "goal_rate": 0.0571,
                "goals": 0,
                "shots_on_target": 0.1107,
                "total_shots": 0.3607,
                "rating": 6.6643,
                "minutes": 22.15,
                "total_pass": 8.4311,
                "accurate_pass": 7.0259,
                "duels_won": 1.4052,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_own_half_passes": 4.2156,
                "accurate_own_half_passes": 4.2156,
                "total_opp_half_passes": 4.2156,
                "accurate_opp_half_passes": 2.8104,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 9.8363,
                "possession_lost": 1.4052,
                "dispossessed": 0.0,
                "duels_lost": 0.0,
                "aerial_won": 0.0,
                "aerial_lost": 0.0,
                "interceptions": 0.0,
                "tackles_won": 1.4052,
                "tackles": 1.4052,
                "clearances": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 2.8104,
                "total_progression": 5.9184,
                "progressive_carries": 0.0,
                "shots_off_target": 0.25,
                "bench_appearance_probability": 0.507,
                "bench_expected_minutes": 22.15,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 1.25,
                "fifa_overall": 73.0
              },
              "params": {
                "match_squad_rank": 14,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3806,
                "fifa_rank": 3437.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 73.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "key_pass": 0.3156,
                "expected_assists": 0.0065,
                "assist_rate": 0.0336,
                "assists": 0,
                "expected_goals": 0.012,
                "goal_rate": 0.0571,
                "goals": 0,
                "shots_on_target": 0.1107,
                "total_shots": 0.3607,
                "rating": 6.6643,
                "minutes": 22.15,
                "total_pass": 8.4311,
                "accurate_pass": 7.0259,
                "duels_won": 1.4052,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_own_half_passes": 4.2156,
                "accurate_own_half_passes": 4.2156,
                "total_opp_half_passes": 4.2156,
                "accurate_opp_half_passes": 2.8104,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 9.8363,
                "possession_lost": 1.4052,
                "dispossessed": 0.0,
                "duels_lost": 0.0,
                "aerial_won": 0.0,
                "aerial_lost": 0.0,
                "interceptions": 0.0,
                "tackles_won": 1.4052,
                "tackles": 1.4052,
                "clearances": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 2.8104,
                "total_progression": 5.9184,
                "progressive_carries": 0.0,
                "shots_off_target": 0.25,
                "bench_appearance_probability": 0.507,
                "bench_expected_minutes": 22.15,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0119,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 1.25,
                "fifa_overall": 73.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0119,
                "goal_rate": 0.0571,
                "scorer_weight": 0.015,
                "squad_weight_total": 0.91,
                "weight_share": 0.0165,
                "finishing_factor": 1.25,
                "appearance_weight": 0.507,
                "weight_rank": 11,
                "eligible_players": 13
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "key_pass": 0.3156,
                "expected_assists": 0.0065,
                "assist_rate": 0.0336,
                "assists": 0,
                "expected_goals": 0.012,
                "goal_rate": 0.0571,
                "goals": 0,
                "shots_on_target": 0.1107,
                "total_shots": 0.3607,
                "rating": 6.6643,
                "minutes": 22.15,
                "total_pass": 8.4311,
                "accurate_pass": 7.0259,
                "duels_won": 1.4052,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_own_half_passes": 4.2156,
                "accurate_own_half_passes": 4.2156,
                "total_opp_half_passes": 4.2156,
                "accurate_opp_half_passes": 2.8104,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 9.8363,
                "possession_lost": 1.4052,
                "dispossessed": 0.0,
                "duels_lost": 0.0,
                "aerial_won": 0.0,
                "aerial_lost": 0.0,
                "interceptions": 0.0,
                "tackles_won": 1.4052,
                "tackles": 1.4052,
                "clearances": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "ball_carries": 2.8104,
                "total_progression": 5.9184,
                "progressive_carries": 0.0,
                "shots_off_target": 0.25,
                "bench_appearance_probability": 0.507,
                "bench_expected_minutes": 22.15,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.427,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0119,
                "projected_assists": 0,
                "assist_probability": 0.0065,
                "finishing_factor": 1.25,
                "creation_factor": 1.25,
                "fifa_overall": 73.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0065,
                "assist_rate": 0.0336,
                "provider_weight": 0.0081,
                "squad_weight_total": 0.5067,
                "weight_share": 0.016,
                "creation_factor": 1.25,
                "appearance_weight": 0.507,
                "weight_rank": 11,
                "eligible_players": 13
              }
            }
          ]
        }
      },
      "team_totals": {
        "projected_goals": 0,
        "expected_goals": 0.87,
        "expected_assists": 0.56,
        "total_shots": 14,
        "shots_on_target": 2,
        "total_passes": 405,
        "interceptions": 8,
        "tackles": 17,
        "avg_rating": 6.83,
        "possession_estimated_pct": 49.7,
        "pressing_actions_per_90": 6.3
      }
    }
  },
  "antagonist_report": {
    "home_attacking_duels": [
      {
        "attacker": "Nahuel Tenaglia",
        "attacker_role": "LWB",
        "attacker_market_value": 3200000,
        "attacker_height": 182,
        "attacker_skill_quality": 0.44,
        "defenders": [
          "Rafa Garrido"
        ],
        "defender_roles": [
          "RB"
        ],
        "def_skill_quality_avg": 0.437,
        "duel_zone": "Left Wingback vs Right Back — Overlapping Run",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.457,
        "xg_contribution": 0.047,
        "xg_multiplier": 1.0834,
        "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": "Rafa Garrido",
            "role": "RB",
            "market_value": 1400000,
            "tackles_attempted": 1.9,
            "tackles_won": 1.5,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 0.9,
            "defensive_success_rate": 0.543
          }
        ],
        "duel_analysis": "Nahuel Tenaglia (LWB) is slightly favored against Rafa Garrido in a direct 1v1 contest. Duel win probability: 46%.  Matchup xG multiplier ×1.08 (×1.00 = his usual level). Projected xG contribution: 0.047 — creating consistent moderate threat."
      },
      {
        "attacker": "Ángel Pérez",
        "attacker_role": "CM",
        "attacker_market_value": 4600000,
        "attacker_height": 183,
        "attacker_skill_quality": 0.457,
        "defenders": [
          "Dani Lorenzo"
        ],
        "defender_roles": [
          "CM"
        ],
        "def_skill_quality_avg": 0.437,
        "duel_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.46,
        "xg_contribution": 0.1692,
        "xg_multiplier": 1.0584,
        "shots_in_zone": 1.7,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.8,
        "aerial_duels": 2,
        "aerial_won": 1.1,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.1,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Dani Lorenzo",
            "role": "CM",
            "market_value": 2300000,
            "tackles_attempted": 1.9,
            "tackles_won": 1.5,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 0.9,
            "defensive_success_rate": 0.54
          }
        ],
        "duel_analysis": "Ángel Pérez (CM) is evenly matched against Dani Lorenzo in a direct 1v1 contest. Duel win probability: 46%.  Matchup xG multiplier ×1.06 (×1.00 = his usual level). Projected xG contribution: 0.169 — with neither side clearly dominant."
      },
      {
        "attacker": "Antonio Blanco",
        "attacker_role": "CM",
        "attacker_market_value": 9700000,
        "attacker_height": 176,
        "attacker_skill_quality": 0.519,
        "defenders": [
          "Dani Lorenzo"
        ],
        "defender_roles": [
          "CM"
        ],
        "def_skill_quality_avg": 0.437,
        "duel_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.462,
        "xg_contribution": 0.0432,
        "xg_multiplier": 1.0623,
        "shots_in_zone": 1.7,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.8,
        "aerial_duels": 2,
        "aerial_won": 0.9,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.1,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Dani Lorenzo",
            "role": "CM",
            "market_value": 2300000,
            "tackles_attempted": 1.9,
            "tackles_won": 1.5,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 1.1,
            "defensive_success_rate": 0.538
          }
        ],
        "duel_analysis": "Antonio Blanco (CM) is slightly favored against Dani Lorenzo in a direct 1v1 contest. Duel win probability: 46%.  Matchup xG multiplier ×1.06 (×1.00 = his usual level). Projected xG contribution: 0.043 — creating consistent moderate threat."
      },
      {
        "attacker": "Lucas Boyé",
        "attacker_role": "ST",
        "attacker_market_value": 5300000,
        "attacker_height": 183,
        "attacker_skill_quality": 0.466,
        "defenders": [
          "Ángel Recio",
          "Fernando Calero"
        ],
        "defender_roles": [
          "CB",
          "CB"
        ],
        "def_skill_quality_avg": 0.437,
        "duel_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "numerical_situation": "1v2",
        "duel_win_rate": 0.209,
        "xg_contribution": 0.3169,
        "xg_multiplier": 1.0129,
        "shots_in_zone": 2.1,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.4,
        "aerial_duels": 3,
        "aerial_won": 1.7,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.4,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Ángel Recio",
            "role": "CB",
            "market_value": 1000000,
            "tackles_attempted": 1.0,
            "tackles_won": 0.9,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.6,
            "aerial_duels_won": 0.7,
            "defensive_success_rate": 0.791
          },
          {
            "player": "Fernando Calero",
            "role": "CB",
            "market_value": 2100000,
            "tackles_attempted": 1.0,
            "tackles_won": 0.9,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.6,
            "aerial_duels_won": 0.7,
            "defensive_success_rate": 0.791
          }
        ],
        "duel_analysis": "Lucas Boyé (ST) is evenly matched against Ángel Recio and Fernando Calero in a 2-defender block. Duel win probability: 21%.  Matchup xG multiplier ×1.01 (×1.00 = his usual level). Projected xG contribution: 0.317 — with neither side clearly dominant."
      },
      {
        "attacker": "Mariano Díaz",
        "attacker_role": "ST",
        "attacker_market_value": 480000,
        "attacker_height": 180,
        "attacker_skill_quality": 0.437,
        "defenders": [
          "Ángel Recio",
          "Fernando Calero"
        ],
        "defender_roles": [
          "CB",
          "CB"
        ],
        "def_skill_quality_avg": 0.437,
        "duel_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "numerical_situation": "1v2",
        "duel_win_rate": 0.184,
        "xg_contribution": 0.2317,
        "xg_multiplier": 0.9765,
        "shots_in_zone": 2.0,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.3,
        "aerial_duels": 3,
        "aerial_won": 1.6,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.4,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Ángel Recio",
            "role": "CB",
            "market_value": 1000000,
            "tackles_attempted": 1.0,
            "tackles_won": 0.9,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.6,
            "aerial_duels_won": 0.7,
            "defensive_success_rate": 0.816
          },
          {
            "player": "Fernando Calero",
            "role": "CB",
            "market_value": 2100000,
            "tackles_attempted": 1.0,
            "tackles_won": 0.9,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.6,
            "aerial_duels_won": 0.7,
            "defensive_success_rate": 0.816
          }
        ],
        "duel_analysis": "Mariano Díaz (ST) is evenly matched against Ángel Recio and Fernando Calero in a 2-defender block. Duel win probability: 18%.  Matchup xG multiplier ×0.98 (×1.00 = his usual level). Projected xG contribution: 0.232 — with neither side clearly dominant."
      },
      {
        "attacker": "Denis Suárez",
        "attacker_role": "CM",
        "attacker_market_value": 1100000,
        "attacker_height": 176,
        "attacker_skill_quality": 0.437,
        "defenders": [
          "Dani Lorenzo"
        ],
        "defender_roles": [
          "CM"
        ],
        "def_skill_quality_avg": 0.437,
        "duel_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.42,
        "xg_contribution": 0.081,
        "xg_multiplier": 1.0,
        "shots_in_zone": 1.6,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.7,
        "aerial_duels": 2,
        "aerial_won": 0.9,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.1,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Dani Lorenzo",
            "role": "CM",
            "market_value": 2300000,
            "tackles_attempted": 1.9,
            "tackles_won": 1.6,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 1.1,
            "defensive_success_rate": 0.58
          }
        ],
        "duel_analysis": "Denis Suárez (CM) is evenly matched against Dani Lorenzo in a direct 1v1 contest. Duel win probability: 42%.  Matchup xG multiplier ×1.00 (×1.00 = his usual level). Projected xG contribution: 0.081 — with neither side clearly dominant."
      },
      {
        "attacker": "Abderrahman Rebbach",
        "attacker_role": "ST",
        "attacker_market_value": 2400000,
        "attacker_height": 176,
        "attacker_skill_quality": 0.437,
        "defenders": [
          "Ángel Recio",
          "Fernando Calero"
        ],
        "defender_roles": [
          "CB",
          "CB"
        ],
        "def_skill_quality_avg": 0.437,
        "duel_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "numerical_situation": "1v2",
        "duel_win_rate": 0.18,
        "xg_contribution": 0.0772,
        "xg_multiplier": 0.953,
        "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.4,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Ángel Recio",
            "role": "CB",
            "market_value": 1000000,
            "tackles_attempted": 1.0,
            "tackles_won": 0.9,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.6,
            "aerial_duels_won": 0.8,
            "defensive_success_rate": 0.82
          },
          {
            "player": "Fernando Calero",
            "role": "CB",
            "market_value": 2100000,
            "tackles_attempted": 1.0,
            "tackles_won": 0.9,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.6,
            "aerial_duels_won": 0.8,
            "defensive_success_rate": 0.82
          }
        ],
        "duel_analysis": "Abderrahman Rebbach (ST) is evenly matched against Ángel Recio and Fernando Calero in a 2-defender block. Duel win probability: 18%.  Matchup xG multiplier ×0.95 (×1.00 = his usual level). Projected xG contribution: 0.077 — with neither side clearly dominant."
      }
    ],
    "away_attacking_duels": [
      {
        "attacker": "Pablo Martínez",
        "attacker_role": "LM",
        "attacker_market_value": 3100000,
        "attacker_height": 182,
        "attacker_skill_quality": 0.439,
        "defenders": [
          "Ville Koski"
        ],
        "defender_roles": [
          "CB"
        ],
        "def_skill_quality_avg": 0.454,
        "duel_zone": "LM vs CB",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.395,
        "xg_contribution": 0.1015,
        "xg_multiplier": 0.9637,
        "shots_in_zone": 1.4,
        "dribbles_attempted": 3,
        "dribbles_successful": 1.0,
        "aerial_duels": 2,
        "aerial_won": 1.1,
        "crosses_in_zone": 2.0,
        "fouls_drawn": 1.2,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Ville Koski",
            "role": "CB",
            "market_value": 4300000,
            "tackles_attempted": 1.9,
            "tackles_won": 1.6,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 0.9,
            "defensive_success_rate": 0.605
          }
        ],
        "duel_analysis": "Pablo Martínez (LM) is evenly matched against Ville Koski in a direct 1v1 contest. Duel win probability: 40%.  Matchup xG multiplier ×0.96 (×1.00 = his usual level). Projected xG contribution: 0.101 — with neither side clearly dominant."
      },
      {
        "attacker": "Dani Lorenzo",
        "attacker_role": "CM",
        "attacker_market_value": 2300000,
        "attacker_height": 176,
        "attacker_skill_quality": 0.437,
        "defenders": [
          "Pablo Ibáñez"
        ],
        "defender_roles": [
          "CDM"
        ],
        "def_skill_quality_avg": 0.451,
        "duel_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.428,
        "xg_contribution": 0.049,
        "xg_multiplier": 0.9674,
        "shots_in_zone": 1.6,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.8,
        "aerial_duels": 2,
        "aerial_won": 0.9,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.1,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Pablo Ibáñez",
            "role": "CDM",
            "market_value": 4099999,
            "tackles_attempted": 1.9,
            "tackles_won": 1.6,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 1.1,
            "defensive_success_rate": 0.572
          }
        ],
        "duel_analysis": "Dani Lorenzo (CM) is evenly matched against Pablo Ibáñez in a direct 1v1 contest. Duel win probability: 43%.  Matchup xG multiplier ×0.97 (×1.00 = his usual level). Projected xG contribution: 0.049 — with neither side clearly dominant."
      },
      {
        "attacker": "Carlos Dotor",
        "attacker_role": "CM",
        "attacker_market_value": 1200000,
        "attacker_height": 180,
        "attacker_skill_quality": 0.437,
        "defenders": [
          "Pablo Ibáñez"
        ],
        "defender_roles": [
          "CDM"
        ],
        "def_skill_quality_avg": 0.451,
        "duel_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.444,
        "xg_contribution": 0.0507,
        "xg_multiplier": 0.9909,
        "shots_in_zone": 1.6,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.8,
        "aerial_duels": 2,
        "aerial_won": 1.1,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.1,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Pablo Ibáñez",
            "role": "CDM",
            "market_value": 4099999,
            "tackles_attempted": 1.9,
            "tackles_won": 1.6,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 0.9,
            "defensive_success_rate": 0.556
          }
        ],
        "duel_analysis": "Carlos Dotor (CM) is evenly matched against Pablo Ibáñez in a direct 1v1 contest. Duel win probability: 44%.  Matchup xG multiplier ×0.99 (×1.00 = his usual level). Projected xG contribution: 0.051 — with neither side clearly dominant."
      },
      {
        "attacker": "Chupete",
        "attacker_role": "ST",
        "attacker_market_value": 10700000,
        "attacker_height": 185,
        "attacker_skill_quality": 0.531,
        "defenders": [
          "Ville Koski",
          "Nicolás Valentini"
        ],
        "defender_roles": [
          "CB",
          "CB"
        ],
        "def_skill_quality_avg": 0.446,
        "duel_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "numerical_situation": "1v2",
        "duel_win_rate": 0.233,
        "xg_contribution": 0.3043,
        "xg_multiplier": 1.0488,
        "shots_in_zone": 2.2,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.4,
        "aerial_duels": 3,
        "aerial_won": 1.8,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.5,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Ville Koski",
            "role": "CB",
            "market_value": 4300000,
            "tackles_attempted": 1.0,
            "tackles_won": 0.9,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.6,
            "aerial_duels_won": 0.6,
            "defensive_success_rate": 0.767
          },
          {
            "player": "Nicolás Valentini",
            "role": "CB",
            "market_value": 3100000,
            "tackles_attempted": 1.0,
            "tackles_won": 0.9,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.6,
            "aerial_duels_won": 0.6,
            "defensive_success_rate": 0.767
          }
        ],
        "duel_analysis": "Chupete (ST) is evenly matched against Ville Koski and Nicolás Valentini in a 2-defender block. Duel win probability: 23%.  Matchup xG multiplier ×1.05 (×1.00 = his usual level). Projected xG contribution: 0.304 — with neither side clearly dominant."
      },
      {
        "attacker": "Adrián Niño",
        "attacker_role": "ST",
        "attacker_market_value": 1900000,
        "attacker_height": 186,
        "attacker_skill_quality": 0.437,
        "defenders": [
          "Ville Koski",
          "Nicolás Valentini"
        ],
        "defender_roles": [
          "CB",
          "CB"
        ],
        "def_skill_quality_avg": 0.446,
        "duel_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "numerical_situation": "1v2",
        "duel_win_rate": 0.195,
        "xg_contribution": 0.3221,
        "xg_multiplier": 0.993,
        "shots_in_zone": 2.1,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.3,
        "aerial_duels": 3,
        "aerial_won": 1.8,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.4,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Ville Koski",
            "role": "CB",
            "market_value": 4300000,
            "tackles_attempted": 1.0,
            "tackles_won": 0.9,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.6,
            "aerial_duels_won": 0.6,
            "defensive_success_rate": 0.805
          },
          {
            "player": "Nicolás Valentini",
            "role": "CB",
            "market_value": 3100000,
            "tackles_attempted": 1.0,
            "tackles_won": 0.9,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.6,
            "aerial_duels_won": 0.6,
            "defensive_success_rate": 0.805
          }
        ],
        "duel_analysis": "Adrián Niño (ST) is evenly matched against Ville Koski and Nicolás Valentini in a 2-defender block. Duel win probability: 20%.  Matchup xG multiplier ×0.99 (×1.00 = his usual level). Projected xG contribution: 0.322 — with neither side clearly dominant."
      },
      {
        "attacker": "David Larrubia",
        "attacker_role": "ST",
        "attacker_market_value": 6300000,
        "attacker_height": 172,
        "attacker_skill_quality": 0.478,
        "defenders": [
          "Ville Koski",
          "Nicolás Valentini"
        ],
        "defender_roles": [
          "CB",
          "CB"
        ],
        "def_skill_quality_avg": 0.446,
        "duel_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "numerical_situation": "1v2",
        "duel_win_rate": 0.18,
        "xg_contribution": 0.0947,
        "xg_multiplier": 0.9376,
        "shots_in_zone": 2.0,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.3,
        "aerial_duels": 3,
        "aerial_won": 1.3,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.5,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Ville Koski",
            "role": "CB",
            "market_value": 4300000,
            "tackles_attempted": 1.0,
            "tackles_won": 0.9,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.6,
            "aerial_duels_won": 0.9,
            "defensive_success_rate": 0.82
          },
          {
            "player": "Nicolás Valentini",
            "role": "CB",
            "market_value": 3100000,
            "tackles_attempted": 1.0,
            "tackles_won": 0.9,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.6,
            "aerial_duels_won": 0.9,
            "defensive_success_rate": 0.82
          }
        ],
        "duel_analysis": "David Larrubia (ST) faces tough defensive resistance against Ville Koski and Nicolás Valentini in a 2-defender block. Duel win probability: 18%.  Matchup xG multiplier ×0.94 (×1.00 = his usual level). Projected xG contribution: 0.095 — and is restricted in space and time on the ball."
      }
    ],
    "midfield_battle": {
      "home_midfield_power": 0.491,
      "away_midfield_power": 0.438,
      "home_creative_power": 0.463,
      "away_creative_power": 0.438,
      "home_defensive_power": 0.412,
      "away_defensive_power": 0.437,
      "home_dominance_ratio": 0.529,
      "home_midfield_count": 4,
      "away_midfield_count": 3,
      "home_midfield_players": [
        "Denis Suárez",
        "Antonio Blanco",
        "Pablo Ibáñez",
        "Ángel Pérez"
      ],
      "away_midfield_players": [
        "Dani Lorenzo",
        "Pablo Martínez",
        "Carlos Dotor"
      ],
      "possession_advantage": "neutral",
      "estimated_possession_home_pct": 50.3,
      "estimated_possession_away_pct": 49.7,
      "home_pressing_actions_per_90": 6.3,
      "away_pressing_actions_per_90": 6.3,
      "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": "Antonio Blanco vs Pablo Martínez",
      "midfield_lambda_factor_home": 1.008,
      "midfield_lambda_factor_away": 0.996
    },
    "formation_analysis": {
      "home_formation": "5-3-2",
      "away_formation": "4-4-2",
      "home_tactical_bonus": 0.0,
      "away_tactical_bonus": 0.0,
      "formation_verdict": "Tactical parity between 5-3-2 and 4-4-2. Match outcome driven primarily by individual player quality."
    },
    "home_lambda": 1.257,
    "away_lambda": 0.869,
    "home_top_threat_zones": [
      "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
      "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle"
    ],
    "away_top_threat_zones": [
      "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
      "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle"
    ],
    "home_player_antagonists": {
      "Nahuel Tenaglia": {
        "opponents": [
          "Rafa Garrido"
        ],
        "primary_zone": "Left Wingback vs Right Back — Overlapping Run",
        "source": "attacking_duel"
      },
      "Ángel Pérez": {
        "opponents": [
          "Dani Lorenzo",
          "Carlos Dotor"
        ],
        "primary_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
        "source": "attacking_duel, midfield_pairing"
      },
      "Antonio Blanco": {
        "opponents": [
          "Dani Lorenzo",
          "Pablo Martínez"
        ],
        "primary_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
        "source": "attacking_duel, midfield_pairing"
      },
      "Lucas Boyé": {
        "opponents": [
          "Ángel Recio",
          "Fernando Calero"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "attacking_duel"
      },
      "Mariano Díaz": {
        "opponents": [
          "Ángel Recio",
          "Fernando Calero"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "attacking_duel"
      },
      "Denis Suárez": {
        "opponents": [
          "Dani Lorenzo"
        ],
        "primary_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
        "source": "attacking_duel, midfield_pairing"
      },
      "Abderrahman Rebbach": {
        "opponents": [
          "Ángel Recio",
          "Fernando Calero"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "attacking_duel"
      },
      "Ville Koski": {
        "opponents": [
          "Pablo Martínez",
          "Chupete",
          "Adrián Niño",
          "David Larrubia"
        ],
        "primary_zone": "LM vs CB",
        "source": "defensive_duel"
      },
      "Pablo Ibáñez": {
        "opponents": [
          "Dani Lorenzo",
          "Carlos Dotor"
        ],
        "primary_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
        "source": "defensive_duel, midfield_pairing"
      },
      "Nicolás Valentini": {
        "opponents": [
          "Chupete",
          "Adrián Niño",
          "David Larrubia"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "defensive_duel"
      },
      "Antonio Sivera": {
        "opponents": [
          "Chupete",
          "David Larrubia"
        ],
        "primary_zone": "Shape fallback",
        "source": "formation_fallback"
      }
    },
    "away_player_antagonists": {
      "Rafa Garrido": {
        "opponents": [
          "Nahuel Tenaglia"
        ],
        "primary_zone": "Left Wingback vs Right Back — Overlapping Run",
        "source": "defensive_duel"
      },
      "Dani Lorenzo": {
        "opponents": [
          "Ángel Pérez",
          "Antonio Blanco",
          "Denis Suárez",
          "Pablo Ibáñez"
        ],
        "primary_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
        "source": "defensive_duel, attacking_duel, midfield_pairing"
      },
      "Ángel Recio": {
        "opponents": [
          "Lucas Boyé",
          "Mariano Díaz",
          "Abderrahman Rebbach"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "defensive_duel"
      },
      "Fernando Calero": {
        "opponents": [
          "Lucas Boyé",
          "Mariano Díaz",
          "Abderrahman Rebbach"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "defensive_duel"
      },
      "Pablo Martínez": {
        "opponents": [
          "Ville Koski",
          "Antonio Blanco"
        ],
        "primary_zone": "LM vs CB",
        "source": "attacking_duel, midfield_pairing"
      },
      "Carlos Dotor": {
        "opponents": [
          "Pablo Ibáñez",
          "Ángel Pérez"
        ],
        "primary_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
        "source": "attacking_duel, midfield_pairing"
      },
      "Chupete": {
        "opponents": [
          "Ville Koski",
          "Nicolás Valentini"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "attacking_duel"
      },
      "Adrián Niño": {
        "opponents": [
          "Ville Koski",
          "Nicolás Valentini"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "attacking_duel"
      },
      "David Larrubia": {
        "opponents": [
          "Ville Koski",
          "Nicolás Valentini"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "attacking_duel"
      },
      "Alfonso Herrero": {
        "opponents": [
          "Lucas Boyé",
          "Abderrahman Rebbach"
        ],
        "primary_zone": "Shape fallback",
        "source": "formation_fallback"
      },
      "Adam Aznou": {
        "opponents": [
          "Mariano Díaz"
        ],
        "primary_zone": "Shape fallback",
        "source": "formation_fallback"
      }
    },
    "key_tactical_insight": "Midfield is evenly contested — Antonio Blanco vs Pablo Martínez will be the pivotal duel. Total antagonist xG — Home: 0.97, Away: 0.92. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.",
    "lambda_factors": {
      "league_anchor": 1.35,
      "home_advantage_factor": 1.15,
      "home_gk_opposition_factor": 1.0107,
      "away_gk_opposition_factor": 0.9975,
      "home_set_piece_bonus": 0.005,
      "away_set_piece_bonus": 0.021,
      "home_defensive_solidity_vs": 1.0079,
      "away_defensive_solidity_vs": 1.019,
      "home_midfield_factor": 1.008,
      "away_midfield_factor": 0.996,
      "stage_discount": 1.0,
      "quality_gap_applied": false,
      "home_avg_quality": 0.4538,
      "away_avg_quality": 0.4549,
      "avg_quality_gap": -0.0011,
      "squad_value_gap_log": 0.044,
      "top5_value_gap_log": -0.0157,
      "attack_value_gap_log": 0.0596,
      "elite_count_gap": 0,
      "combined_quality_gap": 0.0028,
      "stronger_lambda_boost": 0.0,
      "weaker_lambda_suppression": 0.0,
      "home_lambda_chain": [
        {
          "label": "league_anchor",
          "value": 1.35
        },
        {
          "label": "duel_blend",
          "raw_xg": 0.9662,
          "n_duels": 7,
          "duel_confidence": 0.75,
          "result": 1.0621
        },
        {
          "label": "midfield_factor",
          "factor": 1.008,
          "result": 1.0706
        },
        {
          "label": "formation_bonus",
          "factor": 1.0,
          "result": 1.0706
        },
        {
          "label": "home_advantage",
          "factor": 1.15,
          "result": 1.2312
        },
        {
          "label": "standing_factor",
          "factor": 1.0459,
          "result": 1.2878
        },
        {
          "label": "gk_opposition",
          "factor": 1.0107,
          "result": 1.3015
        },
        {
          "label": "defensive_solidity",
          "factor": 1.0079,
          "result": 1.3118
        },
        {
          "label": "set_piece_bonus",
          "bonus": 0.005,
          "result": 1.3168
        },
        {
          "label": "engine_clamp",
          "pre": 1.3168,
          "result": 1.3168,
          "band": [
            0.6,
            4.0
          ],
          "clamped": false
        },
        {
          "label": "quality_gap",
          "applied": false,
          "combined_quality_gap": 0.0028,
          "factor": 1.0,
          "pre": 1.3168,
          "result": 1.3168
        },
        {
          "label": "stage_discount",
          "applied": false,
          "factor": 1.0,
          "result": 1.3168
        },
        {
          "label": "bench_bonus",
          "side": "home",
          "bonus": 0.157,
          "result": 1.474
        },
        {
          "label": "fbref_blend",
          "side": "home",
          "applied": true,
          "blending_weight": 0.228,
          "empirical_lambda": 0.4074,
          "result": 1.2308
        },
        {
          "label": "router_clamp",
          "pre": 1.2308,
          "result": 1.231,
          "band": [
            0.65,
            4.8
          ]
        },
        {
          "label": "h2h_adjustment",
          "applied": true,
          "multiplier": 1.0214,
          "pre": 1.231,
          "result": 1.2573,
          "available": true
        },
        {
          "label": "mismatch_pressure",
          "applied": false,
          "reason": "quality gap below 0.30",
          "result": 1.257
        },
        {
          "label": "underdog_floor",
          "applied": false,
          "mode": "disabled_ablation",
          "result": 1.257
        },
        {
          "label": "final_clamp",
          "applied": false,
          "pre": 1.257,
          "result": 1.257,
          "band": [
            0.65,
            4.8
          ]
        },
        {
          "label": "competition_calibration",
          "applied": false,
          "reason": "no_sofascore_matches_data",
          "samples": 0,
          "scale": 1.0,
          "observed_total_goals": 0.0,
          "result": 1.257
        }
      ],
      "away_lambda_chain": [
        {
          "label": "league_anchor",
          "value": 1.35
        },
        {
          "label": "duel_blend",
          "raw_xg": 0.9223,
          "n_duels": 6,
          "duel_confidence": 0.75,
          "result": 1.0292
        },
        {
          "label": "midfield_factor",
          "factor": 0.996,
          "result": 1.0251
        },
        {
          "label": "formation_bonus",
          "factor": 1.0,
          "result": 1.0251
        },
        {
          "label": "home_advantage",
          "factor": 1.0,
          "result": 1.0251
        },
        {
          "label": "standing_factor",
          "factor": 0.8494,
          "result": 0.8707
        },
        {
          "label": "gk_opposition",
          "factor": 0.9975,
          "result": 0.8685
        },
        {
          "label": "defensive_solidity",
          "factor": 1.019,
          "result": 0.8851
        },
        {
          "label": "set_piece_bonus",
          "bonus": 0.021,
          "result": 0.9061
        },
        {
          "label": "engine_clamp",
          "pre": 0.9061,
          "result": 0.9061,
          "band": [
            0.6,
            4.0
          ],
          "clamped": false
        },
        {
          "label": "quality_gap",
          "applied": false,
          "combined_quality_gap": 0.0028,
          "factor": 1.0,
          "pre": 0.9061,
          "result": 0.9061
        },
        {
          "label": "stage_discount",
          "applied": false,
          "factor": 1.0,
          "result": 0.9061
        },
        {
          "label": "bench_bonus",
          "side": "away",
          "bonus": 0.1229,
          "result": 1.0289
        },
        {
          "label": "fbref_blend",
          "side": "away",
          "applied": true,
          "blending_weight": 0.228,
          "empirical_lambda": 0.4123,
          "result": 0.8883
        },
        {
          "label": "router_clamp",
          "pre": 0.8883,
          "result": 0.888,
          "band": [
            0.65,
            4.8
          ]
        },
        {
          "label": "h2h_adjustment",
          "applied": true,
          "multiplier": 0.9786,
          "pre": 0.888,
          "result": 0.869,
          "available": true
        },
        {
          "label": "mismatch_pressure",
          "applied": false,
          "reason": "quality gap below 0.30",
          "result": 0.869
        },
        {
          "label": "underdog_floor",
          "applied": false,
          "mode": "disabled_ablation",
          "result": 0.869
        },
        {
          "label": "final_clamp",
          "applied": false,
          "pre": 0.869,
          "result": 0.869,
          "band": [
            0.65,
            4.8
          ]
        },
        {
          "label": "competition_calibration",
          "applied": false,
          "reason": "no_sofascore_matches_data",
          "samples": 0,
          "scale": 1.0,
          "observed_total_goals": 0.0,
          "result": 0.869
        }
      ],
      "home_bench_lambda_bonus": 0.157,
      "away_bench_lambda_bonus": 0.1229,
      "home_bench_players_modelled": 7,
      "away_bench_players_modelled": 7,
      "fbref_team_priors": {
        "applied": true,
        "home_squad": "Deportivo Alavés",
        "away_squad": "Málaga CF",
        "home_goals_per90": 1.6666666666666667,
        "away_goals_against_per90": 0.33,
        "away_goals_per90": 0.3333333333333333,
        "home_goals_against_per90": 1.67,
        "home_empirical_lambda": 0.407,
        "away_empirical_lambda": 0.412,
        "blending_weight": 0.228
      },
      "mismatch_score_pressure_applied": false,
      "competitive_underdog_floor_applied": false,
      "competitive_underdog_floor": 1.0,
      "competitive_underdog_floor_mode": "disabled_ablation",
      "pre_competitive_floor_home_lambda": 1.257,
      "pre_competitive_floor_away_lambda": 0.869,
      "pre_calibration_home_lambda": 1.2308,
      "pre_calibration_away_lambda": 0.8883,
      "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.257,
      "final_away_lambda": 0.869
    }
  },
  "home_standing": {
    "available": true,
    "team_position": 7,
    "opponent_position": 20,
    "standing_lambda_multiplier": 1.0459,
    "attack_index": 1.024,
    "defense_concede_index": 1.079,
    "form_multiplier": 1.026,
    "team_attack_rate_contextual": 1.57,
    "opp_defense_rate_contextual": 1.65,
    "team_ppg": 1.28,
    "opponent_ppg": 0.81
  },
  "away_standing": {
    "available": true,
    "team_position": 20,
    "opponent_position": 7,
    "standing_lambda_multiplier": 0.8494,
    "attack_index": 0.723,
    "defense_concede_index": 0.926,
    "form_multiplier": 0.974,
    "team_attack_rate_contextual": 1.11,
    "opp_defense_rate_contextual": 1.42,
    "team_ppg": 0.81,
    "opponent_ppg": 1.28
  },
  "xgboost_reasoning": {
    "summary": "Antagonist + XGBoost match analysis for Alavés vs Málaga. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 5-3-2 vs 4-4-2 (duel lambdas: Home 1.231, Away 0.888). Final calibrated Poisson lambdas: Home 1.257, Away 0.869 (most likely score 1-0).",
    "competition": "LaLiga",
    "model_coverage": {
      "home_starters_count": 11,
      "home_xgboost_players": 11,
      "home_fbref_players": 9,
      "away_starters_count": 11,
      "away_xgboost_players": 11,
      "away_fbref_players": 6,
      "home_bench_modelled": 7,
      "away_bench_modelled": 7
    },
    "team_priors": {
      "applied": true,
      "home_squad": "Deportivo Alavés",
      "away_squad": "Málaga CF",
      "home_goals_per90": 1.6666666666666667,
      "away_goals_against_per90": 0.33,
      "away_goals_per90": 0.3333333333333333,
      "home_goals_against_per90": 1.67,
      "home_empirical_lambda": 0.407,
      "away_empirical_lambda": 0.412,
      "blending_weight": 0.228
    },
    "pipeline_stages": [
      "1. XGBoost player regressions for volume & event rates with market-value quality scaling",
      "2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)",
      "3. Antagonist formation duel matrix resolving 1v1 and zonal matchups",
      "4. Team-level prior calibration (FBref possession and attack/defense efficiencies)",
      "5. Bivariate Poisson matrix with Dixon-Coles low-score correction"
    ],
    "final_lambdas": {
      "home_lambda": 1.257,
      "away_lambda": 0.869,
      "micro_duel_home_lambda": 1.231,
      "micro_duel_away_lambda": 0.888
    },
    "calibration_and_pressure": {
      "competition_calibration_applied": false,
      "competition_calibration_scale": 1.0,
      "mismatch_pressure_applied": false,
      "underdog_floor_applied": false
    }
  },
  "timestamp": "2026-10-23T13:32:03Z",
  "stat_limits": {
    "saves": 15.0,
    "goalsPrevented": 5.0,
    "keeperSaveValue": 3.0,
    "interceptionWon": 10.0,
    "totalTackle": 12.0,
    "wonTackle": 10.0,
    "totalClearance": 18.0,
    "aerialWon": 15.0,
    "aerialLost": 12.0,
    "totalPass": 150.0,
    "accuratePass": 145.0,
    "keyPass": 8.0,
    "expectedAssists": 1.5,
    "goalAssist": 4.0,
    "expectedGoals": 3.0,
    "expectedGoalsOnTarget": 6.0,
    "xgot": 6.0,
    "goals": 5.0,
    "totalShots": 12.0,
    "onTargetScoringAttempt": 8.0,
    "shotOffTarget": 8.0,
    "rating": 10.0,
    "minutesPlayed": 130.0,
    "duelWon": 20.0,
    "duelLost": 20.0,
    "ballRecovery": 18.0,
    "fouls": 12.0
  }
}