{
  "match_info": {
    "home_team": "Athletic Club",
    "away_team": "Real Sociedad",
    "tournament": "LaLiga",
    "date": "20261101",
    "timezone": "America/New_York",
    "home_formation": "4-2-3-1",
    "away_formation": "4-2-3-1",
    "lineup_status": "unconfirmed_official",
    "lineup_source": "/matches/get-lineups",
    "lineup_confirmed": false,
    "lineup_confidence": 0.75
  },
  "prediction": {
    "most_likely_score": "2-1",
    "home_goals": 2,
    "away_goals": 1,
    "most_likely_score_probability": 0.0949,
    "most_likely_winning_score_home": "2-1",
    "most_likely_winning_score_home_probability": 0.0949,
    "most_likely_winning_score_away": "1-2",
    "most_likely_winning_score_away_probability": 0.0689,
    "match_resolution": "regulation",
    "predicted_winner": "Athletic Club",
    "tiebreaker": {
      "applies": false,
      "method": "none",
      "regulation_draw_probability": 0.2379,
      "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-1",
        "probability": 0.1105
      },
      {
        "score": "2-1",
        "probability": 0.0949
      },
      {
        "score": "1-0",
        "probability": 0.0867
      },
      {
        "score": "2-0",
        "probability": 0.0756
      },
      {
        "score": "1-2",
        "probability": 0.0689
      }
    ],
    "scoreline_probabilities": {
      "0-0": 0.0513,
      "0-1": 0.0628,
      "0-2": 0.0398,
      "0-3": 0.0167,
      "0-4": 0.0052,
      "0-5": 0.0013,
      "1-0": 0.0867,
      "1-1": 0.1105,
      "1-2": 0.0689,
      "1-3": 0.0288,
      "1-4": 0.009,
      "1-5": 0.0023,
      "2-0": 0.0756,
      "2-1": 0.0949,
      "2-2": 0.0596,
      "2-3": 0.0249,
      "2-4": 0.0078,
      "2-5": 0.002,
      "3-0": 0.0436,
      "3-1": 0.0547,
      "3-2": 0.0343,
      "3-3": 0.0144,
      "3-4": 0.0045,
      "3-5": 0.0011,
      "4-0": 0.0188,
      "4-1": 0.0236,
      "4-2": 0.0148,
      "4-3": 0.0062,
      "4-4": 0.0019,
      "5-0": 0.0065,
      "5-1": 0.0082,
      "5-2": 0.0051,
      "5-3": 0.0021,
      "5-4": 0.0007,
      "6-0": 0.0019,
      "6-1": 0.0024,
      "6-2": 0.0015,
      "6-3": 0.0006,
      "7-1": 0.0006
    },
    "outcome": {
      "home_win": 0.4846,
      "draw": 0.2379,
      "away_win": 0.2775
    },
    "markets": {
      "over_2_5_goals": 0.5732,
      "under_2_5_goals": 0.4268,
      "btts_yes": 0.5888,
      "btts_no": 0.4112,
      "home_clean_sheet": 0.2851,
      "away_clean_sheet": 0.1775
    },
    "home_ratings": {
      "DR": 6.88,
      "MCR": 6.82,
      "ATR": 6.85,
      "GK": 7.0
    },
    "away_ratings": {
      "DR": 6.81,
      "MCR": 6.97,
      "ATR": 7.07,
      "GK": 7.12
    },
    "insights": {
      "summary": "Antagonist matchup analysis for Athletic Club vs Real Sociedad. Most likely scoreline: 2-1. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Athletic Club 4W-2D-4L vs Real Sociedad over 10 meetings.",
      "key_player": "Projected scorer(s): Nico Williams, Iñaki Williams, Mikel Oyarzabal",
      "tactical_analysis": "Tactical parity between 4-2-3-1 and 4-2-3-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Mikel Jauregizar vs Jon Gorrotxategi will be the pivotal duel. Total antagonist xG — Home: 0.80, Away: 0.91. 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.74,
    "home_lambda": 1.729,
    "away_lambda": 1.255,
    "h2h": {
      "available": true,
      "meetings": 10,
      "home_wins": 4,
      "away_wins": 4,
      "draws": 2,
      "home_multiplier": 1.0,
      "away_multiplier": 1.0
    },
    "modal_scoreline": "1-1",
    "modal_scoreline_probability": 0.1105,
    "headline_policy": null
  },
  "pregame_baseline": {
    "fair_win_probability": {
      "home_win": 0.4846,
      "draw": 0.2379,
      "away_win": 0.2775
    },
    "favorite": "Athletic Club",
    "favorite_win_probability": 0.4846,
    "fair_spread": 0.474,
    "fair_total": 2.984,
    "prop_estimates": [
      {
        "market": "team_total_goals",
        "selection": "Athletic Club",
        "estimate": 1.729,
        "probability": null,
        "unit": "goals"
      },
      {
        "market": "team_total_goals",
        "selection": "Real Sociedad",
        "estimate": 1.255,
        "probability": null,
        "unit": "goals"
      },
      {
        "market": "over_2_5_goals",
        "selection": "yes",
        "estimate": 2.5,
        "probability": 0.5732,
        "unit": "probability"
      },
      {
        "market": "both_teams_to_score",
        "selection": "yes",
        "estimate": 1.0,
        "probability": 0.5888,
        "unit": "probability"
      },
      {
        "market": "clean_sheet",
        "selection": "Athletic Club",
        "estimate": 1.0,
        "probability": 0.2851,
        "unit": "probability"
      },
      {
        "market": "clean_sheet",
        "selection": "Real Sociedad",
        "estimate": 1.0,
        "probability": 0.1775,
        "unit": "probability"
      },
      {
        "market": "anytime_goal",
        "selection": "Iñaki Williams (Athletic Club)",
        "estimate": 0.4461,
        "probability": 0.3599,
        "unit": "xG"
      },
      {
        "market": "anytime_goal",
        "selection": "Mikel Oyarzabal (Real Sociedad)",
        "estimate": 0.2835,
        "probability": 0.2469,
        "unit": "xG"
      },
      {
        "market": "assist",
        "selection": "Yuri Berchiche (Athletic Club)",
        "estimate": 0.2511,
        "probability": 0.2221,
        "unit": "xA"
      },
      {
        "market": "assist",
        "selection": "Carlos Soler (Real Sociedad)",
        "estimate": 0.1607,
        "probability": 0.1485,
        "unit": "xA"
      }
    ],
    "expected_pace": {
      "tempo": "balanced",
      "expected_total_goals": 2.984,
      "expected_total_shots": 24,
      "expected_total_passes": 948,
      "expected_pressing_actions_per_90": 14.1,
      "possession_home_pct": 49.8,
      "possession_away_pct": 50.2,
      "notes": "possession projects near even"
    },
    "expected_game_script": {
      "favorite": "Athletic Club",
      "favorite_win_probability": 0.4846,
      "script": "Athletic Club is the fair winner side, but the baseline remains narrow: fair spread +0.47 goals and fair total 2.98.",
      "first_half": "Expect balanced tempo while both sides test the matchup thesis; shot baseline is about 12 first-half attempts.",
      "second_half": "If level after halftime, midfield control and bench quality should decide territory; Real Sociedad must keep the match inside one goal.",
      "late_game": "A Athletic Club lead likely shifts toward control and counters; a draw state keeps set pieces and transition chances live."
    },
    "key_matchup_thesis": "Real Sociedad chance creation leans on Mikel Oyarzabal against Aymeric Laporte, Dani Vivian in Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle; possession projects near even.",
    "expected_rotation_usage_behavior": [
      "Athletic Club: starters carry the main goal usage through Nico Williams, Iñaki Williams; bench watchlist: Beñat Prados, Robert Navarro.",
      "Real Sociedad: starters carry the main goal usage through Mikel Oyarzabal; bench watchlist: Takefusa Kubo, Orri Óskarsson, Arsen Zakharyan.",
      "Assist usage should flow through Álex Berenguer, Gonçalo Guedes; late lineup changes should re-score these allocations."
    ],
    "pregame_play_by_play": [
      "0-15: Athletic Club tries to establish the projected edge; track possession and first-shot share.",
      "15-45: Baseline expects balanced tempo, about 12 total first-half shots, and 1.49 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 Real Sociedad 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 Athletic Club.",
      "Real Sociedad 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": {
    "Athletic Club": {
      "formation": "4-2-3-1",
      "players": {
        "Unai Simón": {
          "player_id": 797291,
          "position": "G",
          "position_depth": "G",
          "is_starter": true,
          "shirt_number": 1,
          "height": 189,
          "market_value": 21000000,
          "stats": {
            "saves": 3,
            "goals_prevented": -0.0287,
            "rating": 6.9961,
            "minutes": 84,
            "total_pass": 30,
            "accurate_pass": 21,
            "total_long_balls": 16,
            "accurate_long_balls": 6,
            "touches": 41,
            "clearances": 1,
            "ball_recovery": 10,
            "high_claims": 1,
            "punches": 0.1424,
            "aerial_won": 0,
            "sweeper_actions": 2,
            "sweeper_accurate": 2,
            "saves_inside_box": 2,
            "possession_lost": 9.874,
            "duels_won": 0,
            "duels_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "total_own_half_passes": 19,
            "accurate_own_half_passes": 16,
            "gk_engine_opponent_lambda": 1.0708,
            "shots_faced": 11.9,
            "expected_saves": 2.91,
            "high_pressure_saves": 1.0,
            "opponent_faced": "Mikel Oyarzabal, Gonçalo Guedes",
            "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": 16421081.0,
              "match_date": "2026-10-25",
              "home_team": "Athletic Club",
              "away_team": "Getafe",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Getafe",
              "stats": {
                "minutes": 48,
                "rating": 7.1,
                "expected_assists": 0.007,
                "total_shots": 0,
                "total_pass": 15,
                "accurate_pass": 14,
                "clearances": 1,
                "ball_recovery": 5,
                "saves": 1,
                "goals_prevented": 0.2109
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 17122851.0,
              "match_date": "2026-10-21",
              "home_team": "Levante UD",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0034,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "total_pass": 39,
                "accurate_pass": 24,
                "tackles": 0,
                "tackles_won": 0,
                "interceptions": 0,
                "clearances": 1,
                "aerial_won": 0,
                "duels_won": 0,
                "ball_recovery": 11,
                "saves": 4,
                "goals_prevented": -0.215
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421074.0,
              "match_date": "2026-10-17",
              "home_team": "Valencia",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Valencia",
              "stats": {
                "minutes": 90,
                "rating": 7.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0033,
                "total_shots": 0,
                "total_pass": 24,
                "accurate_pass": 13,
                "ball_recovery": 15,
                "saves": 3,
                "goals_prevented": 0.5543
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416337.0,
              "match_date": "2026-09-19",
              "home_team": "Athletic Club",
              "away_team": "Deportivo Alavés",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0007,
                "total_shots": 0,
                "total_pass": 22,
                "accurate_pass": 21,
                "clearances": 1,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416322.0,
              "match_date": "2026-09-12",
              "home_team": "Athletic Club",
              "away_team": "Elche",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Elche",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0035,
                "total_shots": 0,
                "total_pass": 32,
                "accurate_pass": 28,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 9,
                "goals_prevented": -0.1346
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416317.0,
              "match_date": "2026-09-05",
              "home_team": "Athletic Club",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 90,
                "rating": 8.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0016,
                "total_shots": 0,
                "total_pass": 47,
                "accurate_pass": 34,
                "clearances": 2,
                "ball_recovery": 14,
                "saves": 5,
                "goals_prevented": 1.2353
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416308.0,
              "match_date": "2026-08-30",
              "home_team": "Celta Vigo",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 90,
                "rating": 7.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0023,
                "total_shots": 0,
                "total_pass": 32,
                "accurate_pass": 22,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 7,
                "saves": 2,
                "goals_prevented": 0.3212
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421059.0,
              "match_date": "2026-08-27",
              "home_team": "FC Barcelona",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "FC Barcelona",
              "stats": {
                "minutes": 90,
                "rating": 9.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0026,
                "total_shots": 0,
                "total_pass": 35,
                "accurate_pass": 23,
                "clearances": 3,
                "ball_recovery": 14,
                "saves": 8,
                "goals_prevented": 1.8497
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416301.0,
              "match_date": "2026-08-22",
              "home_team": "Athletic Club",
              "away_team": "Sevilla",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 90,
                "rating": 4.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0116,
                "total_shots": 0,
                "total_pass": 48,
                "accurate_pass": 29,
                "clearances": 1,
                "ball_recovery": 7,
                "saves": 2,
                "goals_prevented": -1.3506
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083656.0,
              "match_date": "2026-05-17",
              "home_team": "Athletic Club",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0068,
                "total_shots": 0,
                "total_pass": 25,
                "accurate_pass": 12,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 13,
                "saves": 1,
                "goals_prevented": -0.6162
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 323,
            "combined_rank_score": 218.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 278.0,
            "sofascore_rating": 7.0667,
            "sofascore_appearances": 3.0,
            "fifa_rank": 158.0,
            "fifa_overall": 85.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 5,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.9961,
            "source_file": "data/player_rankings.csv",
            "player_name": "Unai Simón",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Bryan Mbeumo",
                  "ranking": 318
                },
                {
                  "player_name": "Sandzhar Kuvvatov",
                  "ranking": 319
                },
                {
                  "player_name": "Jon Ander Olasagasti",
                  "ranking": 320
                },
                {
                  "player_name": "Mario Rivas",
                  "ranking": 321
                },
                {
                  "player_name": "Nico Paz",
                  "ranking": 322
                }
              ],
              "lower": [
                {
                  "player_name": "Aleksandre Andronikashvili",
                  "ranking": 324
                },
                {
                  "player_name": "Javier Correa",
                  "ranking": 325
                },
                {
                  "player_name": "Alejandro Santander",
                  "ranking": 326
                },
                {
                  "player_name": "Diego Murillo",
                  "ranking": 327
                },
                {
                  "player_name": "Boubacar Kamara",
                  "ranking": 328
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.78,
          "history_matches": 46,
          "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": 46,
            "data_confidence": 0.78,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.004,
            "fbref_prior_metrics": {
              "squad": "Athletic Club",
              "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 46 historical appearances across 3 target models; FBref 2026-2027 prior blended (La Liga, Athletic Club, 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.987,
                "goals_prevented": -0.0286,
                "rating": 6.9961,
                "minutes": 83.96,
                "total_pass": 30.0298,
                "accurate_pass": 20.4369,
                "total_long_balls": 15.4681,
                "accurate_long_balls": 6.2313,
                "touches": 40.8859,
                "clearances": 0.8839,
                "ball_recovery": 9.7558,
                "high_claims": 1.1981,
                "punches": 0.1418,
                "aerial_won": 0.2051,
                "sweeper_actions": 2.4028,
                "sweeper_accurate": 2.2005,
                "saves_inside_box": 1.9575,
                "possession_lost": 9.8347,
                "duels_won": 0.318,
                "duels_lost": 0.1566,
                "total_contest": 0.0566,
                "won_contest": 0.0566,
                "fouls": 0.0,
                "fouls_drawn": 0.0569,
                "total_own_half_passes": 18.6496,
                "accurate_own_half_passes": 16.3795
              },
              "trace": {
                "model": {
                  "position_service": "G",
                  "schema_version": 5,
                  "trained_at": "2026-11-01T11:25:22.869020+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 201,
                    "rows": 7418
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-25",
                    "opponent": "Getafe",
                    "minutes": 48.0,
                    "is_starting": true,
                    "weight": 0.1501,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-10-21",
                    "opponent": "Levante UD",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1276,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-10-17",
                    "opponent": "Valencia",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1084,
                    "rating": 7.6
                  },
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Deportivo Alavés",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0922,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Elche",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0783,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Atlético Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0666,
                    "rating": 8.9
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Celta Vigo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0566,
                    "rating": 7.7
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "FC Barcelona",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0481,
                    "rating": 9.0
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Sevilla",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0409,
                    "rating": 4.5
                  },
                  {
                    "match_date": "2026-05-17",
                    "opponent": "Celta Vigo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0348,
                    "rating": 6.7
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 1.0,
                  "accurateOwnHalfPasses": 16.3795,
                  "accurateLongBalls": 6.2313,
                  "possessionLostCtrl": 9.8347,
                  "goalkeeperValueNormalized": 0.1735,
                  "sweeper_accuracy": 0.5472,
                  "accurateKeeperSweeper": 2.2006
                },
                "per_target": [
                  {
                    "target": "saves",
                    "predicted": 2.9869892597198486,
                    "model_output": 2.987,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "save_contribution",
                        "importance": 0.0391
                      },
                      {
                        "name": "goalsPrevented",
                        "importance": 0.0375
                      },
                      {
                        "name": "savedShotsFromInsideTheBox",
                        "importance": 0.0373
                      },
                      {
                        "name": "accurateLongBalls",
                        "importance": 0.0364
                      },
                      {
                        "name": "rating",
                        "importance": 0.0359
                      }
                    ],
                    "decomposition": {
                      "base": 2.922,
                      "items": [
                        {
                          "name": "savedShotsFromInsideTheBox",
                          "contribution": 0.0232
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0183
                        },
                        {
                          "name": "accurateLongBalls",
                          "contribution": 0.0176
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": 0.0137
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0124
                        }
                      ],
                      "others": 0.0046,
                      "total": 2.987,
                      "log_link": true,
                      "margin_base": 1.072276,
                      "item_margins": [
                        {
                          "name": "savedShotsFromInsideTheBox",
                          "margin": 0.007897
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": 0.006205
                        },
                        {
                          "name": "accurateLongBalls",
                          "margin": 0.005914
                        },
                        {
                          "name": "ballRecovery",
                          "margin": 0.004597
                        },
                        {
                          "name": "rating",
                          "margin": -0.004154
                        }
                      ],
                      "others_margin": 0.001531
                    }
                  },
                  {
                    "target": "goalsPrevented",
                    "predicted": -0.028604421764612198,
                    "model_output": -0.0286,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0381
                      },
                      {
                        "name": "totalOwnHalfPasses",
                        "importance": 0.0373
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0364
                      },
                      {
                        "name": "sweeper_actions_p90",
                        "importance": 0.0359
                      },
                      {
                        "name": "accurateOwnHalfPasses",
                        "importance": 0.0355
                      }
                    ],
                    "decomposition": {
                      "base": -0.0283,
                      "items": [
                        {
                          "name": "totalOwnHalfPasses",
                          "contribution": -0.0258
                        },
                        {
                          "name": "accurateKeeperSweeper",
                          "contribution": 0.0252
                        },
                        {
                          "name": "punches",
                          "contribution": 0.0183
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0179
                        },
                        {
                          "name": "accurateLongBalls",
                          "contribution": 0.017
                        }
                      ],
                      "others": -0.0171,
                      "total": -0.0286,
                      "log_link": false,
                      "margin_base": -0.028288,
                      "item_margins": [
                        {
                          "name": "totalOwnHalfPasses",
                          "margin": -0.025788
                        },
                        {
                          "name": "accurateKeeperSweeper",
                          "margin": 0.025151
                        },
                        {
                          "name": "punches",
                          "margin": 0.018294
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.017941
                        },
                        {
                          "name": "accurateLongBalls",
                          "margin": 0.017021
                        }
                      ],
                      "others_margin": -0.017055
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.996127128601074,
                    "model_output": 6.9961,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0399
                      },
                      {
                        "name": "accurateKeeperSweeper",
                        "importance": 0.0395
                      },
                      {
                        "name": "goalkeeperValueNormalized",
                        "importance": 0.0383
                      },
                      {
                        "name": "accurateOwnHalfPasses",
                        "importance": 0.0383
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0363
                      }
                    ],
                    "decomposition": {
                      "base": 6.9871,
                      "items": [
                        {
                          "name": "totalPass",
                          "contribution": -0.0191
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0171
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0112
                        },
                        {
                          "name": "totalOwnHalfPasses",
                          "contribution": -0.0106
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0098
                        }
                      ],
                      "others": 0.023,
                      "total": 6.9961,
                      "log_link": false,
                      "margin_base": 6.987111,
                      "item_margins": [
                        {
                          "name": "totalPass",
                          "margin": -0.019104
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.017135
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": -0.011208
                        },
                        {
                          "name": "totalOwnHalfPasses",
                          "margin": -0.010583
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": 0.009817
                        }
                      ],
                      "others_margin": 0.022961
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 46,
                  "role_matches": 46,
                  "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.0040, quality 0.641)",
              "stats": {
                "saves": 2.9989,
                "goals_prevented": -0.0287,
                "rating": 6.9961,
                "minutes": 83.96,
                "total_pass": 30.1499,
                "accurate_pass": 20.5186,
                "total_long_balls": 15.53,
                "accurate_long_balls": 6.2562,
                "touches": 41.0494,
                "clearances": 0.8874,
                "ball_recovery": 9.7948,
                "high_claims": 1.2029,
                "punches": 0.1424,
                "aerial_won": 0.2059,
                "sweeper_actions": 2.4124,
                "sweeper_accurate": 2.2093,
                "saves_inside_box": 1.9653,
                "possession_lost": 9.874,
                "duels_won": 0.3193,
                "duels_lost": 0.1572,
                "total_contest": 0.0568,
                "won_contest": 0.0568,
                "fouls": 0.0,
                "fouls_drawn": 0.0571,
                "total_own_half_passes": 18.7242,
                "accurate_own_half_passes": 16.445
              },
              "params": {
                "market_value_eur": 21000000,
                "quality_factor": 0.6408,
                "boost_factor": 1.004,
                "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": {
                "saves": 3.0082,
                "goals_prevented": -0.0287,
                "rating": 6.9961,
                "minutes": 83.96,
                "total_pass": 30.1499,
                "accurate_pass": 20.5186,
                "total_long_balls": 15.53,
                "accurate_long_balls": 6.2562,
                "touches": 41.0494,
                "clearances": 0.8874,
                "ball_recovery": 9.7948,
                "high_claims": 1.2029,
                "punches": 0.1424,
                "aerial_won": 0.2059,
                "sweeper_actions": 2.4124,
                "sweeper_accurate": 2.2093,
                "saves_inside_box": 1.9653,
                "possession_lost": 9.874,
                "duels_won": 0.3193,
                "duels_lost": 0.1572,
                "total_contest": 0.0568,
                "won_contest": 0.0568,
                "fouls": 0.0,
                "fouls_drawn": 0.0564,
                "total_own_half_passes": 18.7242,
                "accurate_own_half_passes": 16.445
              },
              "params": {
                "blend_weight": 0.0127,
                "history_matches": 46,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.9329,
                "prior_reliability": 0.2,
                "competition": "La Liga",
                "squad": "Athletic Club"
              },
              "changes": [
                {
                  "stat": "saves",
                  "before": 2.9989,
                  "after": 3.0082
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "saves": 3.0082,
                "goals_prevented": -0.0287,
                "rating": 6.9961,
                "minutes": 83.96,
                "total_pass": 30.1499,
                "accurate_pass": 20.5186,
                "total_long_balls": 15.53,
                "accurate_long_balls": 6.2562,
                "touches": 41.0494,
                "clearances": 0.8874,
                "ball_recovery": 9.7948,
                "high_claims": 1.2029,
                "punches": 0.1424,
                "aerial_won": 0.2059,
                "sweeper_actions": 2.4124,
                "sweeper_accurate": 2.2093,
                "saves_inside_box": 1.9653,
                "possession_lost": 9.874,
                "duels_won": 0.3193,
                "duels_lost": 0.1572,
                "total_contest": 0.0568,
                "won_contest": 0.0568,
                "fouls": 0.0,
                "fouls_drawn": 0.0564,
                "total_own_half_passes": 18.7242,
                "accurate_own_half_passes": 16.445
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "saves": 3.0082,
                "goals_prevented": -0.0287,
                "rating": 6.9961,
                "minutes": 83.96,
                "total_pass": 30.1499,
                "accurate_pass": 20.5186,
                "total_long_balls": 15.53,
                "accurate_long_balls": 6.2562,
                "touches": 41.0494,
                "clearances": 0.8874,
                "ball_recovery": 9.7948,
                "high_claims": 1.2029,
                "punches": 0.1424,
                "aerial_won": 0.2059,
                "sweeper_actions": 2.4124,
                "sweeper_accurate": 2.2093,
                "saves_inside_box": 1.9653,
                "possession_lost": 9.874,
                "duels_won": 0.3193,
                "duels_lost": 0.1572,
                "total_contest": 0.0568,
                "won_contest": 0.0568,
                "fouls": 0.0,
                "fouls_drawn": 0.0564,
                "total_own_half_passes": 18.7242,
                "accurate_own_half_passes": 16.445,
                "gk_engine_opponent_lambda": 1.0708,
                "shots_faced": 10.2,
                "expected_saves": 2.5,
                "high_pressure_saves": 0.86,
                "opponent_faced": "Mikel Oyarzabal, Gonçalo Guedes",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Mikel Oyarzabal, Gonçalo Guedes",
                  "matchup_zone": "Goalkeeper shot-stopping context",
                  "opponent_lambda": 1.0708
                }
              }
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "saves": 3.0082,
                "goals_prevented": -0.0287,
                "rating": 6.9961,
                "minutes": 83.96,
                "total_pass": 30.1499,
                "accurate_pass": 20.5186,
                "total_long_balls": 15.53,
                "accurate_long_balls": 6.2562,
                "touches": 41.0494,
                "clearances": 0.8874,
                "ball_recovery": 9.7948,
                "high_claims": 1.2029,
                "punches": 0.1424,
                "aerial_won": 0.2059,
                "sweeper_actions": 2.4124,
                "sweeper_accurate": 2.2093,
                "saves_inside_box": 1.9653,
                "possession_lost": 9.874,
                "duels_won": 0.3193,
                "duels_lost": 0.1572,
                "total_contest": 0.0568,
                "won_contest": 0.0568,
                "fouls": 0.0,
                "fouls_drawn": 0.0564,
                "total_own_half_passes": 18.7242,
                "accurate_own_half_passes": 16.445,
                "gk_engine_opponent_lambda": 1.0708,
                "shots_faced": 10.2,
                "expected_saves": 2.5,
                "high_pressure_saves": 0.86,
                "opponent_faced": "Mikel Oyarzabal, Gonçalo Guedes",
                "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": 2
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.73 (squad xG sum 1.0016, xG scale 1.7263, xA scale 1.7263, team xA 1.22 = 0.71 x lambda)",
              "stats": {
                "saves": 3.0082,
                "goals_prevented": -0.0287,
                "rating": 6.9961,
                "minutes": 83.96,
                "total_pass": 30.1499,
                "accurate_pass": 20.5186,
                "total_long_balls": 15.53,
                "accurate_long_balls": 6.2562,
                "touches": 41.0494,
                "clearances": 0.8874,
                "ball_recovery": 9.7948,
                "high_claims": 1.2029,
                "punches": 0.1424,
                "aerial_won": 0.2059,
                "sweeper_actions": 2.4124,
                "sweeper_accurate": 2.2093,
                "saves_inside_box": 1.9653,
                "possession_lost": 9.874,
                "duels_won": 0.3193,
                "duels_lost": 0.1572,
                "total_contest": 0.0568,
                "won_contest": 0.0568,
                "fouls": 0.0,
                "fouls_drawn": 0.0564,
                "total_own_half_passes": 18.7242,
                "accurate_own_half_passes": 16.445,
                "gk_engine_opponent_lambda": 1.0708,
                "shots_faced": 11.9,
                "expected_saves": 2.91,
                "high_pressure_saves": 1.0,
                "opponent_faced": "Mikel Oyarzabal, Gonçalo Guedes",
                "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.729,
                "squad_xg_sum": 1.0016,
                "squad_xa_sum": 0.7085,
                "team_expected_assists": 1.2231,
                "team_xa_to_xg_ratio": 0.7074,
                "bench_appearance_weighted": true,
                "xg_scale": 1.7263,
                "xa_scale": 1.7263,
                "opponent_lambda": 1.255,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "shots_faced",
                  "before": 10.2,
                  "after": 11.9
                },
                {
                  "stat": "expected_saves",
                  "before": 2.5,
                  "after": 2.91
                },
                {
                  "stat": "high_pressure_saves",
                  "before": 0.86,
                  "after": 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 85.0)",
              "stats": {
                "saves": 3.0082,
                "goals_prevented": -0.0287,
                "rating": 6.9961,
                "minutes": 83.96,
                "total_pass": 30.1499,
                "accurate_pass": 20.5186,
                "total_long_balls": 15.53,
                "accurate_long_balls": 6.2562,
                "touches": 41.0494,
                "clearances": 0.8874,
                "ball_recovery": 9.7948,
                "high_claims": 1.2029,
                "punches": 0.1424,
                "aerial_won": 0.2059,
                "sweeper_actions": 2.4124,
                "sweeper_accurate": 2.2093,
                "saves_inside_box": 1.9653,
                "possession_lost": 9.874,
                "duels_won": 0.3193,
                "duels_lost": 0.1572,
                "total_contest": 0.0568,
                "won_contest": 0.0568,
                "fouls": 0.0,
                "fouls_drawn": 0.0564,
                "total_own_half_passes": 18.7242,
                "accurate_own_half_passes": 16.445,
                "gk_engine_opponent_lambda": 1.0708,
                "shots_faced": 11.9,
                "expected_saves": 2.91,
                "high_pressure_saves": 1.0,
                "opponent_faced": "Mikel Oyarzabal, Gonçalo Guedes",
                "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": 5,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 323,
                "fifa_rank": 158.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 85.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "saves": 3.0082,
                "goals_prevented": -0.0287,
                "rating": 6.9961,
                "minutes": 83.96,
                "total_pass": 30.1499,
                "accurate_pass": 20.5186,
                "total_long_balls": 15.53,
                "accurate_long_balls": 6.2562,
                "touches": 41.0494,
                "clearances": 0.8874,
                "ball_recovery": 9.7948,
                "high_claims": 1.2029,
                "punches": 0.1424,
                "aerial_won": 0.2059,
                "sweeper_actions": 2.4124,
                "sweeper_accurate": 2.2093,
                "saves_inside_box": 1.9653,
                "possession_lost": 9.874,
                "duels_won": 0.3193,
                "duels_lost": 0.1572,
                "total_contest": 0.0568,
                "won_contest": 0.0568,
                "fouls": 0.0,
                "fouls_drawn": 0.0564,
                "total_own_half_passes": 18.7242,
                "accurate_own_half_passes": 16.445,
                "gk_engine_opponent_lambda": 1.0708,
                "shots_faced": 11.9,
                "expected_saves": 2.91,
                "high_pressure_saves": 1.0,
                "opponent_faced": "Mikel Oyarzabal, Gonçalo Guedes",
                "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": 2,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 0.0,
                "squad_weight_total": 1.9109,
                "weight_share": 0.0,
                "finishing_factor": 1.0,
                "appearance_weight": 1.0,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Iñaki Williams",
                    "weight": 0.5576,
                    "already": 0,
                    "effective_weight": 0.5576,
                    "runner_up": "Nico Williams",
                    "runner_up_effective_weight": 0.305
                  },
                  {
                    "n": 2,
                    "player": "Nico Williams",
                    "weight": 0.305,
                    "already": 0,
                    "effective_weight": 0.305,
                    "runner_up": "Álex Berenguer",
                    "runner_up_effective_weight": 0.2692
                  }
                ]
              }
            },
            {
              "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": 3.0082,
                "goals_prevented": -0.0287,
                "rating": 6.9961,
                "minutes": 83.96,
                "total_pass": 30.1499,
                "accurate_pass": 20.5186,
                "total_long_balls": 15.53,
                "accurate_long_balls": 6.2562,
                "touches": 41.0494,
                "clearances": 0.8874,
                "ball_recovery": 9.7948,
                "high_claims": 1.2029,
                "punches": 0.1424,
                "aerial_won": 0.2059,
                "sweeper_actions": 2.4124,
                "sweeper_accurate": 2.2093,
                "saves_inside_box": 1.9653,
                "possession_lost": 9.874,
                "duels_won": 0.3193,
                "duels_lost": 0.1572,
                "total_contest": 0.0568,
                "won_contest": 0.0568,
                "fouls": 0.0,
                "fouls_drawn": 0.0564,
                "total_own_half_passes": 18.7242,
                "accurate_own_half_passes": 16.445,
                "gk_engine_opponent_lambda": 1.0708,
                "shots_faced": 11.9,
                "expected_saves": 2.91,
                "high_pressure_saves": 1.0,
                "opponent_faced": "Mikel Oyarzabal, Gonçalo Guedes",
                "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": 1.1843,
                "weight_share": 0.0,
                "creation_factor": 1.0,
                "appearance_weight": 1.0,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Álex Berenguer",
                    "weight": 0.2673,
                    "already": 0,
                    "effective_weight": 0.2673,
                    "runner_up": "Yuri Berchiche",
                    "runner_up_effective_weight": 0.2271
                  }
                ]
              }
            }
          ]
        },
        "Hugo Rincón": {
          "player_id": 1632454,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 15,
          "height": 183,
          "market_value": 3400000,
          "stats": {
            "interceptions": 1,
            "tackles": 2,
            "tackles_won": 1,
            "clearances": 2,
            "aerial_won": 1,
            "total_shots": 0,
            "rating": 6.7231,
            "minutes": 80,
            "total_pass": 36,
            "accurate_pass": 30,
            "duels_won": 5,
            "total_long_balls": 2,
            "accurate_long_balls": 1,
            "total_own_half_passes": 15,
            "accurate_own_half_passes": 13,
            "total_opp_half_passes": 21,
            "accurate_opp_half_passes": 17,
            "crosses_total": 2,
            "crosses_accurate": 1,
            "touches": 53,
            "possession_lost": 8.8241,
            "dispossessed": 0.2568,
            "duels_lost": 3,
            "aerial_lost": 1,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 3,
            "challenges_lost": 1,
            "fouls": 1,
            "fouls_drawn": 2,
            "blocks": 0,
            "goal_rate": 0.0782,
            "goals": 0,
            "assist_rate": 0.0304,
            "assists": 0,
            "expected_goals": 0.0511,
            "expected_assists": 0.0981,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0406,
            "ball_carries": 13,
            "total_progression": 45,
            "progressive_carries": 1,
            "key_pass": 1,
            "shots_off_target": 0,
            "opponent_faced": "Mikel Oyarzabal",
            "matchup_zone": "Shape fallback",
            "antagonist_source": "formation_fallback",
            "projected_goals": 0,
            "goal_probability": 0.0498,
            "projected_assists": 0,
            "assist_probability": 0.0934,
            "finishing_factor": 1.25,
            "creation_factor": 0.8,
            "fifa_overall": 75.0
          },
          "latest_10_games": [
            {
              "match_id": 16421081.0,
              "match_date": "2026-10-25",
              "home_team": "Athletic Club",
              "away_team": "Getafe",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Getafe",
              "stats": {
                "minutes": 48,
                "rating": 6.6,
                "expected_assists": 0.0111,
                "total_shots": 0,
                "total_pass": 24,
                "accurate_pass": 20,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 17122851.0,
              "match_date": "2026-10-21",
              "home_team": "Levante UD",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 81,
                "rating": 6.9,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1357,
                "expected_assists": 0.2162,
                "total_shots": 2,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "total_pass": 42,
                "accurate_pass": 34,
                "key_pass": 5,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 0,
                "clearances": 1,
                "aerial_won": 0,
                "duels_won": 2,
                "ball_recovery": 3,
                "saves": 0
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421074.0,
              "match_date": "2026-10-17",
              "home_team": "Valencia",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Valencia",
              "stats": {
                "minutes": 90,
                "rating": 7.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0402,
                "total_shots": 0,
                "total_pass": 64,
                "accurate_pass": 61,
                "clearances": 6,
                "aerial_won": 2,
                "duels_won": 5,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421059.0,
              "match_date": "2026-08-27",
              "home_team": "FC Barcelona",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "FC Barcelona",
              "stats": {
                "minutes": 90,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0075,
                "total_shots": 0,
                "total_pass": 12,
                "accurate_pass": 8,
                "tackles": 1,
                "interceptions": 1,
                "aerial_won": 1,
                "duels_won": 5,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416301.0,
              "match_date": "2026-08-22",
              "home_team": "Athletic Club",
              "away_team": "Sevilla",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 16,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0055,
                "total_shots": 0,
                "total_pass": 11,
                "accurate_pass": 11,
                "clearances": 1,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083743.0,
              "match_date": "2026-05-23",
              "home_team": "Girona FC",
              "away_team": "Elche",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Girona FC",
              "opponent": "Elche",
              "stats": {
                "minutes": 32,
                "rating": 7.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.05,
                "total_shots": 0,
                "total_pass": 18,
                "accurate_pass": 14,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 6,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083598.0,
              "match_date": "2026-05-11",
              "home_team": "Rayo Vallecano",
              "away_team": "Girona FC",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Girona FC",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 18,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0057,
                "total_shots": 0,
                "total_pass": 8,
                "accurate_pass": 6,
                "tackles": 3,
                "tackles_won": 2,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083457.0,
              "match_date": "2026-05-01",
              "home_team": "Girona FC",
              "away_team": "Mallorca",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Girona FC",
              "opponent": "Mallorca",
              "stats": {
                "minutes": 16,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0495,
                "total_shots": 0,
                "total_pass": 11,
                "accurate_pass": 9,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083255.0,
              "match_date": "2026-04-25",
              "home_team": "Valencia",
              "away_team": "Girona FC",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Girona FC",
              "opponent": "Valencia",
              "stats": {
                "minutes": 21,
                "rating": 7.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0089,
                "total_shots": 0,
                "total_pass": 17,
                "accurate_pass": 15,
                "tackles": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083318.0,
              "match_date": "2026-04-21",
              "home_team": "Girona FC",
              "away_team": "Real Betis",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Girona FC",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 14,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0075,
                "total_shots": 0,
                "total_pass": 9,
                "accurate_pass": 8
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 3590,
            "combined_rank_score": 1558.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 696.0,
            "sofascore_rating": 6.703,
            "sofascore_appearances": 33.0,
            "fifa_rank": 2420.0,
            "fifa_overall": 75.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 14,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.7231,
            "source_file": "data/player_rankings.csv",
            "player_name": "Hugo Rincón",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Álvaro Ferllo",
                  "ranking": 3585
                },
                {
                  "player_name": "Sivera",
                  "ranking": 3586
                },
                {
                  "player_name": "Kike García",
                  "ranking": 3587
                },
                {
                  "player_name": "Ephron Mason-Clark",
                  "ranking": 3588
                },
                {
                  "player_name": "Zubeldia",
                  "ranking": 3589
                }
              ],
              "lower": [
                {
                  "player_name": "Christos Zafeiris",
                  "ranking": 3591
                },
                {
                  "player_name": "Luiz Felipe",
                  "ranking": 3592
                },
                {
                  "player_name": "Catena",
                  "ranking": 3593
                },
                {
                  "player_name": "Arijanet Murić",
                  "ranking": 3594
                },
                {
                  "player_name": "Puado",
                  "ranking": 3595
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.762,
          "history_matches": 38,
          "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": 38,
            "data_confidence": 0.762,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.9978,
            "fbref_prior_metrics": {
              "squad": "Athletic Club",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 1.0,
              "minutes": 107.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.0,
              "prior_reliability": 0.08
            },
            "rationale": "XGBoost regressor (D_service) evaluated 38 historical appearances across 7 target models; FBref 2026-2027 prior blended (La Liga, Athletic Club, rel: 0.08, 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.7809,
                "tackles": 1.723,
                "tackles_won": 1.0898,
                "clearances": 2.0928,
                "aerial_won": 0.8257,
                "total_shots": 0.4196,
                "rating": 6.7231,
                "minutes": 79.78,
                "total_pass": 36.1019,
                "accurate_pass": 30.5363,
                "duels_won": 5.1172,
                "total_long_balls": 1.6558,
                "accurate_long_balls": 1.1086,
                "total_own_half_passes": 15.1372,
                "accurate_own_half_passes": 13.4519,
                "total_opp_half_passes": 20.9647,
                "accurate_opp_half_passes": 17.0844,
                "crosses_total": 1.8044,
                "crosses_accurate": 0.6302,
                "touches": 53.1709,
                "possession_lost": 8.8436,
                "dispossessed": 0.2574,
                "duels_lost": 3.4105,
                "aerial_lost": 0.8978,
                "total_contest": 0.4487,
                "won_contest": 0.3034,
                "ball_recovery": 2.9942,
                "challenges_lost": 0.9078,
                "fouls": 1.2021,
                "fouls_drawn": 2.3647,
                "blocks": 0.3384,
                "goals": 0.0789,
                "goal_rate": 0.0789,
                "assists": 0.0307,
                "assist_rate": 0.0307,
                "expected_goals": 0.0297,
                "expected_assists": 0.0569,
                "shots_on_target": 0.1193,
                "big_chances_created": 0.0,
                "xgot": 0.0236,
                "ball_carries": 13.4465,
                "total_progression": 45.2892,
                "progressive_carries": 0.7961,
                "key_pass": 0.7967,
                "shots_off_target": 0.3003
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 6,
                  "trained_at": "2026-11-01T11:26:13.602980+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 631,
                    "rows": 22117
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-25",
                    "opponent": "Getafe",
                    "minutes": 48.0,
                    "is_starting": true,
                    "weight": 0.1503,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-10-21",
                    "opponent": "Levante UD",
                    "minutes": 81.0,
                    "is_starting": true,
                    "weight": 0.1278,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-10-17",
                    "opponent": "Valencia",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1086,
                    "rating": 7.6
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "FC Barcelona",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0923,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Sevilla",
                    "minutes": 16.0,
                    "is_starting": false,
                    "weight": 0.0785,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-05-23",
                    "opponent": "Elche",
                    "minutes": 32.0,
                    "is_starting": false,
                    "weight": 0.0667,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-05-11",
                    "opponent": "Rayo Vallecano",
                    "minutes": 18.0,
                    "is_starting": false,
                    "weight": 0.0567,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-05-01",
                    "opponent": "Mallorca",
                    "minutes": 16.0,
                    "is_starting": false,
                    "weight": 0.0482,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-04-25",
                    "opponent": "Valencia",
                    "minutes": 21.0,
                    "is_starting": false,
                    "weight": 0.041,
                    "rating": 7.8
                  },
                  {
                    "match_date": "2026-04-21",
                    "opponent": "Real Betis",
                    "minutes": 14.0,
                    "is_starting": false,
                    "weight": 0.0348,
                    "rating": 6.5
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 1.0,
                  "totalClearance": 1.3543,
                  "aerialWon": 0.7192,
                  "totalClearance_p90": 2.3566,
                  "totalTackle": 1.1287,
                  "totalTackle_p90": 2.7919
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.7809180617332458,
                    "model_output": 0.7809,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2892
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0467
                      },
                      {
                        "name": "touches",
                        "importance": 0.0285
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0256
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0216
                      }
                    ],
                    "decomposition": {
                      "base": 0.8711,
                      "items": [
                        {
                          "name": "interceptionWon",
                          "contribution": -0.1223
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1005
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0206
                        },
                        {
                          "name": "touches",
                          "contribution": -0.019
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0154
                        }
                      ],
                      "others": -0.0134,
                      "total": 0.7809,
                      "log_link": true,
                      "margin_base": -0.137969,
                      "item_margins": [
                        {
                          "name": "interceptionWon",
                          "margin": -0.151341
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.1259
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.024613
                        },
                        {
                          "name": "touches",
                          "margin": -0.023154
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.019234
                        }
                      ],
                      "others_margin": -0.016874
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.723046898841858,
                    "model_output": 1.723,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2446
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0686
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0555
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0437
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0249
                      }
                    ],
                    "decomposition": {
                      "base": 1.3875,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1763
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.1151
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0663
                        },
                        {
                          "name": "totalClearance",
                          "contribution": 0.0575
                        },
                        {
                          "name": "totalTackle",
                          "contribution": -0.0419
                        }
                      ],
                      "others": 0.0948,
                      "total": 1.723,
                      "log_link": true,
                      "margin_base": 0.327503,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.119635
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.071044
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.040299
                        },
                        {
                          "name": "totalClearance",
                          "margin": 0.035022
                        },
                        {
                          "name": "totalTackle",
                          "margin": -0.025429
                        }
                      ],
                      "others_margin": 0.05662
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 1.0897809267044067,
                    "model_output": 1.0898,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1951
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0637
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0498
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0427
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0237
                      }
                    ],
                    "decomposition": {
                      "base": 0.8482,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1061
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.0593
                        },
                        {
                          "name": "totalClearance",
                          "contribution": 0.0445
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0427
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0351
                        }
                      ],
                      "others": 0.0393,
                      "total": 1.0898,
                      "log_link": true,
                      "margin_base": -0.164613,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.117807
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.0603
                        },
                        {
                          "name": "totalClearance",
                          "margin": 0.043
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.041232
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.034
                        }
                      ],
                      "others_margin": 0.036716
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 2.092808723449707,
                    "model_output": 2.0928,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2927
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.1441
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.033
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0239
                      }
                    ],
                    "decomposition": {
                      "base": 3.4157,
                      "items": [
                        {
                          "name": "totalClearance",
                          "contribution": -0.7903
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.3539
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.282
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.2545
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.2055
                        }
                      ],
                      "others": -0.1445,
                      "total": 2.0928,
                      "log_link": true,
                      "margin_base": 1.228383,
                      "item_margins": [
                        {
                          "name": "totalClearance",
                          "margin": -0.263147
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.126439
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": -0.099431
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.099099
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.087872
                        }
                      ],
                      "others_margin": -0.066767
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.8256778120994568,
                    "model_output": 0.8257,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1566
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.1557
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0794
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0422
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.027
                      }
                    ],
                    "decomposition": {
                      "base": 1.3697,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": -0.4042
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.124
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.1122
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.096
                        },
                        {
                          "name": "aerialLost",
                          "contribution": -0.0433
                        }
                      ],
                      "others": -0.0123,
                      "total": 0.8257,
                      "log_link": true,
                      "margin_base": 0.314594,
                      "item_margins": [
                        {
                          "name": "aerialWon",
                          "margin": -0.34965
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.120811
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.108648
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.103355
                        },
                        {
                          "name": "aerialLost",
                          "margin": -0.050326
                        }
                      ],
                      "others_margin": -0.014976
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.4196013808250427,
                    "model_output": 0.4196,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0952
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0683
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.0339
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0311
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.4812,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.095
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0529
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0156
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": 0.013
                        },
                        {
                          "name": "rating",
                          "contribution": 0.0129
                        }
                      ],
                      "others": -0.0298,
                      "total": 0.4196,
                      "log_link": false,
                      "margin_base": 0.481248,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.094968
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.052869
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.015566
                        },
                        {
                          "name": "duelWon_p90",
                          "margin": 0.012984
                        },
                        {
                          "name": "rating",
                          "margin": 0.01289
                        }
                      ],
                      "others_margin": -0.029857
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.723052024841309,
                    "model_output": 6.7231,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "accuratePass",
                        "importance": 0.0681
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.063
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.057
                      },
                      {
                        "name": "rating",
                        "importance": 0.0377
                      },
                      {
                        "name": "touches",
                        "importance": 0.0302
                      }
                    ],
                    "decomposition": {
                      "base": 6.7988,
                      "items": [
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.016
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0155
                        },
                        {
                          "name": "touches",
                          "contribution": -0.0082
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0068
                        },
                        {
                          "name": "tackle_success_rate",
                          "contribution": -0.0067
                        }
                      ],
                      "others": -0.0225,
                      "total": 6.7231,
                      "log_link": false,
                      "margin_base": 6.798781,
                      "item_margins": [
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.015995
                        },
                        {
                          "name": "totalPass",
                          "margin": -0.01548
                        },
                        {
                          "name": "touches",
                          "margin": -0.008205
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.006772
                        },
                        {
                          "name": "tackle_success_rate",
                          "margin": -0.006666
                        }
                      ],
                      "others_margin": -0.022611
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 38,
                  "role_matches": 20,
                  "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.442)",
              "stats": {
                "interceptions": 0.7792,
                "tackles": 1.7193,
                "tackles_won": 1.0874,
                "clearances": 2.0882,
                "aerial_won": 0.8239,
                "total_shots": 0.4187,
                "rating": 6.7231,
                "minutes": 79.78,
                "total_pass": 36.0225,
                "accurate_pass": 30.4691,
                "duels_won": 5.1059,
                "total_long_balls": 1.6522,
                "accurate_long_balls": 1.1062,
                "total_own_half_passes": 15.1039,
                "accurate_own_half_passes": 13.4223,
                "total_opp_half_passes": 20.9186,
                "accurate_opp_half_passes": 17.0468,
                "crosses_total": 1.8004,
                "crosses_accurate": 0.6288,
                "touches": 53.0539,
                "possession_lost": 8.8241,
                "dispossessed": 0.2568,
                "duels_lost": 3.403,
                "aerial_lost": 0.8958,
                "total_contest": 0.4477,
                "won_contest": 0.3027,
                "ball_recovery": 2.9876,
                "challenges_lost": 0.9058,
                "fouls": 1.1995,
                "fouls_drawn": 2.3595,
                "blocks": 0.3377,
                "goals": 0.0787,
                "goal_rate": 0.0787,
                "assists": 0.0306,
                "assist_rate": 0.0306,
                "expected_goals": 0.0296,
                "expected_assists": 0.0568,
                "shots_on_target": 0.119,
                "big_chances_created": 0.0,
                "xgot": 0.0235,
                "ball_carries": 13.4169,
                "total_progression": 45.1896,
                "progressive_carries": 0.7943,
                "key_pass": 0.7949,
                "shots_off_target": 0.2996
              },
              "params": {
                "market_value_eur": 3400000,
                "quality_factor": 0.4424,
                "boost_factor": 0.9978,
                "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": {
                "interceptions": 0.779,
                "tackles": 1.7193,
                "tackles_won": 1.0808,
                "clearances": 2.0882,
                "aerial_won": 0.8239,
                "total_shots": 0.4162,
                "rating": 6.7231,
                "minutes": 79.78,
                "total_pass": 36.0225,
                "accurate_pass": 30.4691,
                "duels_won": 5.1059,
                "total_long_balls": 1.6522,
                "accurate_long_balls": 1.1062,
                "total_own_half_passes": 15.1039,
                "accurate_own_half_passes": 13.4223,
                "total_opp_half_passes": 20.9186,
                "accurate_opp_half_passes": 17.0468,
                "crosses_total": 1.7984,
                "crosses_accurate": 0.6288,
                "touches": 53.0539,
                "possession_lost": 8.8241,
                "dispossessed": 0.2568,
                "duels_lost": 3.403,
                "aerial_lost": 0.8958,
                "total_contest": 0.4477,
                "won_contest": 0.3027,
                "ball_recovery": 2.9876,
                "challenges_lost": 0.9058,
                "fouls": 1.1967,
                "fouls_drawn": 2.3631,
                "blocks": 0.3377,
                "goals": 0.0782,
                "goal_rate": 0.0782,
                "assists": 0.0304,
                "assist_rate": 0.0304,
                "expected_goals": 0.0296,
                "expected_assists": 0.0568,
                "shots_on_target": 0.1183,
                "big_chances_created": 0.0,
                "xgot": 0.0235,
                "ball_carries": 13.4169,
                "total_progression": 45.1896,
                "progressive_carries": 0.7943,
                "key_pass": 0.7949,
                "shots_off_target": 0.2996
              },
              "params": {
                "blend_weight": 0.006,
                "history_matches": 38,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.8864,
                "prior_reliability": 0.08,
                "competition": "La Liga",
                "squad": "Athletic Club"
              },
              "changes": [
                {
                  "stat": "wonTackle",
                  "before": 1.0874,
                  "after": 1.0808
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 0.779,
                "tackles": 1.7193,
                "tackles_won": 1.0808,
                "clearances": 2.0882,
                "aerial_won": 0.8239,
                "total_shots": 0.4179,
                "rating": 6.7231,
                "minutes": 79.78,
                "total_pass": 36.0225,
                "accurate_pass": 30.4691,
                "duels_won": 5.1059,
                "total_long_balls": 1.6522,
                "accurate_long_balls": 1.1062,
                "total_own_half_passes": 15.1039,
                "accurate_own_half_passes": 13.4223,
                "total_opp_half_passes": 20.9186,
                "accurate_opp_half_passes": 17.0468,
                "crosses_total": 1.7984,
                "crosses_accurate": 0.6288,
                "touches": 53.0539,
                "possession_lost": 8.8241,
                "dispossessed": 0.2568,
                "duels_lost": 3.403,
                "aerial_lost": 0.8958,
                "total_contest": 0.4477,
                "won_contest": 0.3027,
                "ball_recovery": 2.9876,
                "challenges_lost": 0.9058,
                "fouls": 1.1967,
                "fouls_drawn": 2.3631,
                "blocks": 0.3377,
                "goals": 0.0782,
                "goal_rate": 0.0782,
                "assists": 0.0304,
                "assist_rate": 0.0304,
                "expected_goals": 0.0296,
                "expected_assists": 0.0568,
                "shots_on_target": 0.1183,
                "big_chances_created": 0.0,
                "xgot": 0.0235,
                "ball_carries": 13.4169,
                "total_progression": 45.1896,
                "progressive_carries": 0.7943,
                "key_pass": 0.7949,
                "shots_off_target": 0.2996
              },
              "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.779,
                "tackles": 1.7193,
                "tackles_won": 1.0808,
                "clearances": 2.0882,
                "aerial_won": 0.8239,
                "total_shots": 0.4179,
                "rating": 6.7231,
                "minutes": 79.78,
                "total_pass": 36.0225,
                "accurate_pass": 30.4691,
                "duels_won": 5.1059,
                "total_long_balls": 1.6522,
                "accurate_long_balls": 1.1062,
                "total_own_half_passes": 15.1039,
                "accurate_own_half_passes": 13.4223,
                "total_opp_half_passes": 20.9186,
                "accurate_opp_half_passes": 17.0468,
                "crosses_total": 1.7984,
                "crosses_accurate": 0.6288,
                "touches": 53.0539,
                "possession_lost": 8.8241,
                "dispossessed": 0.2568,
                "duels_lost": 3.403,
                "aerial_lost": 0.8958,
                "total_contest": 0.4477,
                "won_contest": 0.3027,
                "ball_recovery": 2.9876,
                "challenges_lost": 0.9058,
                "fouls": 1.1967,
                "fouls_drawn": 2.3631,
                "blocks": 0.3377,
                "goals": 0.0782,
                "goal_rate": 0.0782,
                "assists": 0.0304,
                "assist_rate": 0.0304,
                "expected_goals": 0.0296,
                "expected_assists": 0.0568,
                "shots_on_target": 0.1183,
                "big_chances_created": 0.0,
                "xgot": 0.0235,
                "ball_carries": 13.4169,
                "total_progression": 45.1896,
                "progressive_carries": 0.7943,
                "key_pass": 0.7949,
                "shots_off_target": 0.2996,
                "opponent_faced": "Mikel Oyarzabal",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Mikel Oyarzabal",
                  "matchup_zone": "Shape fallback"
                }
              }
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "interceptions": 0.779,
                "tackles": 1.7193,
                "tackles_won": 1.0808,
                "clearances": 2.0882,
                "aerial_won": 0.8239,
                "total_shots": 0.4179,
                "rating": 6.7231,
                "minutes": 79.78,
                "total_pass": 36.0225,
                "accurate_pass": 30.4691,
                "duels_won": 5.1059,
                "total_long_balls": 1.6522,
                "accurate_long_balls": 1.1062,
                "total_own_half_passes": 15.1039,
                "accurate_own_half_passes": 13.4223,
                "total_opp_half_passes": 20.9186,
                "accurate_opp_half_passes": 17.0468,
                "crosses_total": 1.7984,
                "crosses_accurate": 0.6288,
                "touches": 53.0539,
                "possession_lost": 8.8241,
                "dispossessed": 0.2568,
                "duels_lost": 3.403,
                "aerial_lost": 0.8958,
                "total_contest": 0.4477,
                "won_contest": 0.3027,
                "ball_recovery": 2.9876,
                "challenges_lost": 0.9058,
                "fouls": 1.1967,
                "fouls_drawn": 2.3631,
                "blocks": 0.3377,
                "goal_rate": 0.0782,
                "goals": 0,
                "assist_rate": 0.0304,
                "assists": 0,
                "expected_goals": 0.0296,
                "expected_assists": 0.0568,
                "shots_on_target": 0.1183,
                "big_chances_created": 0.0,
                "xgot": 0.0235,
                "ball_carries": 13.4169,
                "total_progression": 45.1896,
                "progressive_carries": 0.7943,
                "key_pass": 0.7949,
                "shots_off_target": 0.2996,
                "opponent_faced": "Mikel Oyarzabal",
                "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": 2
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.73 (squad xG sum 1.0016, xG scale 1.7263, xA scale 1.7263, team xA 1.22 = 0.71 x lambda)",
              "stats": {
                "interceptions": 0.779,
                "tackles": 1.7193,
                "tackles_won": 1.0808,
                "clearances": 2.0882,
                "aerial_won": 0.8239,
                "total_shots": 0.4179,
                "rating": 6.7231,
                "minutes": 79.78,
                "total_pass": 36.0225,
                "accurate_pass": 30.4691,
                "duels_won": 5.1059,
                "total_long_balls": 1.6522,
                "accurate_long_balls": 1.1062,
                "total_own_half_passes": 15.1039,
                "accurate_own_half_passes": 13.4223,
                "total_opp_half_passes": 20.9186,
                "accurate_opp_half_passes": 17.0468,
                "crosses_total": 1.7984,
                "crosses_accurate": 0.6288,
                "touches": 53.0539,
                "possession_lost": 8.8241,
                "dispossessed": 0.2568,
                "duels_lost": 3.403,
                "aerial_lost": 0.8958,
                "total_contest": 0.4477,
                "won_contest": 0.3027,
                "ball_recovery": 2.9876,
                "challenges_lost": 0.9058,
                "fouls": 1.1967,
                "fouls_drawn": 2.3631,
                "blocks": 0.3377,
                "goal_rate": 0.0782,
                "goals": 0,
                "assist_rate": 0.0304,
                "assists": 0,
                "expected_goals": 0.0511,
                "expected_assists": 0.0981,
                "shots_on_target": 0.1183,
                "big_chances_created": 0.0,
                "xgot": 0.0406,
                "ball_carries": 13.4169,
                "total_progression": 45.1896,
                "progressive_carries": 0.7943,
                "key_pass": 0.7949,
                "shots_off_target": 0.2996,
                "opponent_faced": "Mikel Oyarzabal",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 1.729,
                "squad_xg_sum": 1.0016,
                "squad_xa_sum": 0.7085,
                "team_expected_assists": 1.2231,
                "team_xa_to_xg_ratio": 0.7074,
                "bench_appearance_weighted": true,
                "xg_scale": 1.7263,
                "xa_scale": 1.7263,
                "opponent_lambda": 1.255,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0296,
                  "after": 0.0511
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0568,
                  "after": 0.0981
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 75.0)",
              "stats": {
                "interceptions": 0.779,
                "tackles": 1.7193,
                "tackles_won": 1.0808,
                "clearances": 2.0882,
                "aerial_won": 0.8239,
                "total_shots": 0.4179,
                "rating": 6.7231,
                "minutes": 79.78,
                "total_pass": 36.0225,
                "accurate_pass": 30.4691,
                "duels_won": 5.1059,
                "total_long_balls": 1.6522,
                "accurate_long_balls": 1.1062,
                "total_own_half_passes": 15.1039,
                "accurate_own_half_passes": 13.4223,
                "total_opp_half_passes": 20.9186,
                "accurate_opp_half_passes": 17.0468,
                "crosses_total": 1.7984,
                "crosses_accurate": 0.6288,
                "touches": 53.0539,
                "possession_lost": 8.8241,
                "dispossessed": 0.2568,
                "duels_lost": 3.403,
                "aerial_lost": 0.8958,
                "total_contest": 0.4477,
                "won_contest": 0.3027,
                "ball_recovery": 2.9876,
                "challenges_lost": 0.9058,
                "fouls": 1.1967,
                "fouls_drawn": 2.3631,
                "blocks": 0.3377,
                "goal_rate": 0.0782,
                "goals": 0,
                "assist_rate": 0.0304,
                "assists": 0,
                "expected_goals": 0.0511,
                "expected_assists": 0.0981,
                "shots_on_target": 0.1183,
                "big_chances_created": 0.0,
                "xgot": 0.0406,
                "ball_carries": 13.4169,
                "total_progression": 45.1896,
                "progressive_carries": 0.7943,
                "key_pass": 0.7949,
                "shots_off_target": 0.2996,
                "opponent_faced": "Mikel Oyarzabal",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 0.8,
                "fifa_overall": 75.0
              },
              "params": {
                "match_squad_rank": 14,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3590,
                "fifa_rank": 2420.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 75.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "interceptions": 0.779,
                "tackles": 1.7193,
                "tackles_won": 1.0808,
                "clearances": 2.0882,
                "aerial_won": 0.8239,
                "total_shots": 0.4179,
                "rating": 6.7231,
                "minutes": 79.78,
                "total_pass": 36.0225,
                "accurate_pass": 30.4691,
                "duels_won": 5.1059,
                "total_long_balls": 1.6522,
                "accurate_long_balls": 1.1062,
                "total_own_half_passes": 15.1039,
                "accurate_own_half_passes": 13.4223,
                "total_opp_half_passes": 20.9186,
                "accurate_opp_half_passes": 17.0468,
                "crosses_total": 1.7984,
                "crosses_accurate": 0.6288,
                "touches": 53.0539,
                "possession_lost": 8.8241,
                "dispossessed": 0.2568,
                "duels_lost": 3.403,
                "aerial_lost": 0.8958,
                "total_contest": 0.4477,
                "won_contest": 0.3027,
                "ball_recovery": 2.9876,
                "challenges_lost": 0.9058,
                "fouls": 1.1967,
                "fouls_drawn": 2.3631,
                "blocks": 0.3377,
                "goal_rate": 0.0782,
                "goals": 0,
                "assist_rate": 0.0304,
                "assists": 0,
                "expected_goals": 0.0511,
                "expected_assists": 0.0981,
                "shots_on_target": 0.1183,
                "big_chances_created": 0.0,
                "xgot": 0.0406,
                "ball_carries": 13.4169,
                "total_progression": 45.1896,
                "progressive_carries": 0.7943,
                "key_pass": 0.7949,
                "shots_off_target": 0.2996,
                "opponent_faced": "Mikel Oyarzabal",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0498,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 0.8,
                "fifa_overall": 75.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 2,
                "goals_allocated": 0,
                "goal_probability": 0.0498,
                "goal_rate": 0.0782,
                "scorer_weight": 0.0639,
                "squad_weight_total": 1.9109,
                "weight_share": 0.0334,
                "finishing_factor": 1.25,
                "appearance_weight": 1.0,
                "weight_rank": 9,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Iñaki Williams",
                    "weight": 0.5576,
                    "already": 0,
                    "effective_weight": 0.5576,
                    "runner_up": "Nico Williams",
                    "runner_up_effective_weight": 0.305
                  },
                  {
                    "n": 2,
                    "player": "Nico Williams",
                    "weight": 0.305,
                    "already": 0,
                    "effective_weight": 0.305,
                    "runner_up": "Álex Berenguer",
                    "runner_up_effective_weight": 0.2692
                  }
                ]
              }
            },
            {
              "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.779,
                "tackles": 1.7193,
                "tackles_won": 1.0808,
                "clearances": 2.0882,
                "aerial_won": 0.8239,
                "total_shots": 0.4179,
                "rating": 6.7231,
                "minutes": 79.78,
                "total_pass": 36.0225,
                "accurate_pass": 30.4691,
                "duels_won": 5.1059,
                "total_long_balls": 1.6522,
                "accurate_long_balls": 1.1062,
                "total_own_half_passes": 15.1039,
                "accurate_own_half_passes": 13.4223,
                "total_opp_half_passes": 20.9186,
                "accurate_opp_half_passes": 17.0468,
                "crosses_total": 1.7984,
                "crosses_accurate": 0.6288,
                "touches": 53.0539,
                "possession_lost": 8.8241,
                "dispossessed": 0.2568,
                "duels_lost": 3.403,
                "aerial_lost": 0.8958,
                "total_contest": 0.4477,
                "won_contest": 0.3027,
                "ball_recovery": 2.9876,
                "challenges_lost": 0.9058,
                "fouls": 1.1967,
                "fouls_drawn": 2.3631,
                "blocks": 0.3377,
                "goal_rate": 0.0782,
                "goals": 0,
                "assist_rate": 0.0304,
                "assists": 0,
                "expected_goals": 0.0511,
                "expected_assists": 0.0981,
                "shots_on_target": 0.1183,
                "big_chances_created": 0.0,
                "xgot": 0.0406,
                "ball_carries": 13.4169,
                "total_progression": 45.1896,
                "progressive_carries": 0.7943,
                "key_pass": 0.7949,
                "shots_off_target": 0.2996,
                "opponent_faced": "Mikel Oyarzabal",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0498,
                "projected_assists": 0,
                "assist_probability": 0.0934,
                "finishing_factor": 1.25,
                "creation_factor": 0.8,
                "fifa_overall": 75.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0934,
                "assist_rate": 0.0304,
                "provider_weight": 0.0785,
                "squad_weight_total": 1.1843,
                "weight_share": 0.0663,
                "creation_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 7,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Álex Berenguer",
                    "weight": 0.2673,
                    "already": 0,
                    "effective_weight": 0.2673,
                    "runner_up": "Yuri Berchiche",
                    "runner_up_effective_weight": 0.2271
                  }
                ]
              }
            }
          ]
        },
        "Aymeric Laporte": {
          "player_id": 149734,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 14,
          "height": 191,
          "market_value": 8400000,
          "stats": {
            "interceptions": 1,
            "tackles": 1,
            "tackles_won": 1,
            "clearances": 4,
            "aerial_won": 2,
            "total_shots": 1,
            "rating": 7.0391,
            "minutes": 85,
            "total_pass": 71,
            "accurate_pass": 66,
            "duels_won": 3,
            "total_long_balls": 7,
            "accurate_long_balls": 4,
            "total_own_half_passes": 41,
            "accurate_own_half_passes": 40,
            "total_opp_half_passes": 30,
            "accurate_opp_half_passes": 26,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 81,
            "possession_lost": 5.7567,
            "dispossessed": 0.0026,
            "duels_lost": 3,
            "aerial_lost": 1,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 4,
            "challenges_lost": 0,
            "fouls": 1,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assist_rate": 0.0031,
            "assists": 0,
            "expected_goals": 0.0911,
            "expected_assists": 0.0245,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0395,
            "ball_carries": 25,
            "total_progression": 115,
            "progressive_carries": 1,
            "key_pass": 0,
            "shots_off_target": 0,
            "tackles_in_zone": 1.0,
            "tackles_won_in_zone": 0.9,
            "interceptions_in_zone": 0.8,
            "clearances_in_zone": 0.7,
            "aerial_duels_won": 0.7,
            "defensive_success_rate": 0.783,
            "opponent_faced": "Mikel Oyarzabal",
            "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.0871,
            "projected_assists": 0,
            "assist_probability": 0.0242,
            "finishing_factor": 0.8,
            "creation_factor": 0.8271,
            "fifa_overall": 84.0
          },
          "latest_10_games": [
            {
              "match_id": 17122851.0,
              "match_date": "2026-10-21",
              "home_team": "Levante UD",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 73,
                "rating": 6.5,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0102,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "total_pass": 70,
                "accurate_pass": 65,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 0,
                "clearances": 3,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 5,
                "saves": 0
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421074.0,
              "match_date": "2026-10-17",
              "home_team": "Valencia",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Valencia",
              "stats": {
                "minutes": 90,
                "rating": 7.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0429,
                "expected_assists": 0.0242,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 95,
                "accurate_pass": 86,
                "key_pass": 2,
                "tackles": 1,
                "interceptions": 1,
                "clearances": 3,
                "aerial_won": 2,
                "duels_won": 3,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416337.0,
              "match_date": "2026-09-19",
              "home_team": "Athletic Club",
              "away_team": "Deportivo Alavés",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 90,
                "rating": 7.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0188,
                "total_shots": 0,
                "total_pass": 96,
                "accurate_pass": 93,
                "tackles": 4,
                "tackles_won": 3,
                "interceptions": 2,
                "clearances": 3,
                "aerial_won": 3,
                "duels_won": 7,
                "ball_recovery": 8
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416322.0,
              "match_date": "2026-09-12",
              "home_team": "Athletic Club",
              "away_team": "Elche",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Elche",
              "stats": {
                "minutes": 90,
                "rating": 7.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.031,
                "total_shots": 0,
                "total_pass": 118,
                "accurate_pass": 111,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416317.0,
              "match_date": "2026-09-05",
              "home_team": "Athletic Club",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 90,
                "rating": 7.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0042,
                "total_shots": 0,
                "total_pass": 56,
                "accurate_pass": 53,
                "clearances": 8,
                "duels_won": 1,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416308.0,
              "match_date": "2026-08-30",
              "home_team": "Celta Vigo",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.432,
                "expected_assists": 0.0097,
                "total_shots": 2,
                "shots_off_target": 2,
                "total_pass": 71,
                "accurate_pass": 69,
                "tackles": 1,
                "clearances": 7,
                "aerial_won": 3,
                "duels_won": 4,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421059.0,
              "match_date": "2026-08-27",
              "home_team": "FC Barcelona",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "FC Barcelona",
              "stats": {
                "minutes": 90,
                "rating": 5.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.001,
                "total_shots": 0,
                "total_pass": 34,
                "accurate_pass": 31,
                "interceptions": 1,
                "clearances": 1,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416301.0,
              "match_date": "2026-08-22",
              "home_team": "Athletic Club",
              "away_team": "Sevilla",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 32,
                "rating": 7.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.098,
                "total_shots": 0,
                "total_pass": 41,
                "accurate_pass": 36,
                "tackles": 3,
                "tackles_won": 2,
                "interceptions": 1,
                "clearances": 1,
                "aerial_won": 2,
                "duels_won": 5,
                "ball_recovery": 9
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083656.0,
              "match_date": "2026-05-17",
              "home_team": "Athletic Club",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0131,
                "total_shots": 0,
                "total_pass": 67,
                "accurate_pass": 60,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 3,
                "aerial_won": 2,
                "duels_won": 3,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083629.0,
              "match_date": "2026-05-13",
              "home_team": "Espanyol",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 90,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0148,
                "expected_assists": 0.0031,
                "total_shots": 1,
                "total_pass": 26,
                "accurate_pass": 18,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 10,
                "aerial_won": 4,
                "duels_won": 7,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 160,
            "combined_rank_score": 140.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 59.0,
            "sofascore_rating": 7.6667,
            "sofascore_appearances": 3.0,
            "fifa_rank": 221.0,
            "fifa_overall": 84.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 3,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 7.0391,
            "source_file": "data/player_rankings.csv",
            "player_name": "Aymeric Laporte",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Guilherme Arana",
                  "ranking": 155
                },
                {
                  "player_name": "Will Smallbone",
                  "ranking": 156
                },
                {
                  "player_name": "Do-dam Kim",
                  "ranking": 157
                },
                {
                  "player_name": "Nuno Mendes",
                  "ranking": 158
                },
                {
                  "player_name": "Temurkhuja Abdukholikov",
                  "ranking": 159
                }
              ],
              "lower": [
                {
                  "player_name": "Daniel Castro",
                  "ranking": 161
                },
                {
                  "player_name": "Ryan Gravenberch",
                  "ranking": 162
                },
                {
                  "player_name": "Jhon Arias",
                  "ranking": 163
                },
                {
                  "player_name": "Oleksiy Gutsulyak",
                  "ranking": 164
                },
                {
                  "player_name": "Igor Vujačić",
                  "ranking": 165
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.774,
          "history_matches": 33,
          "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": 33,
            "data_confidence": 0.774,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.9999,
            "fbref_prior_metrics": {
              "squad": "Athletic Club",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 2.0,
              "minutes": 213.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.85,
              "shots_on_target_pct": 0.0,
              "prior_reliability": 0.16
            },
            "rationale": "XGBoost regressor (D_service) evaluated 33 historical appearances across 7 target models; FBref 2026-2027 prior blended (La Liga, Athletic Club, rel: 0.16, 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.9128,
                "tackles": 1.273,
                "tackles_won": 0.8243,
                "clearances": 4.4774,
                "aerial_won": 1.7145,
                "total_shots": 0.5064,
                "rating": 7.0391,
                "minutes": 85.47,
                "total_pass": 70.9942,
                "accurate_pass": 65.7244,
                "duels_won": 3.3632,
                "total_long_balls": 6.5684,
                "accurate_long_balls": 3.7854,
                "total_own_half_passes": 41.4085,
                "accurate_own_half_passes": 39.8125,
                "total_opp_half_passes": 29.5857,
                "accurate_opp_half_passes": 25.9119,
                "crosses_total": 0.1848,
                "crosses_accurate": 0.0081,
                "touches": 80.5521,
                "possession_lost": 5.7573,
                "dispossessed": 0.0026,
                "duels_lost": 2.6861,
                "aerial_lost": 1.2781,
                "total_contest": 0.1555,
                "won_contest": 0.0885,
                "ball_recovery": 4.4251,
                "challenges_lost": 0.2658,
                "fouls": 1.0725,
                "fouls_drawn": 0.3943,
                "blocks": 0.1944,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0031,
                "assist_rate": 0.0031,
                "expected_goals": 0.0528,
                "expected_assists": 0.0142,
                "shots_on_target": 0.0622,
                "big_chances_created": 0.0034,
                "xgot": 0.0229,
                "ball_carries": 25.0276,
                "total_progression": 114.6654,
                "progressive_carries": 0.9276,
                "key_pass": 0.3192,
                "shots_off_target": 0.4442
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 6,
                  "trained_at": "2026-11-01T11:26:13.602980+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 631,
                    "rows": 22117
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-21",
                    "opponent": "Levante UD",
                    "minutes": 73.0,
                    "is_starting": true,
                    "weight": 0.1507,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-10-17",
                    "opponent": "Valencia",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1281,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Deportivo Alavés",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1089,
                    "rating": 7.8
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Elche",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0926,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Atlético Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0787,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Celta Vigo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0669,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "FC Barcelona",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0568,
                    "rating": 5.7
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Sevilla",
                    "minutes": 32.0,
                    "is_starting": false,
                    "weight": 0.0483,
                    "rating": 7.4
                  },
                  {
                    "match_date": "2026-05-17",
                    "opponent": "Celta Vigo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0411,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-05-13",
                    "opponent": "Espanyol",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0349,
                    "rating": 6.5
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 1.0,
                  "totalClearance": 3.6048,
                  "aerialWon": 1.6808,
                  "totalClearance_p90": 3.9166,
                  "totalTackle": 1.2774,
                  "totalTackle_p90": 1.6346
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.9128223657608032,
                    "model_output": 0.9128,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2892
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0467
                      },
                      {
                        "name": "touches",
                        "importance": 0.0285
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0256
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0216
                      }
                    ],
                    "decomposition": {
                      "base": 0.8711,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1127
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0428
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": 0.0316
                        },
                        {
                          "name": "interceptionWon_p90",
                          "contribution": -0.022
                        },
                        {
                          "name": "errorLeadToAGoal",
                          "contribution": -0.0125
                        }
                      ],
                      "others": -0.0253,
                      "total": 0.9128,
                      "log_link": true,
                      "margin_base": -0.137969,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.121662
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.044438
                        },
                        {
                          "name": "ballRecovery_p90",
                          "margin": 0.032985
                        },
                        {
                          "name": "interceptionWon_p90",
                          "margin": -0.022868
                        },
                        {
                          "name": "errorLeadToAGoal",
                          "margin": -0.013207
                        }
                      ],
                      "others_margin": -0.027379
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.2729641199111938,
                    "model_output": 1.273,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2446
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0686
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0555
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0437
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0249
                      }
                    ],
                    "decomposition": {
                      "base": 1.3875,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.186
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0642
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.0547
                        },
                        {
                          "name": "press_vulnerability",
                          "contribution": -0.0525
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0482
                        }
                      ],
                      "others": -0.1903,
                      "total": 1.273,
                      "log_link": true,
                      "margin_base": 0.327503,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.125823
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.04165
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.0356
                        },
                        {
                          "name": "press_vulnerability",
                          "margin": -0.034151
                        },
                        {
                          "name": "accuratePass",
                          "margin": -0.032441
                        }
                      ],
                      "others_margin": -0.139336
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.8242655992507935,
                    "model_output": 0.8243,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1951
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0637
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0498
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0427
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0237
                      }
                    ],
                    "decomposition": {
                      "base": 0.8482,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1152
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.0435
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.032
                        },
                        {
                          "name": "challengeLost",
                          "contribution": -0.03
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0255
                        }
                      ],
                      "others": -0.1461,
                      "total": 0.8243,
                      "log_link": true,
                      "margin_base": -0.164613,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.127383
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.044166
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.032298
                        },
                        {
                          "name": "challengeLost",
                          "margin": -0.031303
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.02662
                        }
                      ],
                      "others_margin": -0.163217
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 4.47736120223999,
                    "model_output": 4.4774,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2927
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.1441
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.033
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0239
                      }
                    ],
                    "decomposition": {
                      "base": 3.4157,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.4053
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": 0.2978
                        },
                        {
                          "name": "totalClearance",
                          "contribution": 0.2315
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.1724
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.1045
                        }
                      ],
                      "others": -0.1498,
                      "total": 4.4774,
                      "log_link": true,
                      "margin_base": 1.228383,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.112138
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": 0.07504
                        },
                        {
                          "name": "totalClearance",
                          "margin": 0.054688
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.038867
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.022835
                        }
                      ],
                      "others_margin": -0.032917
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 1.7144519090652466,
                    "model_output": 1.7145,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1566
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.1557
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0794
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0422
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.027
                      }
                    ],
                    "decomposition": {
                      "base": 1.3697,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": 0.1897
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1606
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0713
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": -0.0411
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0375
                        }
                      ],
                      "others": 0.1444,
                      "total": 1.7145,
                      "log_link": true,
                      "margin_base": 0.314594,
                      "item_margins": [
                        {
                          "name": "aerialWon",
                          "margin": 0.129682
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.098022
                        },
                        {
                          "name": "ballRecovery",
                          "margin": -0.042359
                        },
                        {
                          "name": "progressive_carries_p90",
                          "margin": -0.025243
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.023579
                        }
                      ],
                      "others_margin": 0.087976
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.5064019560813904,
                    "model_output": 0.5064,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0952
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0683
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.0339
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0311
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.4812,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.054
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0252
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": 0.0195
                        },
                        {
                          "name": "touches",
                          "contribution": -0.0136
                        },
                        {
                          "name": "rating",
                          "contribution": 0.0116
                        }
                      ],
                      "others": -0.0211,
                      "total": 0.5064,
                      "log_link": false,
                      "margin_base": 0.481248,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.054031
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.025231
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": 0.019489
                        },
                        {
                          "name": "touches",
                          "margin": -0.013601
                        },
                        {
                          "name": "rating",
                          "margin": 0.011593
                        }
                      ],
                      "others_margin": -0.021126
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 7.039137840270996,
                    "model_output": 7.0391,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "accuratePass",
                        "importance": 0.0681
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.063
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.057
                      },
                      {
                        "name": "rating",
                        "importance": 0.0377
                      },
                      {
                        "name": "touches",
                        "importance": 0.0302
                      }
                    ],
                    "decomposition": {
                      "base": 6.7988,
                      "items": [
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0727
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.0654
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.063
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0254
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0093
                        }
                      ],
                      "others": 0.0045,
                      "total": 7.0391,
                      "log_link": false,
                      "margin_base": 6.798781,
                      "item_margins": [
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.072736
                        },
                        {
                          "name": "totalPass",
                          "margin": 0.065379
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.063008
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.025437
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.009252
                        }
                      ],
                      "others_margin": 0.004543
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 33,
                  "role_matches": 31,
                  "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.9999, quality 0.503)",
              "stats": {
                "interceptions": 0.9127,
                "tackles": 1.2728,
                "tackles_won": 0.8242,
                "clearances": 4.4769,
                "aerial_won": 1.7143,
                "total_shots": 0.5064,
                "rating": 7.0391,
                "minutes": 85.47,
                "total_pass": 70.9871,
                "accurate_pass": 65.7178,
                "duels_won": 3.3629,
                "total_long_balls": 6.5677,
                "accurate_long_balls": 3.785,
                "total_own_half_passes": 41.4044,
                "accurate_own_half_passes": 39.8085,
                "total_opp_half_passes": 29.5827,
                "accurate_opp_half_passes": 25.9093,
                "crosses_total": 0.1848,
                "crosses_accurate": 0.0081,
                "touches": 80.544,
                "possession_lost": 5.7567,
                "dispossessed": 0.0026,
                "duels_lost": 2.6858,
                "aerial_lost": 1.278,
                "total_contest": 0.1555,
                "won_contest": 0.0885,
                "ball_recovery": 4.4247,
                "challenges_lost": 0.2658,
                "fouls": 1.0724,
                "fouls_drawn": 0.3943,
                "blocks": 0.1944,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0031,
                "assist_rate": 0.0031,
                "expected_goals": 0.0528,
                "expected_assists": 0.0142,
                "shots_on_target": 0.0622,
                "big_chances_created": 0.0034,
                "xgot": 0.0229,
                "ball_carries": 25.0251,
                "total_progression": 114.6539,
                "progressive_carries": 0.9275,
                "key_pass": 0.3192,
                "shots_off_target": 0.4442
              },
              "params": {
                "market_value_eur": 8400000,
                "quality_factor": 0.5035,
                "boost_factor": 0.9999,
                "reference_quality": 0.505,
                "history_matches": 33,
                "history_shrink": 0.1316,
                "market_value_known": true
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0137)",
              "stats": {
                "interceptions": 0.911,
                "tackles": 1.2728,
                "tackles_won": 0.8292,
                "clearances": 4.4769,
                "aerial_won": 1.7143,
                "total_shots": 0.5105,
                "rating": 7.0391,
                "minutes": 85.47,
                "total_pass": 70.9871,
                "accurate_pass": 65.7178,
                "duels_won": 3.3629,
                "total_long_balls": 6.5677,
                "accurate_long_balls": 3.785,
                "total_own_half_passes": 41.4044,
                "accurate_own_half_passes": 39.8085,
                "total_opp_half_passes": 29.5827,
                "accurate_opp_half_passes": 25.9093,
                "crosses_total": 0.1877,
                "crosses_accurate": 0.0081,
                "touches": 80.544,
                "possession_lost": 5.7567,
                "dispossessed": 0.0026,
                "duels_lost": 2.6858,
                "aerial_lost": 1.278,
                "total_contest": 0.1555,
                "won_contest": 0.0885,
                "ball_recovery": 4.4247,
                "challenges_lost": 0.2658,
                "fouls": 1.0631,
                "fouls_drawn": 0.3943,
                "blocks": 0.1944,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0031,
                "assist_rate": 0.0031,
                "expected_goals": 0.0528,
                "expected_assists": 0.0142,
                "shots_on_target": 0.0613,
                "big_chances_created": 0.0034,
                "xgot": 0.0229,
                "ball_carries": 25.0251,
                "total_progression": 114.6539,
                "progressive_carries": 0.9275,
                "key_pass": 0.3192,
                "shots_off_target": 0.4442
              },
              "params": {
                "blend_weight": 0.0137,
                "history_matches": 33,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.9497,
                "prior_reliability": 0.16,
                "competition": "La Liga",
                "squad": "Athletic Club"
              },
              "changes": [
                {
                  "stat": "fouls",
                  "before": 1.0724,
                  "after": 1.0631
                },
                {
                  "stat": "wonTackle",
                  "before": 0.8242,
                  "after": 0.8292
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 0.911,
                "tackles": 1.2728,
                "tackles_won": 0.8292,
                "clearances": 4.4769,
                "aerial_won": 1.7143,
                "total_shots": 0.5105,
                "rating": 7.0391,
                "minutes": 85.47,
                "total_pass": 70.9871,
                "accurate_pass": 65.7178,
                "duels_won": 3.3629,
                "total_long_balls": 6.5677,
                "accurate_long_balls": 3.785,
                "total_own_half_passes": 41.4044,
                "accurate_own_half_passes": 39.8085,
                "total_opp_half_passes": 29.5827,
                "accurate_opp_half_passes": 25.9093,
                "crosses_total": 0.1877,
                "crosses_accurate": 0.0081,
                "touches": 80.544,
                "possession_lost": 5.7567,
                "dispossessed": 0.0026,
                "duels_lost": 2.6858,
                "aerial_lost": 1.278,
                "total_contest": 0.1555,
                "won_contest": 0.0885,
                "ball_recovery": 4.4247,
                "challenges_lost": 0.2658,
                "fouls": 1.0631,
                "fouls_drawn": 0.3943,
                "blocks": 0.1944,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0031,
                "assist_rate": 0.0031,
                "expected_goals": 0.0528,
                "expected_assists": 0.0142,
                "shots_on_target": 0.0613,
                "big_chances_created": 0.0034,
                "xgot": 0.0229,
                "ball_carries": 25.0251,
                "total_progression": 114.6539,
                "progressive_carries": 0.9275,
                "key_pass": 0.3192,
                "shots_off_target": 0.4442
              },
              "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.911,
                "tackles": 1.2728,
                "tackles_won": 0.8292,
                "clearances": 4.4769,
                "aerial_won": 1.7143,
                "total_shots": 0.5105,
                "rating": 7.0391,
                "minutes": 85.47,
                "total_pass": 70.9871,
                "accurate_pass": 65.7178,
                "duels_won": 3.3629,
                "total_long_balls": 6.5677,
                "accurate_long_balls": 3.785,
                "total_own_half_passes": 41.4044,
                "accurate_own_half_passes": 39.8085,
                "total_opp_half_passes": 29.5827,
                "accurate_opp_half_passes": 25.9093,
                "crosses_total": 0.1877,
                "crosses_accurate": 0.0081,
                "touches": 80.544,
                "possession_lost": 5.7567,
                "dispossessed": 0.0026,
                "duels_lost": 2.6858,
                "aerial_lost": 1.278,
                "total_contest": 0.1555,
                "won_contest": 0.0885,
                "ball_recovery": 4.4247,
                "challenges_lost": 0.2658,
                "fouls": 1.0631,
                "fouls_drawn": 0.3943,
                "blocks": 0.1944,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0031,
                "assist_rate": 0.0031,
                "expected_goals": 0.0528,
                "expected_assists": 0.0142,
                "shots_on_target": 0.0613,
                "big_chances_created": 0.0034,
                "xgot": 0.0229,
                "ball_carries": 25.0251,
                "total_progression": 114.6539,
                "progressive_carries": 0.9275,
                "key_pass": 0.3192,
                "shots_off_target": 0.4442,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.9,
                "interceptions_in_zone": 0.8,
                "clearances_in_zone": 0.7,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.783,
                "opponent_faced": "Mikel Oyarzabal",
                "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": "Mikel Oyarzabal",
                  "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 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "interceptions": 0.911,
                "tackles": 1.2728,
                "tackles_won": 0.8292,
                "clearances": 4.4769,
                "aerial_won": 1.7143,
                "total_shots": 0.5105,
                "rating": 7.0391,
                "minutes": 85.47,
                "total_pass": 70.9871,
                "accurate_pass": 65.7178,
                "duels_won": 3.3629,
                "total_long_balls": 6.5677,
                "accurate_long_balls": 3.785,
                "total_own_half_passes": 41.4044,
                "accurate_own_half_passes": 39.8085,
                "total_opp_half_passes": 29.5827,
                "accurate_opp_half_passes": 25.9093,
                "crosses_total": 0.1877,
                "crosses_accurate": 0.0081,
                "touches": 80.544,
                "possession_lost": 5.7567,
                "dispossessed": 0.0026,
                "duels_lost": 2.6858,
                "aerial_lost": 1.278,
                "total_contest": 0.1555,
                "won_contest": 0.0885,
                "ball_recovery": 4.4247,
                "challenges_lost": 0.2658,
                "fouls": 1.0631,
                "fouls_drawn": 0.3943,
                "blocks": 0.1944,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0031,
                "assists": 0,
                "expected_goals": 0.0528,
                "expected_assists": 0.0142,
                "shots_on_target": 0.0613,
                "big_chances_created": 0.0034,
                "xgot": 0.0229,
                "ball_carries": 25.0251,
                "total_progression": 114.6539,
                "progressive_carries": 0.9275,
                "key_pass": 0.3192,
                "shots_off_target": 0.4442,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.9,
                "interceptions_in_zone": 0.8,
                "clearances_in_zone": 0.7,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.783,
                "opponent_faced": "Mikel Oyarzabal",
                "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": 2
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.73 (squad xG sum 1.0016, xG scale 1.7263, xA scale 1.7263, team xA 1.22 = 0.71 x lambda)",
              "stats": {
                "interceptions": 0.911,
                "tackles": 1.2728,
                "tackles_won": 0.8292,
                "clearances": 4.4769,
                "aerial_won": 1.7143,
                "total_shots": 0.5105,
                "rating": 7.0391,
                "minutes": 85.47,
                "total_pass": 70.9871,
                "accurate_pass": 65.7178,
                "duels_won": 3.3629,
                "total_long_balls": 6.5677,
                "accurate_long_balls": 3.785,
                "total_own_half_passes": 41.4044,
                "accurate_own_half_passes": 39.8085,
                "total_opp_half_passes": 29.5827,
                "accurate_opp_half_passes": 25.9093,
                "crosses_total": 0.1877,
                "crosses_accurate": 0.0081,
                "touches": 80.544,
                "possession_lost": 5.7567,
                "dispossessed": 0.0026,
                "duels_lost": 2.6858,
                "aerial_lost": 1.278,
                "total_contest": 0.1555,
                "won_contest": 0.0885,
                "ball_recovery": 4.4247,
                "challenges_lost": 0.2658,
                "fouls": 1.0631,
                "fouls_drawn": 0.3943,
                "blocks": 0.1944,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0031,
                "assists": 0,
                "expected_goals": 0.0911,
                "expected_assists": 0.0245,
                "shots_on_target": 0.0613,
                "big_chances_created": 0.0034,
                "xgot": 0.0395,
                "ball_carries": 25.0251,
                "total_progression": 114.6539,
                "progressive_carries": 0.9275,
                "key_pass": 0.3192,
                "shots_off_target": 0.4442,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.9,
                "interceptions_in_zone": 0.8,
                "clearances_in_zone": 0.7,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.783,
                "opponent_faced": "Mikel Oyarzabal",
                "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.8271
              },
              "params": {
                "team_lambda": 1.729,
                "squad_xg_sum": 1.0016,
                "squad_xa_sum": 0.7085,
                "team_expected_assists": 1.2231,
                "team_xa_to_xg_ratio": 0.7074,
                "bench_appearance_weighted": true,
                "xg_scale": 1.7263,
                "xa_scale": 1.7263,
                "opponent_lambda": 1.255,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0528,
                  "after": 0.0911
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0142,
                  "after": 0.0245
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 84.0)",
              "stats": {
                "interceptions": 0.911,
                "tackles": 1.2728,
                "tackles_won": 0.8292,
                "clearances": 4.4769,
                "aerial_won": 1.7143,
                "total_shots": 0.5105,
                "rating": 7.0391,
                "minutes": 85.47,
                "total_pass": 70.9871,
                "accurate_pass": 65.7178,
                "duels_won": 3.3629,
                "total_long_balls": 6.5677,
                "accurate_long_balls": 3.785,
                "total_own_half_passes": 41.4044,
                "accurate_own_half_passes": 39.8085,
                "total_opp_half_passes": 29.5827,
                "accurate_opp_half_passes": 25.9093,
                "crosses_total": 0.1877,
                "crosses_accurate": 0.0081,
                "touches": 80.544,
                "possession_lost": 5.7567,
                "dispossessed": 0.0026,
                "duels_lost": 2.6858,
                "aerial_lost": 1.278,
                "total_contest": 0.1555,
                "won_contest": 0.0885,
                "ball_recovery": 4.4247,
                "challenges_lost": 0.2658,
                "fouls": 1.0631,
                "fouls_drawn": 0.3943,
                "blocks": 0.1944,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0031,
                "assists": 0,
                "expected_goals": 0.0911,
                "expected_assists": 0.0245,
                "shots_on_target": 0.0613,
                "big_chances_created": 0.0034,
                "xgot": 0.0395,
                "ball_carries": 25.0251,
                "total_progression": 114.6539,
                "progressive_carries": 0.9275,
                "key_pass": 0.3192,
                "shots_off_target": 0.4442,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.9,
                "interceptions_in_zone": 0.8,
                "clearances_in_zone": 0.7,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.783,
                "opponent_faced": "Mikel Oyarzabal",
                "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.8271,
                "fifa_overall": 84.0
              },
              "params": {
                "match_squad_rank": 3,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 160,
                "fifa_rank": 221.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 84.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "interceptions": 0.911,
                "tackles": 1.2728,
                "tackles_won": 0.8292,
                "clearances": 4.4769,
                "aerial_won": 1.7143,
                "total_shots": 0.5105,
                "rating": 7.0391,
                "minutes": 85.47,
                "total_pass": 70.9871,
                "accurate_pass": 65.7178,
                "duels_won": 3.3629,
                "total_long_balls": 6.5677,
                "accurate_long_balls": 3.785,
                "total_own_half_passes": 41.4044,
                "accurate_own_half_passes": 39.8085,
                "total_opp_half_passes": 29.5827,
                "accurate_opp_half_passes": 25.9093,
                "crosses_total": 0.1877,
                "crosses_accurate": 0.0081,
                "touches": 80.544,
                "possession_lost": 5.7567,
                "dispossessed": 0.0026,
                "duels_lost": 2.6858,
                "aerial_lost": 1.278,
                "total_contest": 0.1555,
                "won_contest": 0.0885,
                "ball_recovery": 4.4247,
                "challenges_lost": 0.2658,
                "fouls": 1.0631,
                "fouls_drawn": 0.3943,
                "blocks": 0.1944,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0031,
                "assists": 0,
                "expected_goals": 0.0911,
                "expected_assists": 0.0245,
                "shots_on_target": 0.0613,
                "big_chances_created": 0.0034,
                "xgot": 0.0395,
                "ball_carries": 25.0251,
                "total_progression": 114.6539,
                "progressive_carries": 0.9275,
                "key_pass": 0.3192,
                "shots_off_target": 0.4442,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.9,
                "interceptions_in_zone": 0.8,
                "clearances_in_zone": 0.7,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.783,
                "opponent_faced": "Mikel Oyarzabal",
                "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.0871,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 0.8271,
                "fifa_overall": 84.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 2,
                "goals_allocated": 0,
                "goal_probability": 0.0871,
                "goal_rate": 0.0,
                "scorer_weight": 0.0729,
                "squad_weight_total": 1.9109,
                "weight_share": 0.0381,
                "finishing_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 7,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Iñaki Williams",
                    "weight": 0.5576,
                    "already": 0,
                    "effective_weight": 0.5576,
                    "runner_up": "Nico Williams",
                    "runner_up_effective_weight": 0.305
                  },
                  {
                    "n": 2,
                    "player": "Nico Williams",
                    "weight": 0.305,
                    "already": 0,
                    "effective_weight": 0.305,
                    "runner_up": "Álex Berenguer",
                    "runner_up_effective_weight": 0.2692
                  }
                ]
              }
            },
            {
              "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.911,
                "tackles": 1.2728,
                "tackles_won": 0.8292,
                "clearances": 4.4769,
                "aerial_won": 1.7143,
                "total_shots": 0.5105,
                "rating": 7.0391,
                "minutes": 85.47,
                "total_pass": 70.9871,
                "accurate_pass": 65.7178,
                "duels_won": 3.3629,
                "total_long_balls": 6.5677,
                "accurate_long_balls": 3.785,
                "total_own_half_passes": 41.4044,
                "accurate_own_half_passes": 39.8085,
                "total_opp_half_passes": 29.5827,
                "accurate_opp_half_passes": 25.9093,
                "crosses_total": 0.1877,
                "crosses_accurate": 0.0081,
                "touches": 80.544,
                "possession_lost": 5.7567,
                "dispossessed": 0.0026,
                "duels_lost": 2.6858,
                "aerial_lost": 1.278,
                "total_contest": 0.1555,
                "won_contest": 0.0885,
                "ball_recovery": 4.4247,
                "challenges_lost": 0.2658,
                "fouls": 1.0631,
                "fouls_drawn": 0.3943,
                "blocks": 0.1944,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0031,
                "assists": 0,
                "expected_goals": 0.0911,
                "expected_assists": 0.0245,
                "shots_on_target": 0.0613,
                "big_chances_created": 0.0034,
                "xgot": 0.0395,
                "ball_carries": 25.0251,
                "total_progression": 114.6539,
                "progressive_carries": 0.9275,
                "key_pass": 0.3192,
                "shots_off_target": 0.4442,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.9,
                "interceptions_in_zone": 0.8,
                "clearances_in_zone": 0.7,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.783,
                "opponent_faced": "Mikel Oyarzabal",
                "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.0871,
                "projected_assists": 0,
                "assist_probability": 0.0242,
                "finishing_factor": 0.8,
                "creation_factor": 0.8271,
                "fifa_overall": 84.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0242,
                "assist_rate": 0.0031,
                "provider_weight": 0.0203,
                "squad_weight_total": 1.1843,
                "weight_share": 0.0171,
                "creation_factor": 0.8271,
                "appearance_weight": 1.0,
                "weight_rank": 12,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Álex Berenguer",
                    "weight": 0.2673,
                    "already": 0,
                    "effective_weight": 0.2673,
                    "runner_up": "Yuri Berchiche",
                    "runner_up_effective_weight": 0.2271
                  }
                ]
              }
            }
          ]
        },
        "Dani Vivian": {
          "player_id": 910978,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 3,
          "height": 183,
          "market_value": 18200000,
          "stats": {
            "interceptions": 1,
            "tackles": 2,
            "tackles_won": 1,
            "clearances": 4,
            "aerial_won": 1,
            "total_shots": 1,
            "rating": 6.7235,
            "minutes": 79,
            "total_pass": 43,
            "accurate_pass": 38,
            "duels_won": 3,
            "total_long_balls": 4,
            "accurate_long_balls": 2,
            "total_own_half_passes": 24,
            "accurate_own_half_passes": 22,
            "total_opp_half_passes": 19,
            "accurate_opp_half_passes": 16,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 56,
            "possession_lost": 7.2563,
            "dispossessed": 0.3483,
            "duels_lost": 3,
            "aerial_lost": 1,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 5,
            "challenges_lost": 1,
            "fouls": 1,
            "fouls_drawn": 1,
            "blocks": 0,
            "goal_rate": 0.0578,
            "goals": 0,
            "assist_rate": 0.0,
            "assists": 0,
            "expected_goals": 0.0413,
            "expected_assists": 0.0485,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.1303,
            "ball_carries": 14,
            "total_progression": 65,
            "progressive_carries": 1,
            "key_pass": 0,
            "shots_off_target": 0,
            "tackles_in_zone": 1.0,
            "tackles_won_in_zone": 0.9,
            "interceptions_in_zone": 1.0,
            "clearances_in_zone": 0.9,
            "aerial_duels_won": 0.7,
            "defensive_success_rate": 0.783,
            "opponent_faced": "Mikel Oyarzabal",
            "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.0405,
            "projected_assists": 0,
            "assist_probability": 0.0473,
            "finishing_factor": 1.25,
            "creation_factor": 0.8,
            "fifa_overall": 78.0
          },
          "latest_10_games": [
            {
              "match_id": 16421081.0,
              "match_date": "2026-10-25",
              "home_team": "Athletic Club",
              "away_team": "Getafe",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Getafe",
              "stats": {
                "minutes": 48,
                "rating": 6.8,
                "expected_assists": 0.0084,
                "total_shots": 0,
                "total_pass": 45,
                "accurate_pass": 41,
                "interceptions": 2,
                "clearances": 2,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083731.0,
              "match_date": "2026-05-23",
              "home_team": "Real Madrid",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 90,
                "rating": 5.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0038,
                "total_shots": 0,
                "total_pass": 22,
                "accurate_pass": 19,
                "tackles": 3,
                "tackles_won": 2,
                "interceptions": 1,
                "clearances": 3,
                "duels_won": 4,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083629.0,
              "match_date": "2026-05-13",
              "home_team": "Espanyol",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 45,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0528,
                "expected_assists": 0.0021,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 18,
                "accurate_pass": 16,
                "clearances": 4,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083539.0,
              "match_date": "2026-05-10",
              "home_team": "Athletic Club",
              "away_team": "Valencia",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Valencia",
              "stats": {
                "minutes": 45,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0099,
                "total_shots": 0,
                "total_pass": 38,
                "accurate_pass": 36,
                "tackles": 1,
                "clearances": 1,
                "duels_won": 1,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083242.0,
              "match_date": "2026-04-25",
              "home_team": "Atlético Madrid",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 90,
                "rating": 6.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0348,
                "expected_assists": 0.0077,
                "total_shots": 2,
                "shots_off_target": 2,
                "total_pass": 56,
                "accurate_pass": 49,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 4,
                "aerial_won": 3,
                "duels_won": 6,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083258.0,
              "match_date": "2026-04-21",
              "home_team": "Athletic Club",
              "away_team": "Osasuna",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 15,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 1,
                "clearances": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083102.0,
              "match_date": "2026-04-12",
              "home_team": "Athletic Club",
              "away_team": "Villarreal",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 90,
                "rating": 7.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.164,
                "total_shots": 0,
                "total_pass": 84,
                "accurate_pass": 77,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 5,
                "aerial_won": 2,
                "duels_won": 5,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14081813.0,
              "match_date": "2026-04-05",
              "home_team": "Getafe",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Getafe",
              "stats": {
                "minutes": 90,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0314,
                "total_shots": 0,
                "total_pass": 59,
                "accurate_pass": 51,
                "tackles": 4,
                "tackles_won": 3,
                "interceptions": 1,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 5,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083657.0,
              "match_date": "2026-03-22",
              "home_team": "Athletic Club",
              "away_team": "Real Betis",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 90,
                "rating": 7.7,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0431,
                "expected_assists": 0.0046,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 32,
                "accurate_pass": 28,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 4,
                "duels_won": 3,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083632.0,
              "match_date": "2026-03-14",
              "home_team": "Girona FC",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Girona FC",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0206,
                "total_shots": 0,
                "total_pass": 68,
                "accurate_pass": 62,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 1,
                "clearances": 3,
                "duels_won": 3,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 2014,
            "combined_rank_score": 938.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 766.0,
            "sofascore_rating": 6.6484,
            "sofascore_appearances": 31.0,
            "fifa_rank": 1110.0,
            "fifa_overall": 78.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 13,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.7235,
            "source_file": "data/player_rankings.csv",
            "player_name": "Dani Vivian",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Egor Khvalko",
                  "ranking": 2009
                },
                {
                  "player_name": "Vladislav Malkevich",
                  "ranking": 2010
                },
                {
                  "player_name": "Ayoub El Kaabi",
                  "ranking": 2011
                },
                {
                  "player_name": "Viktor Tsygankov",
                  "ranking": 2012
                },
                {
                  "player_name": "Brennan Johnson",
                  "ranking": 2013
                }
              ],
              "lower": [
                {
                  "player_name": "Joaquín Larrivey",
                  "ranking": 2015
                },
                {
                  "player_name": "Dominik Livaković",
                  "ranking": 2016
                },
                {
                  "player_name": "Alexander Nübel",
                  "ranking": 2017
                },
                {
                  "player_name": "Domingos Duarte",
                  "ranking": 2018
                },
                {
                  "player_name": "Davide Frattesi",
                  "ranking": 2019
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.75,
          "history_matches": 32,
          "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": 32,
            "data_confidence": 0.75,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 1.0044,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (D_service) evaluated 32 historical appearances across 7 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 7 target models",
              "stats": {
                "interceptions": 1.0428,
                "tackles": 1.5829,
                "tackles_won": 1.0151,
                "clearances": 4.0426,
                "aerial_won": 1.1299,
                "total_shots": 0.511,
                "rating": 6.7235,
                "minutes": 79.37,
                "total_pass": 43.1937,
                "accurate_pass": 37.8829,
                "duels_won": 3.3258,
                "total_long_balls": 4.3114,
                "accurate_long_balls": 2.1836,
                "total_own_half_passes": 24.142,
                "accurate_own_half_passes": 22.2421,
                "total_opp_half_passes": 19.0517,
                "accurate_opp_half_passes": 15.6409,
                "crosses_total": 0.4793,
                "crosses_accurate": 0.1488,
                "touches": 55.3672,
                "possession_lost": 7.2245,
                "dispossessed": 0.3468,
                "duels_lost": 3.4541,
                "aerial_lost": 1.2061,
                "total_contest": 0.1405,
                "won_contest": 0.1369,
                "ball_recovery": 4.9439,
                "challenges_lost": 0.8289,
                "fouls": 1.1033,
                "fouls_drawn": 0.5942,
                "blocks": 0.26,
                "goals": 0.0575,
                "goal_rate": 0.0575,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0238,
                "expected_assists": 0.028,
                "shots_on_target": 0.2087,
                "big_chances_created": 0.08,
                "xgot": 0.0752,
                "ball_carries": 13.941,
                "total_progression": 64.2346,
                "progressive_carries": 0.6393,
                "key_pass": 0.166,
                "shots_off_target": 0.3023
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 6,
                  "trained_at": "2026-11-01T11:26:13.602980+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 631,
                    "rows": 22117
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-25",
                    "opponent": "Getafe",
                    "minutes": 48.0,
                    "is_starting": true,
                    "weight": 0.1508,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-05-23",
                    "opponent": "Real Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1282,
                    "rating": 5.6
                  },
                  {
                    "match_date": "2026-05-13",
                    "opponent": "Espanyol",
                    "minutes": 45.0,
                    "is_starting": true,
                    "weight": 0.109,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-05-10",
                    "opponent": "Valencia",
                    "minutes": 45.0,
                    "is_starting": false,
                    "weight": 0.0926,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-04-25",
                    "opponent": "Atlético Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0787,
                    "rating": 6.1
                  },
                  {
                    "match_date": "2026-04-21",
                    "opponent": "Osasuna",
                    "minutes": 15.0,
                    "is_starting": false,
                    "weight": 0.0669,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-04-12",
                    "opponent": "Villarreal",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0569,
                    "rating": 7.4
                  },
                  {
                    "match_date": "2026-04-05",
                    "opponent": "Getafe",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0484,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-03-22",
                    "opponent": "Real Betis",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0411,
                    "rating": 7.7
                  },
                  {
                    "match_date": "2026-03-14",
                    "opponent": "Girona FC",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0349,
                    "rating": 6.4
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 1.0,
                  "totalClearance": 3.5612,
                  "aerialWon": 0.7122,
                  "totalClearance_p90": 6.3861,
                  "totalTackle": 1.4331,
                  "totalTackle_p90": 1.5321
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 1.0428012609481812,
                    "model_output": 1.0428,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2892
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0467
                      },
                      {
                        "name": "touches",
                        "importance": 0.0285
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0256
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0216
                      }
                    ],
                    "decomposition": {
                      "base": 0.8711,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1169
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": 0.025
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.017
                        },
                        {
                          "name": "challengeLost",
                          "contribution": 0.0143
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": -0.0116
                        }
                      ],
                      "others": 0.0101,
                      "total": 1.0428,
                      "log_link": true,
                      "margin_base": -0.137969,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.125886
                        },
                        {
                          "name": "ballRecovery_p90",
                          "margin": 0.025017
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.016677
                        },
                        {
                          "name": "challengeLost",
                          "margin": 0.013821
                        },
                        {
                          "name": "duelWon_p90",
                          "margin": -0.011173
                        }
                      ],
                      "others_margin": 0.009652
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.5829333066940308,
                    "model_output": 1.5829,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2446
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0686
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0555
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0437
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0249
                      }
                    ],
                    "decomposition": {
                      "base": 1.3875,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1693
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0466
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.0454
                        },
                        {
                          "name": "challengeLost",
                          "contribution": 0.0385
                        },
                        {
                          "name": "dispossessed",
                          "contribution": 0.032
                        }
                      ],
                      "others": -0.0432,
                      "total": 1.5829,
                      "log_link": true,
                      "margin_base": 0.327503,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.115157
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.030375
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.02963
                        },
                        {
                          "name": "challengeLost",
                          "margin": 0.024428
                        },
                        {
                          "name": "dispossessed",
                          "margin": 0.019888
                        }
                      ],
                      "others_margin": -0.026952
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 1.0151417255401611,
                    "model_output": 1.0151,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1951
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0637
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0498
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0427
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0237
                      }
                    ],
                    "decomposition": {
                      "base": 0.8482,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1045
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.0464
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0399
                        },
                        {
                          "name": "challengeLost",
                          "contribution": 0.029
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0228
                        }
                      ],
                      "others": 0.0497,
                      "total": 1.0151,
                      "log_link": true,
                      "margin_base": -0.164613,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.116195
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.047575
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.040789
                        },
                        {
                          "name": "challengeLost",
                          "margin": 0.029749
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.023299
                        }
                      ],
                      "others_margin": 0.050212
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 4.042614459991455,
                    "model_output": 4.0426,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2927
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.1441
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.033
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0239
                      }
                    ],
                    "decomposition": {
                      "base": 3.4157,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.4593
                        },
                        {
                          "name": "totalClearance",
                          "contribution": 0.2847
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.2972
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.2638
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": -0.0688
                        }
                      ],
                      "others": -0.0817,
                      "total": 4.0426,
                      "log_link": true,
                      "margin_base": 1.228383,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.12616
                        },
                        {
                          "name": "totalClearance",
                          "margin": 0.070895
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.069019
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.061012
                        },
                        {
                          "name": "ballRecovery_p90",
                          "margin": -0.016536
                        }
                      ],
                      "others_margin": -0.020019
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 1.1298671960830688,
                    "model_output": 1.1299,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1566
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.1557
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0794
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0422
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.027
                      }
                    ],
                    "decomposition": {
                      "base": 1.3697,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": -0.373
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1402
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0906
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": -0.0283
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0268
                        }
                      ],
                      "others": -0.0425,
                      "total": 1.1299,
                      "log_link": true,
                      "margin_base": 0.314594,
                      "item_margins": [
                        {
                          "name": "aerialWon",
                          "margin": -0.317907
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.131604
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.07665
                        },
                        {
                          "name": "progressive_carries_p90",
                          "margin": -0.023339
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.022592
                        }
                      ],
                      "others_margin": -0.036909
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.510990560054779,
                    "model_output": 0.511,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0952
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0683
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.0339
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0311
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.4812,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.059
                        },
                        {
                          "name": "totalProgression",
                          "contribution": 0.0212
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0188
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0159
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0103
                        }
                      ],
                      "others": -0.026,
                      "total": 0.511,
                      "log_link": false,
                      "margin_base": 0.481248,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.058995
                        },
                        {
                          "name": "totalProgression",
                          "margin": 0.021157
                        },
                        {
                          "name": "rating",
                          "margin": -0.018836
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.015882
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.010298
                        }
                      ],
                      "others_margin": -0.02599
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.7235283851623535,
                    "model_output": 6.7235,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "accuratePass",
                        "importance": 0.0681
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.063
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.057
                      },
                      {
                        "name": "rating",
                        "importance": 0.0377
                      },
                      {
                        "name": "touches",
                        "importance": 0.0302
                      }
                    ],
                    "decomposition": {
                      "base": 6.7988,
                      "items": [
                        {
                          "name": "rating",
                          "contribution": -0.0219
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0192
                        },
                        {
                          "name": "errorLeadToAGoal",
                          "contribution": -0.0129
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0085
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": -0.0084
                        }
                      ],
                      "others": -0.0044,
                      "total": 6.7235,
                      "log_link": false,
                      "margin_base": 6.798781,
                      "item_margins": [
                        {
                          "name": "rating",
                          "margin": -0.021891
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.019232
                        },
                        {
                          "name": "errorLeadToAGoal",
                          "margin": -0.012867
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.008547
                        },
                        {
                          "name": "duelWon_p90",
                          "margin": -0.008427
                        }
                      ],
                      "others_margin": -0.004289
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 32,
                  "role_matches": 29,
                  "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.0044, quality 0.613)",
              "stats": {
                "interceptions": 1.0474,
                "tackles": 1.5899,
                "tackles_won": 1.0196,
                "clearances": 4.0604,
                "aerial_won": 1.1348,
                "total_shots": 0.5132,
                "rating": 6.7235,
                "minutes": 79.37,
                "total_pass": 43.3838,
                "accurate_pass": 38.0496,
                "duels_won": 3.3404,
                "total_long_balls": 4.3304,
                "accurate_long_balls": 2.1932,
                "total_own_half_passes": 24.2482,
                "accurate_own_half_passes": 22.34,
                "total_opp_half_passes": 19.1355,
                "accurate_opp_half_passes": 15.7097,
                "crosses_total": 0.4814,
                "crosses_accurate": 0.1495,
                "touches": 55.6108,
                "possession_lost": 7.2563,
                "dispossessed": 0.3483,
                "duels_lost": 3.4693,
                "aerial_lost": 1.2114,
                "total_contest": 0.1411,
                "won_contest": 0.1375,
                "ball_recovery": 4.9657,
                "challenges_lost": 0.8325,
                "fouls": 1.1082,
                "fouls_drawn": 0.5968,
                "blocks": 0.2611,
                "goals": 0.0578,
                "goal_rate": 0.0578,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0239,
                "expected_assists": 0.0281,
                "shots_on_target": 0.2096,
                "big_chances_created": 0.0804,
                "xgot": 0.0755,
                "ball_carries": 14.0023,
                "total_progression": 64.5172,
                "progressive_carries": 0.6421,
                "key_pass": 0.1667,
                "shots_off_target": 0.3036
              },
              "params": {
                "market_value_eur": 18200000,
                "quality_factor": 0.613,
                "boost_factor": 1.0044,
                "reference_quality": 0.505,
                "history_matches": 32,
                "history_shrink": 0.1351,
                "market_value_known": true
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 1.0474,
                "tackles": 1.5899,
                "tackles_won": 1.0196,
                "clearances": 4.0604,
                "aerial_won": 1.1348,
                "total_shots": 0.5132,
                "rating": 6.7235,
                "minutes": 79.37,
                "total_pass": 43.3838,
                "accurate_pass": 38.0496,
                "duels_won": 3.3404,
                "total_long_balls": 4.3304,
                "accurate_long_balls": 2.1932,
                "total_own_half_passes": 24.2482,
                "accurate_own_half_passes": 22.34,
                "total_opp_half_passes": 19.1355,
                "accurate_opp_half_passes": 15.7097,
                "crosses_total": 0.4814,
                "crosses_accurate": 0.1495,
                "touches": 55.6108,
                "possession_lost": 7.2563,
                "dispossessed": 0.3483,
                "duels_lost": 3.4693,
                "aerial_lost": 1.2114,
                "total_contest": 0.1411,
                "won_contest": 0.1375,
                "ball_recovery": 4.9657,
                "challenges_lost": 0.8325,
                "fouls": 1.1082,
                "fouls_drawn": 0.5968,
                "blocks": 0.2611,
                "goals": 0.0578,
                "goal_rate": 0.0578,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0239,
                "expected_assists": 0.0281,
                "shots_on_target": 0.2096,
                "big_chances_created": 0.0804,
                "xgot": 0.0755,
                "ball_carries": 14.0023,
                "total_progression": 64.5172,
                "progressive_carries": 0.6421,
                "key_pass": 0.1667,
                "shots_off_target": 0.3036
              },
              "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.0474,
                "tackles": 1.5899,
                "tackles_won": 1.0196,
                "clearances": 4.0604,
                "aerial_won": 1.1348,
                "total_shots": 0.5132,
                "rating": 6.7235,
                "minutes": 79.37,
                "total_pass": 43.3838,
                "accurate_pass": 38.0496,
                "duels_won": 3.3404,
                "total_long_balls": 4.3304,
                "accurate_long_balls": 2.1932,
                "total_own_half_passes": 24.2482,
                "accurate_own_half_passes": 22.34,
                "total_opp_half_passes": 19.1355,
                "accurate_opp_half_passes": 15.7097,
                "crosses_total": 0.4814,
                "crosses_accurate": 0.1495,
                "touches": 55.6108,
                "possession_lost": 7.2563,
                "dispossessed": 0.3483,
                "duels_lost": 3.4693,
                "aerial_lost": 1.2114,
                "total_contest": 0.1411,
                "won_contest": 0.1375,
                "ball_recovery": 4.9657,
                "challenges_lost": 0.8325,
                "fouls": 1.1082,
                "fouls_drawn": 0.5968,
                "blocks": 0.2611,
                "goals": 0.0578,
                "goal_rate": 0.0578,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0239,
                "expected_assists": 0.0281,
                "shots_on_target": 0.2096,
                "big_chances_created": 0.0804,
                "xgot": 0.0755,
                "ball_carries": 14.0023,
                "total_progression": 64.5172,
                "progressive_carries": 0.6421,
                "key_pass": 0.1667,
                "shots_off_target": 0.3036,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.9,
                "interceptions_in_zone": 1.0,
                "clearances_in_zone": 0.9,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.783,
                "opponent_faced": "Mikel Oyarzabal",
                "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": "Mikel Oyarzabal",
                  "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 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "interceptions": 1.0474,
                "tackles": 1.5899,
                "tackles_won": 1.0196,
                "clearances": 4.0604,
                "aerial_won": 1.1348,
                "total_shots": 0.5132,
                "rating": 6.7235,
                "minutes": 79.37,
                "total_pass": 43.3838,
                "accurate_pass": 38.0496,
                "duels_won": 3.3404,
                "total_long_balls": 4.3304,
                "accurate_long_balls": 2.1932,
                "total_own_half_passes": 24.2482,
                "accurate_own_half_passes": 22.34,
                "total_opp_half_passes": 19.1355,
                "accurate_opp_half_passes": 15.7097,
                "crosses_total": 0.4814,
                "crosses_accurate": 0.1495,
                "touches": 55.6108,
                "possession_lost": 7.2563,
                "dispossessed": 0.3483,
                "duels_lost": 3.4693,
                "aerial_lost": 1.2114,
                "total_contest": 0.1411,
                "won_contest": 0.1375,
                "ball_recovery": 4.9657,
                "challenges_lost": 0.8325,
                "fouls": 1.1082,
                "fouls_drawn": 0.5968,
                "blocks": 0.2611,
                "goal_rate": 0.0578,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0239,
                "expected_assists": 0.0281,
                "shots_on_target": 0.2096,
                "big_chances_created": 0.0804,
                "xgot": 0.0755,
                "ball_carries": 14.0023,
                "total_progression": 64.5172,
                "progressive_carries": 0.6421,
                "key_pass": 0.1667,
                "shots_off_target": 0.3036,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.9,
                "interceptions_in_zone": 1.0,
                "clearances_in_zone": 0.9,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.783,
                "opponent_faced": "Mikel Oyarzabal",
                "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": 2
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.73 (squad xG sum 1.0016, xG scale 1.7263, xA scale 1.7263, team xA 1.22 = 0.71 x lambda)",
              "stats": {
                "interceptions": 1.0474,
                "tackles": 1.5899,
                "tackles_won": 1.0196,
                "clearances": 4.0604,
                "aerial_won": 1.1348,
                "total_shots": 0.5132,
                "rating": 6.7235,
                "minutes": 79.37,
                "total_pass": 43.3838,
                "accurate_pass": 38.0496,
                "duels_won": 3.3404,
                "total_long_balls": 4.3304,
                "accurate_long_balls": 2.1932,
                "total_own_half_passes": 24.2482,
                "accurate_own_half_passes": 22.34,
                "total_opp_half_passes": 19.1355,
                "accurate_opp_half_passes": 15.7097,
                "crosses_total": 0.4814,
                "crosses_accurate": 0.1495,
                "touches": 55.6108,
                "possession_lost": 7.2563,
                "dispossessed": 0.3483,
                "duels_lost": 3.4693,
                "aerial_lost": 1.2114,
                "total_contest": 0.1411,
                "won_contest": 0.1375,
                "ball_recovery": 4.9657,
                "challenges_lost": 0.8325,
                "fouls": 1.1082,
                "fouls_drawn": 0.5968,
                "blocks": 0.2611,
                "goal_rate": 0.0578,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0413,
                "expected_assists": 0.0485,
                "shots_on_target": 0.2096,
                "big_chances_created": 0.0804,
                "xgot": 0.1303,
                "ball_carries": 14.0023,
                "total_progression": 64.5172,
                "progressive_carries": 0.6421,
                "key_pass": 0.1667,
                "shots_off_target": 0.3036,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.9,
                "interceptions_in_zone": 1.0,
                "clearances_in_zone": 0.9,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.783,
                "opponent_faced": "Mikel Oyarzabal",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 1.729,
                "squad_xg_sum": 1.0016,
                "squad_xa_sum": 0.7085,
                "team_expected_assists": 1.2231,
                "team_xa_to_xg_ratio": 0.7074,
                "bench_appearance_weighted": true,
                "xg_scale": 1.7263,
                "xa_scale": 1.7263,
                "opponent_lambda": 1.255,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0239,
                  "after": 0.0413
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0281,
                  "after": 0.0485
                }
              ]
            },
            {
              "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": {
                "interceptions": 1.0474,
                "tackles": 1.5899,
                "tackles_won": 1.0196,
                "clearances": 4.0604,
                "aerial_won": 1.1348,
                "total_shots": 0.5132,
                "rating": 6.7235,
                "minutes": 79.37,
                "total_pass": 43.3838,
                "accurate_pass": 38.0496,
                "duels_won": 3.3404,
                "total_long_balls": 4.3304,
                "accurate_long_balls": 2.1932,
                "total_own_half_passes": 24.2482,
                "accurate_own_half_passes": 22.34,
                "total_opp_half_passes": 19.1355,
                "accurate_opp_half_passes": 15.7097,
                "crosses_total": 0.4814,
                "crosses_accurate": 0.1495,
                "touches": 55.6108,
                "possession_lost": 7.2563,
                "dispossessed": 0.3483,
                "duels_lost": 3.4693,
                "aerial_lost": 1.2114,
                "total_contest": 0.1411,
                "won_contest": 0.1375,
                "ball_recovery": 4.9657,
                "challenges_lost": 0.8325,
                "fouls": 1.1082,
                "fouls_drawn": 0.5968,
                "blocks": 0.2611,
                "goal_rate": 0.0578,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0413,
                "expected_assists": 0.0485,
                "shots_on_target": 0.2096,
                "big_chances_created": 0.0804,
                "xgot": 0.1303,
                "ball_carries": 14.0023,
                "total_progression": 64.5172,
                "progressive_carries": 0.6421,
                "key_pass": 0.1667,
                "shots_off_target": 0.3036,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.9,
                "interceptions_in_zone": 1.0,
                "clearances_in_zone": 0.9,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.783,
                "opponent_faced": "Mikel Oyarzabal",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 0.8,
                "fifa_overall": 78.0
              },
              "params": {
                "match_squad_rank": 13,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 2014,
                "fifa_rank": 1110.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 78.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "interceptions": 1.0474,
                "tackles": 1.5899,
                "tackles_won": 1.0196,
                "clearances": 4.0604,
                "aerial_won": 1.1348,
                "total_shots": 0.5132,
                "rating": 6.7235,
                "minutes": 79.37,
                "total_pass": 43.3838,
                "accurate_pass": 38.0496,
                "duels_won": 3.3404,
                "total_long_balls": 4.3304,
                "accurate_long_balls": 2.1932,
                "total_own_half_passes": 24.2482,
                "accurate_own_half_passes": 22.34,
                "total_opp_half_passes": 19.1355,
                "accurate_opp_half_passes": 15.7097,
                "crosses_total": 0.4814,
                "crosses_accurate": 0.1495,
                "touches": 55.6108,
                "possession_lost": 7.2563,
                "dispossessed": 0.3483,
                "duels_lost": 3.4693,
                "aerial_lost": 1.2114,
                "total_contest": 0.1411,
                "won_contest": 0.1375,
                "ball_recovery": 4.9657,
                "challenges_lost": 0.8325,
                "fouls": 1.1082,
                "fouls_drawn": 0.5968,
                "blocks": 0.2611,
                "goal_rate": 0.0578,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0413,
                "expected_assists": 0.0485,
                "shots_on_target": 0.2096,
                "big_chances_created": 0.0804,
                "xgot": 0.1303,
                "ball_carries": 14.0023,
                "total_progression": 64.5172,
                "progressive_carries": 0.6421,
                "key_pass": 0.1667,
                "shots_off_target": 0.3036,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.9,
                "interceptions_in_zone": 1.0,
                "clearances_in_zone": 0.9,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.783,
                "opponent_faced": "Mikel Oyarzabal",
                "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.0405,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 0.8,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 2,
                "goals_allocated": 0,
                "goal_probability": 0.0405,
                "goal_rate": 0.0578,
                "scorer_weight": 0.0516,
                "squad_weight_total": 1.9109,
                "weight_share": 0.027,
                "finishing_factor": 1.25,
                "appearance_weight": 1.0,
                "weight_rank": 11,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Iñaki Williams",
                    "weight": 0.5576,
                    "already": 0,
                    "effective_weight": 0.5576,
                    "runner_up": "Nico Williams",
                    "runner_up_effective_weight": 0.305
                  },
                  {
                    "n": 2,
                    "player": "Nico Williams",
                    "weight": 0.305,
                    "already": 0,
                    "effective_weight": 0.305,
                    "runner_up": "Álex Berenguer",
                    "runner_up_effective_weight": 0.2692
                  }
                ]
              }
            },
            {
              "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.0474,
                "tackles": 1.5899,
                "tackles_won": 1.0196,
                "clearances": 4.0604,
                "aerial_won": 1.1348,
                "total_shots": 0.5132,
                "rating": 6.7235,
                "minutes": 79.37,
                "total_pass": 43.3838,
                "accurate_pass": 38.0496,
                "duels_won": 3.3404,
                "total_long_balls": 4.3304,
                "accurate_long_balls": 2.1932,
                "total_own_half_passes": 24.2482,
                "accurate_own_half_passes": 22.34,
                "total_opp_half_passes": 19.1355,
                "accurate_opp_half_passes": 15.7097,
                "crosses_total": 0.4814,
                "crosses_accurate": 0.1495,
                "touches": 55.6108,
                "possession_lost": 7.2563,
                "dispossessed": 0.3483,
                "duels_lost": 3.4693,
                "aerial_lost": 1.2114,
                "total_contest": 0.1411,
                "won_contest": 0.1375,
                "ball_recovery": 4.9657,
                "challenges_lost": 0.8325,
                "fouls": 1.1082,
                "fouls_drawn": 0.5968,
                "blocks": 0.2611,
                "goal_rate": 0.0578,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0413,
                "expected_assists": 0.0485,
                "shots_on_target": 0.2096,
                "big_chances_created": 0.0804,
                "xgot": 0.1303,
                "ball_carries": 14.0023,
                "total_progression": 64.5172,
                "progressive_carries": 0.6421,
                "key_pass": 0.1667,
                "shots_off_target": 0.3036,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.9,
                "interceptions_in_zone": 1.0,
                "clearances_in_zone": 0.9,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.783,
                "opponent_faced": "Mikel Oyarzabal",
                "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.0405,
                "projected_assists": 0,
                "assist_probability": 0.0473,
                "finishing_factor": 1.25,
                "creation_factor": 0.8,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0473,
                "assist_rate": 0.0,
                "provider_weight": 0.0388,
                "squad_weight_total": 1.1843,
                "weight_share": 0.0328,
                "creation_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 9,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Álex Berenguer",
                    "weight": 0.2673,
                    "already": 0,
                    "effective_weight": 0.2673,
                    "runner_up": "Yuri Berchiche",
                    "runner_up_effective_weight": 0.2271
                  }
                ]
              }
            }
          ]
        },
        "Yuri Berchiche": {
          "player_id": 84531,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 17,
          "height": 181,
          "market_value": 910000,
          "stats": {
            "interceptions": 1,
            "tackles": 2,
            "tackles_won": 1,
            "clearances": 3,
            "aerial_won": 1,
            "total_shots": 1,
            "rating": 7.0429,
            "minutes": 78,
            "total_pass": 56,
            "accurate_pass": 51,
            "duels_won": 4,
            "total_long_balls": 4,
            "accurate_long_balls": 2,
            "total_own_half_passes": 23,
            "accurate_own_half_passes": 22,
            "total_opp_half_passes": 33,
            "accurate_opp_half_passes": 29,
            "crosses_total": 3,
            "crosses_accurate": 1,
            "touches": 77,
            "possession_lost": 9.3908,
            "dispossessed": 0.1933,
            "duels_lost": 2,
            "aerial_lost": 1,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 5,
            "challenges_lost": 0,
            "fouls": 1,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assist_rate": 0.1268,
            "assists": 0,
            "expected_goals": 0.0822,
            "expected_assists": 0.2511,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0143,
            "ball_carries": 18,
            "total_progression": 75,
            "progressive_carries": 1,
            "key_pass": 1,
            "shots_off_target": 1,
            "tackles_in_zone": 1.9,
            "tackles_won_in_zone": 1.5,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.6,
            "aerial_duels_won": 0.9,
            "defensive_success_rate": 0.504,
            "opponent_faced": "Carlos Soler",
            "pressing_zone": "Left Wing vs Right Back — Flank Battle",
            "matchup_zone": "Left Wing vs Right Back — Flank Battle",
            "antagonist_source": "defensive_duel",
            "projected_goals": 0,
            "goal_probability": 0.0789,
            "projected_assists": 0,
            "assist_probability": 0.2221,
            "finishing_factor": 0.8,
            "creation_factor": 0.9043,
            "fifa_overall": 79.0
          },
          "latest_10_games": [
            {
              "match_id": 16421081.0,
              "match_date": "2026-10-25",
              "home_team": "Athletic Club",
              "away_team": "Getafe",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Getafe",
              "stats": {
                "minutes": 48,
                "rating": 7.2,
                "expected_assists": 0.0339,
                "total_shots": 0,
                "total_pass": 48,
                "accurate_pass": 45,
                "key_pass": 2,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 17122851.0,
              "match_date": "2026-10-21",
              "home_team": "Levante UD",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 90,
                "rating": 7.4,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1358,
                "expected_assists": 0.1378,
                "total_shots": 3,
                "shots_on_target": 0,
                "shots_off_target": 2,
                "total_pass": 71,
                "accurate_pass": 64,
                "key_pass": 2,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 7,
                "aerial_won": 4,
                "duels_won": 7,
                "ball_recovery": 4,
                "saves": 0
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416337.0,
              "match_date": "2026-09-19",
              "home_team": "Athletic Club",
              "away_team": "Deportivo Alavés",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 86,
                "rating": 7.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0727,
                "expected_assists": 0.0393,
                "total_shots": 4,
                "shots_on_target": 1,
                "shots_off_target": 3,
                "total_pass": 78,
                "accurate_pass": 70,
                "key_pass": 2,
                "tackles": 6,
                "tackles_won": 5,
                "clearances": 1,
                "duels_won": 6,
                "ball_recovery": 9
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416322.0,
              "match_date": "2026-09-12",
              "home_team": "Athletic Club",
              "away_team": "Elche",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Elche",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1335,
                "expected_assists": 0.0482,
                "total_shots": 4,
                "shots_off_target": 2,
                "total_pass": 82,
                "accurate_pass": 77,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 1,
                "aerial_won": 2,
                "duels_won": 4,
                "ball_recovery": 9
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416317.0,
              "match_date": "2026-09-05",
              "home_team": "Athletic Club",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0131,
                "total_shots": 0,
                "total_pass": 36,
                "accurate_pass": 32,
                "interceptions": 1,
                "clearances": 4,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416308.0,
              "match_date": "2026-08-30",
              "home_team": "Celta Vigo",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 90,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0536,
                "expected_assists": 0.199,
                "total_shots": 3,
                "shots_off_target": 2,
                "total_pass": 64,
                "accurate_pass": 61,
                "key_pass": 3,
                "tackles": 1,
                "interceptions": 3,
                "clearances": 1,
                "duels_won": 2,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416301.0,
              "match_date": "2026-08-22",
              "home_team": "Athletic Club",
              "away_team": "Sevilla",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 11,
                "rating": 3.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.05,
                "total_shots": 0,
                "total_pass": 17,
                "accurate_pass": 14,
                "aerial_won": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083656.0,
              "match_date": "2026-05-17",
              "home_team": "Athletic Club",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 90,
                "rating": 9.1,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.0271,
                "expected_assists": 1.3013,
                "total_shots": 2,
                "shots_off_target": 1,
                "total_pass": 77,
                "accurate_pass": 71,
                "key_pass": 3,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083539.0,
              "match_date": "2026-05-10",
              "home_team": "Athletic Club",
              "away_team": "Valencia",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Valencia",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0351,
                "total_shots": 0,
                "total_pass": 51,
                "accurate_pass": 43,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 2,
                "aerial_won": 4,
                "duels_won": 7,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083364.0,
              "match_date": "2026-05-02",
              "home_team": "Deportivo Alavés",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.0044,
                "expected_assists": 0.0307,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 49,
                "accurate_pass": 43,
                "key_pass": 1,
                "tackles": 3,
                "tackles_won": 3,
                "interceptions": 2,
                "clearances": 2,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 1551,
            "combined_rank_score": 634.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 326.0,
            "sofascore_rating": 7.0156,
            "sofascore_appearances": 32.0,
            "fifa_rank": 943.0,
            "fifa_overall": 79.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 2,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 7.0429,
            "source_file": "data/player_rankings.csv",
            "player_name": "Yuri Berchiche",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Her Dong-min",
                  "ranking": 1546
                },
                {
                  "player_name": "Filip Jørgensen",
                  "ranking": 1547
                },
                {
                  "player_name": "Olivier Boscagli",
                  "ranking": 1548
                },
                {
                  "player_name": "Bernd Leno",
                  "ranking": 1549
                },
                {
                  "player_name": "Fredrik Aursnes",
                  "ranking": 1550
                }
              ],
              "lower": [
                {
                  "player_name": "Óscar Trejo",
                  "ranking": 1552
                },
                {
                  "player_name": "Han Jong-Mu",
                  "ranking": 1553
                },
                {
                  "player_name": "Eli Junior Kroupi",
                  "ranking": 1554
                },
                {
                  "player_name": "Firdavs Abdurakhmonov",
                  "ranking": 1555
                },
                {
                  "player_name": "Seul-chan Lee",
                  "ranking": 1556
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.761,
          "history_matches": 39,
          "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": 39,
            "data_confidence": 0.761,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.9977,
            "fbref_prior_metrics": {
              "squad": "Athletic Club",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 2.0,
              "minutes": 100.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 2.7,
              "shots_on_target_pct": 0.0,
              "prior_reliability": 0.0733
            },
            "rationale": "XGBoost regressor (D_service) evaluated 39 historical appearances across 7 target models; FBref 2026-2027 prior blended (La Liga, Athletic Club, rel: 0.07, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 7 target models",
              "stats": {
                "interceptions": 0.8545,
                "tackles": 1.5543,
                "tackles_won": 1.0054,
                "clearances": 2.7944,
                "aerial_won": 1.0729,
                "total_shots": 1.2381,
                "rating": 7.0429,
                "minutes": 77.9,
                "total_pass": 56.2547,
                "accurate_pass": 51.1495,
                "duels_won": 3.5662,
                "total_long_balls": 3.9563,
                "accurate_long_balls": 2.2723,
                "total_own_half_passes": 23.43,
                "accurate_own_half_passes": 22.3801,
                "total_opp_half_passes": 32.8248,
                "accurate_opp_half_passes": 28.7696,
                "crosses_total": 2.9283,
                "crosses_accurate": 0.6627,
                "touches": 76.7222,
                "possession_lost": 9.4124,
                "dispossessed": 0.1937,
                "duels_lost": 1.6643,
                "aerial_lost": 0.5489,
                "total_contest": 0.4138,
                "won_contest": 0.1904,
                "ball_recovery": 5.1337,
                "challenges_lost": 0.2628,
                "fouls": 0.6575,
                "fouls_drawn": 0.4791,
                "blocks": 0.1668,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.1278,
                "assist_rate": 0.1278,
                "expected_goals": 0.0477,
                "expected_assists": 0.1458,
                "shots_on_target": 0.1636,
                "big_chances_created": 0.2401,
                "xgot": 0.0083,
                "ball_carries": 17.5406,
                "total_progression": 75.3758,
                "progressive_carries": 0.8615,
                "key_pass": 1.4049,
                "shots_off_target": 1.0745
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 6,
                  "trained_at": "2026-11-01T11:26:13.602980+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 631,
                    "rows": 22117
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-25",
                    "opponent": "Getafe",
                    "minutes": 48.0,
                    "is_starting": true,
                    "weight": 0.1503,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-10-21",
                    "opponent": "Levante UD",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1277,
                    "rating": 7.4
                  },
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Deportivo Alavés",
                    "minutes": 86.0,
                    "is_starting": true,
                    "weight": 0.1086,
                    "rating": 7.5
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Elche",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0923,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Atlético Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0784,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Celta Vigo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0667,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Sevilla",
                    "minutes": 11.0,
                    "is_starting": true,
                    "weight": 0.0567,
                    "rating": 3.0
                  },
                  {
                    "match_date": "2026-05-17",
                    "opponent": "Celta Vigo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0482,
                    "rating": 9.1
                  },
                  {
                    "match_date": "2026-05-10",
                    "opponent": "Valencia",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0409,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-05-02",
                    "opponent": "Deportivo Alavés",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0348,
                    "rating": 6.7
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 1.0,
                  "totalClearance": 2.2296,
                  "aerialWon": 1.3365,
                  "totalClearance_p90": 2.2877,
                  "totalTackle": 1.5801,
                  "totalTackle_p90": 1.6417
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.8544654846191406,
                    "model_output": 0.8545,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2892
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0467
                      },
                      {
                        "name": "touches",
                        "importance": 0.0285
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0256
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0216
                      }
                    ],
                    "decomposition": {
                      "base": 0.8711,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1124
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0421
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0324
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0246
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": 0.0215
                        }
                      ],
                      "others": -0.0514,
                      "total": 0.8545,
                      "log_link": true,
                      "margin_base": -0.137969,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.121402
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.043765
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.035001
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.027396
                        },
                        {
                          "name": "ballRecovery_p90",
                          "margin": 0.023985
                        }
                      ],
                      "others_margin": -0.058535
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.554327368736267,
                    "model_output": 1.5543,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2446
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0686
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0555
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0437
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0249
                      }
                    ],
                    "decomposition": {
                      "base": 1.3875,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1781
                        },
                        {
                          "name": "totalTackle",
                          "contribution": 0.0833
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.0724
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.057
                        },
                        {
                          "name": "challengeLost",
                          "contribution": -0.0517
                        }
                      ],
                      "others": -0.0583,
                      "total": 1.5543,
                      "log_link": true,
                      "margin_base": 0.327503,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.120736
                        },
                        {
                          "name": "totalTackle",
                          "margin": 0.051866
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.042958
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.033659
                        },
                        {
                          "name": "challengeLost",
                          "margin": -0.031567
                        }
                      ],
                      "others_margin": -0.036795
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 1.0054255723953247,
                    "model_output": 1.0054,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1951
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0637
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0498
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0427
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0237
                      }
                    ],
                    "decomposition": {
                      "base": 0.8482,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1108
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.0534
                        },
                        {
                          "name": "totalTackle",
                          "contribution": 0.0474
                        },
                        {
                          "name": "challengeLost",
                          "contribution": -0.0453
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0355
                        }
                      ],
                      "others": -0.0446,
                      "total": 1.0054,
                      "log_link": true,
                      "margin_base": -0.164613,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.122753
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.054236
                        },
                        {
                          "name": "totalTackle",
                          "margin": 0.045786
                        },
                        {
                          "name": "challengeLost",
                          "margin": -0.043693
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.034436
                        }
                      ],
                      "others_margin": -0.043494
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 2.794382095336914,
                    "model_output": 2.7944,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2927
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.1441
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.033
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0239
                      }
                    ],
                    "decomposition": {
                      "base": 3.4157,
                      "items": [
                        {
                          "name": "totalClearance",
                          "contribution": -0.4194
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.3724
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.2978
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.2297
                        },
                        {
                          "name": "aerialWon",
                          "contribution": 0.0694
                        }
                      ],
                      "others": -0.1162,
                      "total": 2.7944,
                      "log_link": true,
                      "margin_base": 1.228383,
                      "item_margins": [
                        {
                          "name": "totalClearance",
                          "margin": -0.131008
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.117161
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.092545
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.07774
                        },
                        {
                          "name": "aerialWon",
                          "margin": 0.024118
                        }
                      ],
                      "others_margin": -0.040757
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 1.0729458332061768,
                    "model_output": 1.0729,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1566
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.1557
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0794
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0422
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.027
                      }
                    ],
                    "decomposition": {
                      "base": 1.3697,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1332
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.1287
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0867
                        },
                        {
                          "name": "aerialLost",
                          "contribution": -0.0666
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0541
                        }
                      ],
                      "others": -0.0939,
                      "total": 1.0729,
                      "log_link": true,
                      "margin_base": 0.314594,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.092816
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.089504
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.065143
                        },
                        {
                          "name": "aerialLost",
                          "margin": -0.053123
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.045306
                        }
                      ],
                      "others_margin": -0.083925
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.238147258758545,
                    "model_output": 1.2381,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0952
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0683
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.0339
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0311
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.4812,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.4717
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0996
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0387
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": 0.0263
                        },
                        {
                          "name": "rating",
                          "contribution": 0.0201
                        }
                      ],
                      "others": 0.1005,
                      "total": 1.2381,
                      "log_link": false,
                      "margin_base": 0.481248,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.471652
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.099567
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.038651
                        },
                        {
                          "name": "duelWon_p90",
                          "margin": 0.026259
                        },
                        {
                          "name": "rating",
                          "margin": 0.020149
                        }
                      ],
                      "others_margin": 0.10062
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 7.042873859405518,
                    "model_output": 7.0429,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "accuratePass",
                        "importance": 0.0681
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.063
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.057
                      },
                      {
                        "name": "rating",
                        "importance": 0.0377
                      },
                      {
                        "name": "touches",
                        "importance": 0.0302
                      }
                    ],
                    "decomposition": {
                      "base": 6.7988,
                      "items": [
                        {
                          "name": "totalPass",
                          "contribution": 0.1222
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0626
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0597
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0287
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0183
                        }
                      ],
                      "others": -0.0474,
                      "total": 7.0429,
                      "log_link": false,
                      "margin_base": 6.798781,
                      "item_margins": [
                        {
                          "name": "totalPass",
                          "margin": 0.122172
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.062637
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.059664
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.028744
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.01827
                        }
                      ],
                      "others_margin": -0.047394
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 39,
                  "role_matches": 38,
                  "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": {
                "interceptions": 0.8525,
                "tackles": 1.5508,
                "tackles_won": 1.0031,
                "clearances": 2.788,
                "aerial_won": 1.0705,
                "total_shots": 1.2353,
                "rating": 7.0429,
                "minutes": 77.9,
                "total_pass": 56.1253,
                "accurate_pass": 51.0319,
                "duels_won": 3.558,
                "total_long_balls": 3.9472,
                "accurate_long_balls": 2.2671,
                "total_own_half_passes": 23.3761,
                "accurate_own_half_passes": 22.3286,
                "total_opp_half_passes": 32.7493,
                "accurate_opp_half_passes": 28.7034,
                "crosses_total": 2.9216,
                "crosses_accurate": 0.6612,
                "touches": 76.5457,
                "possession_lost": 9.3908,
                "dispossessed": 0.1933,
                "duels_lost": 1.6605,
                "aerial_lost": 0.5476,
                "total_contest": 0.4128,
                "won_contest": 0.19,
                "ball_recovery": 5.1219,
                "challenges_lost": 0.2622,
                "fouls": 0.656,
                "fouls_drawn": 0.478,
                "blocks": 0.1664,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.1275,
                "assist_rate": 0.1275,
                "expected_goals": 0.0476,
                "expected_assists": 0.1455,
                "shots_on_target": 0.1632,
                "big_chances_created": 0.2395,
                "xgot": 0.0083,
                "ball_carries": 17.5003,
                "total_progression": 75.2024,
                "progressive_carries": 0.8595,
                "key_pass": 1.4017,
                "shots_off_target": 1.072
              },
              "params": {
                "market_value_eur": 910000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9977,
                "reference_quality": 0.505,
                "history_matches": 39,
                "history_shrink": 0.1136,
                "market_value_known": true
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0054)",
              "stats": {
                "interceptions": 0.8564,
                "tackles": 1.5508,
                "tackles_won": 0.9977,
                "clearances": 2.788,
                "aerial_won": 1.0705,
                "total_shots": 1.2413,
                "rating": 7.0429,
                "minutes": 77.9,
                "total_pass": 56.1253,
                "accurate_pass": 51.0319,
                "duels_won": 3.558,
                "total_long_balls": 3.9472,
                "accurate_long_balls": 2.2671,
                "total_own_half_passes": 23.3761,
                "accurate_own_half_passes": 22.3286,
                "total_opp_half_passes": 32.7493,
                "accurate_opp_half_passes": 28.7034,
                "crosses_total": 2.9186,
                "crosses_accurate": 0.6612,
                "touches": 76.5457,
                "possession_lost": 9.3908,
                "dispossessed": 0.1933,
                "duels_lost": 1.6605,
                "aerial_lost": 0.5476,
                "total_contest": 0.4128,
                "won_contest": 0.19,
                "ball_recovery": 5.1219,
                "challenges_lost": 0.2622,
                "fouls": 0.661,
                "fouls_drawn": 0.4754,
                "blocks": 0.1664,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.1268,
                "assist_rate": 0.1268,
                "expected_goals": 0.0476,
                "expected_assists": 0.1455,
                "shots_on_target": 0.1623,
                "big_chances_created": 0.2395,
                "xgot": 0.0083,
                "ball_carries": 17.5003,
                "total_progression": 75.2024,
                "progressive_carries": 0.8595,
                "key_pass": 1.4017,
                "shots_off_target": 1.072
              },
              "params": {
                "blend_weight": 0.0054,
                "history_matches": 39,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.8656,
                "prior_reliability": 0.0733,
                "competition": "La Liga",
                "squad": "Athletic Club"
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 1.2353,
                  "after": 1.2413
                },
                {
                  "stat": "wonTackle",
                  "before": 1.0031,
                  "after": 0.9977
                },
                {
                  "stat": "fouls",
                  "before": 0.656,
                  "after": 0.661
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 0.8564,
                "tackles": 1.5508,
                "tackles_won": 0.9977,
                "clearances": 2.788,
                "aerial_won": 1.0705,
                "total_shots": 1.2413,
                "rating": 7.0429,
                "minutes": 77.9,
                "total_pass": 56.1253,
                "accurate_pass": 51.0319,
                "duels_won": 3.558,
                "total_long_balls": 3.9472,
                "accurate_long_balls": 2.2671,
                "total_own_half_passes": 23.3761,
                "accurate_own_half_passes": 22.3286,
                "total_opp_half_passes": 32.7493,
                "accurate_opp_half_passes": 28.7034,
                "crosses_total": 2.9186,
                "crosses_accurate": 0.6612,
                "touches": 76.5457,
                "possession_lost": 9.3908,
                "dispossessed": 0.1933,
                "duels_lost": 1.6605,
                "aerial_lost": 0.5476,
                "total_contest": 0.4128,
                "won_contest": 0.19,
                "ball_recovery": 5.1219,
                "challenges_lost": 0.2622,
                "fouls": 0.661,
                "fouls_drawn": 0.4754,
                "blocks": 0.1664,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.1268,
                "assist_rate": 0.1268,
                "expected_goals": 0.0476,
                "expected_assists": 0.1455,
                "shots_on_target": 0.1623,
                "big_chances_created": 0.2395,
                "xgot": 0.0083,
                "ball_carries": 17.5003,
                "total_progression": 75.2024,
                "progressive_carries": 0.8595,
                "key_pass": 1.4017,
                "shots_off_target": 1.072
              },
              "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.8564,
                "tackles": 1.5508,
                "tackles_won": 0.9977,
                "clearances": 2.788,
                "aerial_won": 1.0705,
                "total_shots": 1.2413,
                "rating": 7.0429,
                "minutes": 77.9,
                "total_pass": 56.1253,
                "accurate_pass": 51.0319,
                "duels_won": 3.558,
                "total_long_balls": 3.9472,
                "accurate_long_balls": 2.2671,
                "total_own_half_passes": 23.3761,
                "accurate_own_half_passes": 22.3286,
                "total_opp_half_passes": 32.7493,
                "accurate_opp_half_passes": 28.7034,
                "crosses_total": 2.9186,
                "crosses_accurate": 0.6612,
                "touches": 76.5457,
                "possession_lost": 9.3908,
                "dispossessed": 0.1933,
                "duels_lost": 1.6605,
                "aerial_lost": 0.5476,
                "total_contest": 0.4128,
                "won_contest": 0.19,
                "ball_recovery": 5.1219,
                "challenges_lost": 0.2622,
                "fouls": 0.661,
                "fouls_drawn": 0.4754,
                "blocks": 0.1664,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.1268,
                "assist_rate": 0.1268,
                "expected_goals": 0.0476,
                "expected_assists": 0.1455,
                "shots_on_target": 0.1623,
                "big_chances_created": 0.2395,
                "xgot": 0.0083,
                "ball_carries": 17.5003,
                "total_progression": 75.2024,
                "progressive_carries": 0.8595,
                "key_pass": 1.4017,
                "shots_off_target": 1.072,
                "tackles_in_zone": 1.9,
                "tackles_won_in_zone": 1.5,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.9,
                "defensive_success_rate": 0.504,
                "opponent_faced": "Carlos Soler",
                "pressing_zone": "Left Wing vs Right Back — Flank Battle",
                "matchup_zone": "Left Wing vs Right Back — Flank Battle",
                "antagonist_source": "defensive_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Carlos Soler",
                  "matchup_zone": "Left Wing vs Right Back — Flank Battle"
                }
              }
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "interceptions": 0.8564,
                "tackles": 1.5508,
                "tackles_won": 0.9977,
                "clearances": 2.788,
                "aerial_won": 1.0705,
                "total_shots": 1.2413,
                "rating": 7.0429,
                "minutes": 77.9,
                "total_pass": 56.1253,
                "accurate_pass": 51.0319,
                "duels_won": 3.558,
                "total_long_balls": 3.9472,
                "accurate_long_balls": 2.2671,
                "total_own_half_passes": 23.3761,
                "accurate_own_half_passes": 22.3286,
                "total_opp_half_passes": 32.7493,
                "accurate_opp_half_passes": 28.7034,
                "crosses_total": 2.9186,
                "crosses_accurate": 0.6612,
                "touches": 76.5457,
                "possession_lost": 9.3908,
                "dispossessed": 0.1933,
                "duels_lost": 1.6605,
                "aerial_lost": 0.5476,
                "total_contest": 0.4128,
                "won_contest": 0.19,
                "ball_recovery": 5.1219,
                "challenges_lost": 0.2622,
                "fouls": 0.661,
                "fouls_drawn": 0.4754,
                "blocks": 0.1664,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.1268,
                "assists": 0,
                "expected_goals": 0.0476,
                "expected_assists": 0.1455,
                "shots_on_target": 0.1623,
                "big_chances_created": 0.2395,
                "xgot": 0.0083,
                "ball_carries": 17.5003,
                "total_progression": 75.2024,
                "progressive_carries": 0.8595,
                "key_pass": 1.4017,
                "shots_off_target": 1.072,
                "tackles_in_zone": 1.9,
                "tackles_won_in_zone": 1.5,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.9,
                "defensive_success_rate": 0.504,
                "opponent_faced": "Carlos Soler",
                "pressing_zone": "Left Wing vs Right Back — Flank Battle",
                "matchup_zone": "Left Wing vs Right Back — Flank 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": 2
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.73 (squad xG sum 1.0016, xG scale 1.7263, xA scale 1.7263, team xA 1.22 = 0.71 x lambda)",
              "stats": {
                "interceptions": 0.8564,
                "tackles": 1.5508,
                "tackles_won": 0.9977,
                "clearances": 2.788,
                "aerial_won": 1.0705,
                "total_shots": 1.2413,
                "rating": 7.0429,
                "minutes": 77.9,
                "total_pass": 56.1253,
                "accurate_pass": 51.0319,
                "duels_won": 3.558,
                "total_long_balls": 3.9472,
                "accurate_long_balls": 2.2671,
                "total_own_half_passes": 23.3761,
                "accurate_own_half_passes": 22.3286,
                "total_opp_half_passes": 32.7493,
                "accurate_opp_half_passes": 28.7034,
                "crosses_total": 2.9186,
                "crosses_accurate": 0.6612,
                "touches": 76.5457,
                "possession_lost": 9.3908,
                "dispossessed": 0.1933,
                "duels_lost": 1.6605,
                "aerial_lost": 0.5476,
                "total_contest": 0.4128,
                "won_contest": 0.19,
                "ball_recovery": 5.1219,
                "challenges_lost": 0.2622,
                "fouls": 0.661,
                "fouls_drawn": 0.4754,
                "blocks": 0.1664,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.1268,
                "assists": 0,
                "expected_goals": 0.0822,
                "expected_assists": 0.2511,
                "shots_on_target": 0.1623,
                "big_chances_created": 0.2395,
                "xgot": 0.0143,
                "ball_carries": 17.5003,
                "total_progression": 75.2024,
                "progressive_carries": 0.8595,
                "key_pass": 1.4017,
                "shots_off_target": 1.072,
                "tackles_in_zone": 1.9,
                "tackles_won_in_zone": 1.5,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.9,
                "defensive_success_rate": 0.504,
                "opponent_faced": "Carlos Soler",
                "pressing_zone": "Left Wing vs Right Back — Flank Battle",
                "matchup_zone": "Left Wing vs Right Back — Flank 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.9043
              },
              "params": {
                "team_lambda": 1.729,
                "squad_xg_sum": 1.0016,
                "squad_xa_sum": 0.7085,
                "team_expected_assists": 1.2231,
                "team_xa_to_xg_ratio": 0.7074,
                "bench_appearance_weighted": true,
                "xg_scale": 1.7263,
                "xa_scale": 1.7263,
                "opponent_lambda": 1.255,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0476,
                  "after": 0.0822
                },
                {
                  "stat": "expected_assists",
                  "before": 0.1455,
                  "after": 0.2511
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 79.0)",
              "stats": {
                "interceptions": 0.8564,
                "tackles": 1.5508,
                "tackles_won": 0.9977,
                "clearances": 2.788,
                "aerial_won": 1.0705,
                "total_shots": 1.2413,
                "rating": 7.0429,
                "minutes": 77.9,
                "total_pass": 56.1253,
                "accurate_pass": 51.0319,
                "duels_won": 3.558,
                "total_long_balls": 3.9472,
                "accurate_long_balls": 2.2671,
                "total_own_half_passes": 23.3761,
                "accurate_own_half_passes": 22.3286,
                "total_opp_half_passes": 32.7493,
                "accurate_opp_half_passes": 28.7034,
                "crosses_total": 2.9186,
                "crosses_accurate": 0.6612,
                "touches": 76.5457,
                "possession_lost": 9.3908,
                "dispossessed": 0.1933,
                "duels_lost": 1.6605,
                "aerial_lost": 0.5476,
                "total_contest": 0.4128,
                "won_contest": 0.19,
                "ball_recovery": 5.1219,
                "challenges_lost": 0.2622,
                "fouls": 0.661,
                "fouls_drawn": 0.4754,
                "blocks": 0.1664,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.1268,
                "assists": 0,
                "expected_goals": 0.0822,
                "expected_assists": 0.2511,
                "shots_on_target": 0.1623,
                "big_chances_created": 0.2395,
                "xgot": 0.0143,
                "ball_carries": 17.5003,
                "total_progression": 75.2024,
                "progressive_carries": 0.8595,
                "key_pass": 1.4017,
                "shots_off_target": 1.072,
                "tackles_in_zone": 1.9,
                "tackles_won_in_zone": 1.5,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.9,
                "defensive_success_rate": 0.504,
                "opponent_faced": "Carlos Soler",
                "pressing_zone": "Left Wing vs Right Back — Flank Battle",
                "matchup_zone": "Left Wing vs Right Back — Flank 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.9043,
                "fifa_overall": 79.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": 1551,
                "fifa_rank": 943.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 79.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "interceptions": 0.8564,
                "tackles": 1.5508,
                "tackles_won": 0.9977,
                "clearances": 2.788,
                "aerial_won": 1.0705,
                "total_shots": 1.2413,
                "rating": 7.0429,
                "minutes": 77.9,
                "total_pass": 56.1253,
                "accurate_pass": 51.0319,
                "duels_won": 3.558,
                "total_long_balls": 3.9472,
                "accurate_long_balls": 2.2671,
                "total_own_half_passes": 23.3761,
                "accurate_own_half_passes": 22.3286,
                "total_opp_half_passes": 32.7493,
                "accurate_opp_half_passes": 28.7034,
                "crosses_total": 2.9186,
                "crosses_accurate": 0.6612,
                "touches": 76.5457,
                "possession_lost": 9.3908,
                "dispossessed": 0.1933,
                "duels_lost": 1.6605,
                "aerial_lost": 0.5476,
                "total_contest": 0.4128,
                "won_contest": 0.19,
                "ball_recovery": 5.1219,
                "challenges_lost": 0.2622,
                "fouls": 0.661,
                "fouls_drawn": 0.4754,
                "blocks": 0.1664,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.1268,
                "assists": 0,
                "expected_goals": 0.0822,
                "expected_assists": 0.2511,
                "shots_on_target": 0.1623,
                "big_chances_created": 0.2395,
                "xgot": 0.0143,
                "ball_carries": 17.5003,
                "total_progression": 75.2024,
                "progressive_carries": 0.8595,
                "key_pass": 1.4017,
                "shots_off_target": 1.072,
                "tackles_in_zone": 1.9,
                "tackles_won_in_zone": 1.5,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.9,
                "defensive_success_rate": 0.504,
                "opponent_faced": "Carlos Soler",
                "pressing_zone": "Left Wing vs Right Back — Flank Battle",
                "matchup_zone": "Left Wing vs Right Back — Flank Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0789,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 0.9043,
                "fifa_overall": 79.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 2,
                "goals_allocated": 0,
                "goal_probability": 0.0789,
                "goal_rate": 0.0,
                "scorer_weight": 0.0658,
                "squad_weight_total": 1.9109,
                "weight_share": 0.0344,
                "finishing_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 8,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Iñaki Williams",
                    "weight": 0.5576,
                    "already": 0,
                    "effective_weight": 0.5576,
                    "runner_up": "Nico Williams",
                    "runner_up_effective_weight": 0.305
                  },
                  {
                    "n": 2,
                    "player": "Nico Williams",
                    "weight": 0.305,
                    "already": 0,
                    "effective_weight": 0.305,
                    "runner_up": "Álex Berenguer",
                    "runner_up_effective_weight": 0.2692
                  }
                ]
              }
            },
            {
              "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.8564,
                "tackles": 1.5508,
                "tackles_won": 0.9977,
                "clearances": 2.788,
                "aerial_won": 1.0705,
                "total_shots": 1.2413,
                "rating": 7.0429,
                "minutes": 77.9,
                "total_pass": 56.1253,
                "accurate_pass": 51.0319,
                "duels_won": 3.558,
                "total_long_balls": 3.9472,
                "accurate_long_balls": 2.2671,
                "total_own_half_passes": 23.3761,
                "accurate_own_half_passes": 22.3286,
                "total_opp_half_passes": 32.7493,
                "accurate_opp_half_passes": 28.7034,
                "crosses_total": 2.9186,
                "crosses_accurate": 0.6612,
                "touches": 76.5457,
                "possession_lost": 9.3908,
                "dispossessed": 0.1933,
                "duels_lost": 1.6605,
                "aerial_lost": 0.5476,
                "total_contest": 0.4128,
                "won_contest": 0.19,
                "ball_recovery": 5.1219,
                "challenges_lost": 0.2622,
                "fouls": 0.661,
                "fouls_drawn": 0.4754,
                "blocks": 0.1664,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.1268,
                "assists": 0,
                "expected_goals": 0.0822,
                "expected_assists": 0.2511,
                "shots_on_target": 0.1623,
                "big_chances_created": 0.2395,
                "xgot": 0.0143,
                "ball_carries": 17.5003,
                "total_progression": 75.2024,
                "progressive_carries": 0.8595,
                "key_pass": 1.4017,
                "shots_off_target": 1.072,
                "tackles_in_zone": 1.9,
                "tackles_won_in_zone": 1.5,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.9,
                "defensive_success_rate": 0.504,
                "opponent_faced": "Carlos Soler",
                "pressing_zone": "Left Wing vs Right Back — Flank Battle",
                "matchup_zone": "Left Wing vs Right Back — Flank Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0789,
                "projected_assists": 0,
                "assist_probability": 0.2221,
                "finishing_factor": 0.8,
                "creation_factor": 0.9043,
                "fifa_overall": 79.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.2221,
                "assist_rate": 0.1268,
                "provider_weight": 0.2271,
                "squad_weight_total": 1.1843,
                "weight_share": 0.1917,
                "creation_factor": 0.9043,
                "appearance_weight": 1.0,
                "weight_rank": 2,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Álex Berenguer",
                    "weight": 0.2673,
                    "already": 0,
                    "effective_weight": 0.2673,
                    "runner_up": "Yuri Berchiche",
                    "runner_up_effective_weight": 0.2271
                  }
                ]
              }
            }
          ]
        },
        "Mikel Jauregizar": {
          "player_id": 1495844,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 18,
          "height": 177,
          "market_value": 26000000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.0917,
            "assist_rate": 0.0561,
            "assists": 0,
            "expected_goals": 0.1303,
            "goal_rate": 0.061,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "rating": 6.8176,
            "minutes": 70,
            "total_pass": 33,
            "accurate_pass": 26,
            "duels_won": 4,
            "total_long_balls": 3,
            "accurate_long_balls": 1,
            "total_own_half_passes": 10,
            "accurate_own_half_passes": 9,
            "total_opp_half_passes": 23,
            "accurate_opp_half_passes": 17,
            "crosses_total": 1,
            "crosses_accurate": 0,
            "touches": 45,
            "possession_lost": 11.067,
            "dispossessed": 0.6663,
            "duels_lost": 5,
            "aerial_won": 1,
            "aerial_lost": 1,
            "interceptions": 1,
            "tackles_won": 1,
            "tackles": 2,
            "clearances": 1,
            "total_contest": 1,
            "won_contest": 0,
            "challenges_lost": 1,
            "fouls": 2,
            "fouls_drawn": 1,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0915,
            "ball_carries": 10,
            "total_progression": 28,
            "progressive_carries": 0,
            "shots_off_target": 1,
            "duel_xg_multiplier": 1.1013,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.9,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.489,
            "pressing_faced": "LOW",
            "matchup_zone": "CDM vs CDM",
            "numerical_situation": "1v1",
            "opponent_defenders": "Beñat Turrientes",
            "opponent_faced": "Beñat Turrientes",
            "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.1222,
            "projected_assists": 0,
            "assist_probability": 0.0876,
            "finishing_factor": 0.8845,
            "creation_factor": 1.0291,
            "fifa_overall": 79.0
          },
          "latest_10_games": [
            {
              "match_id": 17122851.0,
              "match_date": "2026-10-21",
              "home_team": "Levante UD",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 45,
                "rating": 5.9,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0866,
                "expected_assists": 0.0049,
                "total_shots": 2,
                "shots_on_target": 0,
                "shots_off_target": 2,
                "total_pass": 19,
                "accurate_pass": 14,
                "tackles": 0,
                "tackles_won": 0,
                "interceptions": 1,
                "clearances": 1,
                "aerial_won": 3,
                "duels_won": 3,
                "ball_recovery": 3,
                "saves": 0
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421074.0,
              "match_date": "2026-10-17",
              "home_team": "Valencia",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Valencia",
              "stats": {
                "minutes": 45,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0079,
                "total_shots": 0,
                "total_pass": 25,
                "accurate_pass": 21,
                "tackles": 1,
                "clearances": 1,
                "duels_won": 2,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416337.0,
              "match_date": "2026-09-19",
              "home_team": "Athletic Club",
              "away_team": "Deportivo Alavés",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 62,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0312,
                "expected_assists": 0.0348,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 60,
                "accurate_pass": 54,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 2,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416322.0,
              "match_date": "2026-09-12",
              "home_team": "Athletic Club",
              "away_team": "Elche",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Elche",
              "stats": {
                "minutes": 25,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0087,
                "total_shots": 0,
                "total_pass": 26,
                "accurate_pass": 22,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416317.0,
              "match_date": "2026-09-05",
              "home_team": "Athletic Club",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 30,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0334,
                "expected_assists": 0.0042,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 14,
                "accurate_pass": 14,
                "tackles": 3,
                "tackles_won": 2,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416308.0,
              "match_date": "2026-08-30",
              "home_team": "Celta Vigo",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 25,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0032,
                "total_shots": 0,
                "total_pass": 15,
                "accurate_pass": 12,
                "tackles": 1,
                "interceptions": 2,
                "duels_won": 1,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421059.0,
              "match_date": "2026-08-27",
              "home_team": "FC Barcelona",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "FC Barcelona",
              "stats": {
                "minutes": 70,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0002,
                "total_shots": 0,
                "total_pass": 12,
                "accurate_pass": 7,
                "tackles": 4,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 1,
                "duels_won": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083731.0,
              "match_date": "2026-05-23",
              "home_team": "Real Madrid",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 85,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0034,
                "total_shots": 0,
                "total_pass": 24,
                "accurate_pass": 13,
                "tackles": 4,
                "tackles_won": 3,
                "interceptions": 1,
                "aerial_won": 2,
                "duels_won": 7,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083656.0,
              "match_date": "2026-05-17",
              "home_team": "Athletic Club",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 71,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1908,
                "expected_assists": 0.0838,
                "total_shots": 4,
                "shots_on_target": 2,
                "shots_off_target": 2,
                "total_pass": 28,
                "accurate_pass": 22,
                "key_pass": 1,
                "aerial_won": 3,
                "duels_won": 4,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083629.0,
              "match_date": "2026-05-13",
              "home_team": "Espanyol",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 27,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.047,
                "expected_assists": 0.0045,
                "total_shots": 1,
                "total_pass": 13,
                "accurate_pass": 7,
                "interceptions": 1,
                "clearances": 2,
                "aerial_won": 2,
                "duels_won": 2,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 1561,
            "combined_rank_score": 778.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 641.0,
            "sofascore_rating": 6.75,
            "sofascore_appearances": 36.0,
            "fifa_rank": 915.0,
            "fifa_overall": 79.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 9,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.8176,
            "source_file": "data/player_rankings.csv",
            "player_name": "Mikel Jauregizar",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Seul-chan Lee",
                  "ranking": 1556
                },
                {
                  "player_name": "Yu Dong-Kyu",
                  "ranking": 1557
                },
                {
                  "player_name": "Sunnatillokh Khamidzhonov",
                  "ranking": 1558
                },
                {
                  "player_name": "Ham Sunwoo",
                  "ranking": 1559
                },
                {
                  "player_name": "Fisnik Asllani",
                  "ranking": 1560
                }
              ],
              "lower": [
                {
                  "player_name": "José Tiznado",
                  "ranking": 1562
                },
                {
                  "player_name": "Azizjon Akhrorov",
                  "ranking": 1563
                },
                {
                  "player_name": "Usmonali Ismonaliev",
                  "ranking": 1564
                },
                {
                  "player_name": "Damir Temirov",
                  "ranking": 1565
                },
                {
                  "player_name": "Sadriddin Khasanov",
                  "ranking": 1566
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.761,
          "history_matches": 43,
          "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": 43,
            "data_confidence": 0.761,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0057,
            "fbref_prior_metrics": {
              "squad": "Athletic Club",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 1.0,
              "minutes": 95.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.0,
              "prior_reliability": 0.0733
            },
            "rationale": "XGBoost regressor (M_service) evaluated 43 historical appearances across 8 target models; FBref 2026-2027 prior blended (La Liga, Athletic Club, rel: 0.07, 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.6313,
                "expected_assists": 0.0528,
                "assists": 0.056,
                "assist_rate": 0.056,
                "expected_goals": 0.0682,
                "goals": 0.0554,
                "goal_rate": 0.0554,
                "shots_on_target": 0.2782,
                "total_shots": 0.9585,
                "rating": 6.8176,
                "minutes": 70.43,
                "total_pass": 32.9227,
                "accurate_pass": 25.8317,
                "duels_won": 4.2185,
                "total_long_balls": 2.542,
                "accurate_long_balls": 1.1394,
                "total_own_half_passes": 10.3564,
                "accurate_own_half_passes": 8.9052,
                "total_opp_half_passes": 22.5664,
                "accurate_opp_half_passes": 16.9266,
                "crosses_total": 1.4289,
                "crosses_accurate": 0.391,
                "touches": 44.327,
                "possession_lost": 11.0043,
                "dispossessed": 0.6625,
                "duels_lost": 4.6169,
                "aerial_won": 1.6406,
                "aerial_lost": 0.8713,
                "interceptions": 0.9965,
                "tackles_won": 1.1513,
                "tackles": 1.833,
                "clearances": 0.5189,
                "total_contest": 0.8538,
                "won_contest": 0.163,
                "challenges_lost": 0.7055,
                "fouls": 1.7363,
                "fouls_drawn": 0.5819,
                "blocks": 0.0437,
                "big_chances_created": 0.0011,
                "big_chances_missed": 0.0,
                "xgot": 0.0478,
                "ball_carries": 10.4107,
                "total_progression": 27.7221,
                "progressive_carries": 0.3523,
                "shots_off_target": 0.6803
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 7,
                  "trained_at": "2026-11-01T11:27:07.750726+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 905,
                    "rows": 25067
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-21",
                    "opponent": "Levante UD",
                    "minutes": 45.0,
                    "is_starting": true,
                    "weight": 0.1501,
                    "rating": 5.9
                  },
                  {
                    "match_date": "2026-10-17",
                    "opponent": "Valencia",
                    "minutes": 45.0,
                    "is_starting": false,
                    "weight": 0.1276,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Deportivo Alavés",
                    "minutes": 62.0,
                    "is_starting": true,
                    "weight": 0.1085,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Elche",
                    "minutes": 25.0,
                    "is_starting": false,
                    "weight": 0.0922,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Atlético Madrid",
                    "minutes": 30.0,
                    "is_starting": false,
                    "weight": 0.0784,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Celta Vigo",
                    "minutes": 25.0,
                    "is_starting": false,
                    "weight": 0.0666,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "FC Barcelona",
                    "minutes": 70.0,
                    "is_starting": true,
                    "weight": 0.0566,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-05-23",
                    "opponent": "Real Madrid",
                    "minutes": 85.0,
                    "is_starting": true,
                    "weight": 0.0481,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-05-17",
                    "opponent": "Celta Vigo",
                    "minutes": 71.0,
                    "is_starting": true,
                    "weight": 0.0409,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-05-13",
                    "opponent": "Espanyol",
                    "minutes": 27.0,
                    "is_starting": false,
                    "weight": 0.0348,
                    "rating": 6.2
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 1.0,
                  "totalShots": 0.8387,
                  "creative_index": 0.1559,
                  "expectedGoals": 0.0351,
                  "expectedAssists": 0.026,
                  "keyPass": 0.3509
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.6312748789787292,
                    "model_output": 0.6313,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1578
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1373
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0712
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0516
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0289
                      }
                    ],
                    "decomposition": {
                      "base": 0.8902,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": -0.1275
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1126
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0838
                        },
                        {
                          "name": "wonTackle",
                          "contribution": -0.0374
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0276
                        }
                      ],
                      "others": -0.0952,
                      "total": 0.6313,
                      "log_link": true,
                      "margin_base": -0.116298,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": -0.154601
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.137752
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.100606
                        },
                        {
                          "name": "wonTackle",
                          "margin": -0.048363
                        },
                        {
                          "name": "cross_creative_contribution",
                          "margin": -0.037304
                        }
                      ],
                      "others_margin": -0.140593
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.05282033234834671,
                    "model_output": 0.0528,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1181
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.1136
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.1034
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0572
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0473
                      }
                    ],
                    "decomposition": {
                      "base": 0.0847,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0198
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0101
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0057
                        },
                        {
                          "name": "totalCross",
                          "contribution": 0.0045
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0033
                        }
                      ],
                      "others": -0.0177,
                      "total": 0.0528,
                      "log_link": true,
                      "margin_base": -2.468924,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": -0.266739
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.145006
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.078521
                        },
                        {
                          "name": "totalCross",
                          "margin": 0.062974
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.045408
                        }
                      ],
                      "others_margin": -0.289248
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.05604598671197891,
                    "model_output": 0.056,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0627
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0445
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0417
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0324
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0293
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "creative_index",
                          "contribution": -0.0078
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0069
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": -0.0051
                        },
                        {
                          "name": "totalCross",
                          "contribution": 0.0044
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": -0.0041
                        }
                      ],
                      "others": -0.0234,
                      "total": 0.056,
                      "log_link": true,
                      "margin_base": -2.463472,
                      "item_margins": [
                        {
                          "name": "creative_index",
                          "margin": -0.095715
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.085418
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": -0.062657
                        },
                        {
                          "name": "totalCross",
                          "margin": 0.053902
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": -0.050558
                        }
                      ],
                      "others_margin": -0.3485
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.06817945837974548,
                    "model_output": 0.0682,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedGoals",
                        "importance": 0.1255
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0756
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0438
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0265
                      }
                    ],
                    "decomposition": {
                      "base": 0.0918,
                      "items": [
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0125
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0108
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0056
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0031
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0026
                        }
                      ],
                      "others": -0.0106,
                      "total": 0.0682,
                      "log_link": true,
                      "margin_base": -2.387963,
                      "item_margins": [
                        {
                          "name": "expectedGoals",
                          "margin": -0.146572
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.128042
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.063652
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.03764
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.032402
                        }
                      ],
                      "others_margin": -0.145425
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.05540771782398224,
                    "model_output": 0.0554,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0923
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.067
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.041
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0334
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.0946,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0144
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0108
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0088
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0044
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0039
                        }
                      ],
                      "others": -0.0145,
                      "total": 0.0554,
                      "log_link": true,
                      "margin_base": -2.358385,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.165164
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.144451
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.119838
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.05766
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.054265
                        }
                      ],
                      "others_margin": -0.232948
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.27819639444351196,
                    "model_output": 0.2782,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.117
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0884
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0772
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0315
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0258
                      }
                    ],
                    "decomposition": {
                      "base": 0.3179,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0424
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0353
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0214
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0082
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0078
                        }
                      ],
                      "others": -0.0258,
                      "total": 0.2782,
                      "log_link": true,
                      "margin_base": -1.146086,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.125337
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.10298
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.068109
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.026683
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.025221
                        }
                      ],
                      "others_margin": -0.089051
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.9584863781929016,
                    "model_output": 0.9585,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1349
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1208
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0462
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.044
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0312
                      }
                    ],
                    "decomposition": {
                      "base": 0.9849,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1473
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0427
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0334
                        },
                        {
                          "name": "goalAssist",
                          "contribution": -0.0309
                        },
                        {
                          "name": "wonTackle",
                          "contribution": -0.0178
                        }
                      ],
                      "others": -0.0489,
                      "total": 0.9585,
                      "log_link": false,
                      "margin_base": 0.984935,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.147266
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.042709
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.033399
                        },
                        {
                          "name": "goalAssist",
                          "margin": -0.030929
                        },
                        {
                          "name": "wonTackle",
                          "margin": -0.017824
                        }
                      ],
                      "others_margin": -0.048854
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.8175554275512695,
                    "model_output": 6.8176,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "rating",
                        "importance": 0.0864
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0749
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0486
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0482
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 6.8574,
                      "items": [
                        {
                          "name": "rating",
                          "contribution": -0.0404
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0319
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0109
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0082
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0071
                        }
                      ],
                      "others": -0.0215,
                      "total": 6.8176,
                      "log_link": false,
                      "margin_base": 6.857404,
                      "item_margins": [
                        {
                          "name": "rating",
                          "margin": -0.040398
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.031886
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.010895
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.008206
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": -0.007139
                        }
                      ],
                      "others_margin": -0.02151
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 43,
                  "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 1.0057, quality 0.686)",
              "stats": {
                "key_pass": 0.6349,
                "expected_assists": 0.0531,
                "assists": 0.0564,
                "assist_rate": 0.0564,
                "expected_goals": 0.0686,
                "goals": 0.0557,
                "goal_rate": 0.0557,
                "shots_on_target": 0.2798,
                "total_shots": 0.964,
                "rating": 6.8176,
                "minutes": 70.43,
                "total_pass": 33.1104,
                "accurate_pass": 25.9789,
                "duels_won": 4.2425,
                "total_long_balls": 2.5565,
                "accurate_long_balls": 1.1459,
                "total_own_half_passes": 10.4154,
                "accurate_own_half_passes": 8.956,
                "total_opp_half_passes": 22.695,
                "accurate_opp_half_passes": 17.0231,
                "crosses_total": 1.437,
                "crosses_accurate": 0.3932,
                "touches": 44.5797,
                "possession_lost": 11.067,
                "dispossessed": 0.6663,
                "duels_lost": 4.6432,
                "aerial_won": 1.65,
                "aerial_lost": 0.8763,
                "interceptions": 1.0022,
                "tackles_won": 1.1579,
                "tackles": 1.8434,
                "clearances": 0.5219,
                "total_contest": 0.8587,
                "won_contest": 0.1639,
                "challenges_lost": 0.7095,
                "fouls": 1.7462,
                "fouls_drawn": 0.5852,
                "blocks": 0.0439,
                "big_chances_created": 0.0011,
                "big_chances_missed": 0.0,
                "xgot": 0.0481,
                "ball_carries": 10.47,
                "total_progression": 27.8801,
                "progressive_carries": 0.3543,
                "shots_off_target": 0.6842
              },
              "params": {
                "market_value_eur": 26000000,
                "quality_factor": 0.6858,
                "boost_factor": 1.0057,
                "reference_quality": 0.505,
                "history_matches": 43,
                "history_shrink": 0.1042,
                "market_value_known": true
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0050)",
              "stats": {
                "key_pass": 0.6349,
                "expected_assists": 0.0531,
                "assists": 0.0561,
                "assist_rate": 0.0561,
                "expected_goals": 0.0686,
                "goals": 0.0554,
                "goal_rate": 0.0554,
                "shots_on_target": 0.2784,
                "total_shots": 0.9592,
                "rating": 6.8176,
                "minutes": 70.43,
                "total_pass": 33.1104,
                "accurate_pass": 25.9789,
                "duels_won": 4.2425,
                "total_long_balls": 2.5565,
                "accurate_long_balls": 1.1459,
                "total_own_half_passes": 10.4154,
                "accurate_own_half_passes": 8.956,
                "total_opp_half_passes": 22.695,
                "accurate_opp_half_passes": 17.0231,
                "crosses_total": 1.4299,
                "crosses_accurate": 0.3932,
                "touches": 44.5797,
                "possession_lost": 11.067,
                "dispossessed": 0.6663,
                "duels_lost": 4.6432,
                "aerial_won": 1.65,
                "aerial_lost": 0.8763,
                "interceptions": 1.0078,
                "tackles_won": 1.1557,
                "tackles": 1.8434,
                "clearances": 0.5219,
                "total_contest": 0.8587,
                "won_contest": 0.1639,
                "challenges_lost": 0.7095,
                "fouls": 1.7446,
                "fouls_drawn": 0.5823,
                "blocks": 0.0439,
                "big_chances_created": 0.0011,
                "big_chances_missed": 0.0,
                "xgot": 0.0481,
                "ball_carries": 10.47,
                "total_progression": 27.8801,
                "progressive_carries": 0.3543,
                "shots_off_target": 0.6842
              },
              "params": {
                "blend_weight": 0.005,
                "history_matches": 43,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.7826,
                "prior_reliability": 0.0733,
                "competition": "La Liga",
                "squad": "Athletic Club"
              },
              "changes": [
                {
                  "stat": "totalCross",
                  "before": 1.437,
                  "after": 1.4299
                },
                {
                  "stat": "interceptionWon",
                  "before": 1.0022,
                  "after": 1.0078
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0.6349,
                "expected_assists": 0.0531,
                "assists": 0.0561,
                "assist_rate": 0.0561,
                "expected_goals": 0.0686,
                "goals": 0.0554,
                "goal_rate": 0.0554,
                "shots_on_target": 0.2784,
                "total_shots": 0.9626,
                "rating": 6.8176,
                "minutes": 70.43,
                "total_pass": 33.1104,
                "accurate_pass": 25.9789,
                "duels_won": 4.2425,
                "total_long_balls": 2.5565,
                "accurate_long_balls": 1.1459,
                "total_own_half_passes": 10.4154,
                "accurate_own_half_passes": 8.956,
                "total_opp_half_passes": 22.695,
                "accurate_opp_half_passes": 17.0231,
                "crosses_total": 1.4299,
                "crosses_accurate": 0.3932,
                "touches": 44.5797,
                "possession_lost": 11.067,
                "dispossessed": 0.6663,
                "duels_lost": 4.6432,
                "aerial_won": 1.65,
                "aerial_lost": 0.8763,
                "interceptions": 1.0078,
                "tackles_won": 1.1557,
                "tackles": 1.8434,
                "clearances": 0.5219,
                "total_contest": 0.8587,
                "won_contest": 0.1639,
                "challenges_lost": 0.7095,
                "fouls": 1.7446,
                "fouls_drawn": 0.5823,
                "blocks": 0.0439,
                "big_chances_created": 0.0011,
                "big_chances_missed": 0.0,
                "xgot": 0.0481,
                "ball_carries": 10.47,
                "total_progression": 27.8801,
                "progressive_carries": 0.3543,
                "shots_off_target": 0.6842
              },
              "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.6349,
                "expected_assists": 0.0531,
                "assists": 0.0561,
                "assist_rate": 0.0561,
                "expected_goals": 0.0755,
                "goals": 0.061,
                "goal_rate": 0.061,
                "shots_on_target": 0.3066,
                "total_shots": 1.0601,
                "rating": 6.8176,
                "minutes": 70.43,
                "total_pass": 33.1104,
                "accurate_pass": 25.9789,
                "duels_won": 4.2425,
                "total_long_balls": 2.5565,
                "accurate_long_balls": 1.1459,
                "total_own_half_passes": 10.4154,
                "accurate_own_half_passes": 8.956,
                "total_opp_half_passes": 22.695,
                "accurate_opp_half_passes": 17.0231,
                "crosses_total": 1.4299,
                "crosses_accurate": 0.3932,
                "touches": 44.5797,
                "possession_lost": 11.067,
                "dispossessed": 0.6663,
                "duels_lost": 4.6432,
                "aerial_won": 1.0,
                "aerial_lost": 0.8763,
                "interceptions": 1.0078,
                "tackles_won": 1.1557,
                "tackles": 1.8434,
                "clearances": 0.5219,
                "total_contest": 0.8587,
                "won_contest": 0.1639,
                "challenges_lost": 0.7095,
                "fouls": 1.7446,
                "fouls_drawn": 0.5823,
                "blocks": 0.0439,
                "big_chances_created": 0.0011,
                "big_chances_missed": 0.0,
                "xgot": 0.053,
                "ball_carries": 10.47,
                "total_progression": 27.8801,
                "progressive_carries": 0.3543,
                "shots_off_target": 0.7535,
                "duel_xg_multiplier": 1.1013,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.9,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.489,
                "pressing_faced": "LOW",
                "matchup_zone": "CDM vs CDM",
                "numerical_situation": "1v1",
                "opponent_defenders": "Beñat Turrientes",
                "opponent_faced": "Beñat Turrientes",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Beñat Turrientes",
                  "matchup_zone": "CDM vs CDM",
                  "duel_win_rate": 0.489,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v1",
                  "xg_multiplier": 1.1013,
                  "skill_edge": 0.0769,
                  "height_edge": -0.008,
                  "attacker_skill": 0.7219,
                  "defender_skill": 0.551,
                  "attacker_role": "CDM",
                  "attacker_mv_price_index": 0.85,
                  "defender_adjusted_parts": [
                    {
                      "player": "Beñat Turrientes",
                      "market_value": 10600000,
                      "role": "CDM",
                      "price_index": 0.85,
                      "adjusted_quality": 0.551
                    }
                  ],
                  "xg_override": 0.0755
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 1.65,
                  "after": 1.0
                },
                {
                  "stat": "totalShots",
                  "before": 0.9626,
                  "after": 1.0601
                },
                {
                  "stat": "shotOffTarget",
                  "before": 0.6842,
                  "after": 0.7535
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.2784,
                  "after": 0.3066
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.0686,
                  "after": 0.0755
                },
                {
                  "stat": "goals",
                  "before": 0.0554,
                  "after": 0.061
                }
              ]
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "key_pass": 0.6349,
                "expected_assists": 0.0531,
                "assist_rate": 0.0561,
                "assists": 0,
                "expected_goals": 0.0755,
                "goal_rate": 0.061,
                "goals": 0,
                "shots_on_target": 0.3066,
                "total_shots": 1.0601,
                "rating": 6.8176,
                "minutes": 70.43,
                "total_pass": 33.1104,
                "accurate_pass": 25.9789,
                "duels_won": 4.2425,
                "total_long_balls": 2.5565,
                "accurate_long_balls": 1.1459,
                "total_own_half_passes": 10.4154,
                "accurate_own_half_passes": 8.956,
                "total_opp_half_passes": 22.695,
                "accurate_opp_half_passes": 17.0231,
                "crosses_total": 1.4299,
                "crosses_accurate": 0.3932,
                "touches": 44.5797,
                "possession_lost": 11.067,
                "dispossessed": 0.6663,
                "duels_lost": 4.6432,
                "aerial_won": 1.0,
                "aerial_lost": 0.8763,
                "interceptions": 1.0078,
                "tackles_won": 1.1557,
                "tackles": 1.8434,
                "clearances": 0.5219,
                "total_contest": 0.8587,
                "won_contest": 0.1639,
                "challenges_lost": 0.7095,
                "fouls": 1.7446,
                "fouls_drawn": 0.5823,
                "blocks": 0.0439,
                "big_chances_created": 0.0011,
                "big_chances_missed": 0.0,
                "xgot": 0.053,
                "ball_carries": 10.47,
                "total_progression": 27.8801,
                "progressive_carries": 0.3543,
                "shots_off_target": 0.7535,
                "duel_xg_multiplier": 1.1013,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.9,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.489,
                "pressing_faced": "LOW",
                "matchup_zone": "CDM vs CDM",
                "numerical_situation": "1v1",
                "opponent_defenders": "Beñat Turrientes",
                "opponent_faced": "Beñat Turrientes",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "scoreline_reset": true,
                "team_goals": 2
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.73 (squad xG sum 1.0016, xG scale 1.7263, xA scale 1.7263, team xA 1.22 = 0.71 x lambda)",
              "stats": {
                "key_pass": 0.6349,
                "expected_assists": 0.0917,
                "assist_rate": 0.0561,
                "assists": 0,
                "expected_goals": 0.1303,
                "goal_rate": 0.061,
                "goals": 0,
                "shots_on_target": 0.3066,
                "total_shots": 1.0601,
                "rating": 6.8176,
                "minutes": 70.43,
                "total_pass": 33.1104,
                "accurate_pass": 25.9789,
                "duels_won": 4.2425,
                "total_long_balls": 2.5565,
                "accurate_long_balls": 1.1459,
                "total_own_half_passes": 10.4154,
                "accurate_own_half_passes": 8.956,
                "total_opp_half_passes": 22.695,
                "accurate_opp_half_passes": 17.0231,
                "crosses_total": 1.4299,
                "crosses_accurate": 0.3932,
                "touches": 44.5797,
                "possession_lost": 11.067,
                "dispossessed": 0.6663,
                "duels_lost": 4.6432,
                "aerial_won": 1.0,
                "aerial_lost": 0.8763,
                "interceptions": 1.0078,
                "tackles_won": 1.1557,
                "tackles": 1.8434,
                "clearances": 0.5219,
                "total_contest": 0.8587,
                "won_contest": 0.1639,
                "challenges_lost": 0.7095,
                "fouls": 1.7446,
                "fouls_drawn": 0.5823,
                "blocks": 0.0439,
                "big_chances_created": 0.0011,
                "big_chances_missed": 0.0,
                "xgot": 0.0915,
                "ball_carries": 10.47,
                "total_progression": 27.8801,
                "progressive_carries": 0.3543,
                "shots_off_target": 0.7535,
                "duel_xg_multiplier": 1.1013,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.9,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.489,
                "pressing_faced": "LOW",
                "matchup_zone": "CDM vs CDM",
                "numerical_situation": "1v1",
                "opponent_defenders": "Beñat Turrientes",
                "opponent_faced": "Beñat Turrientes",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8845,
                "creation_factor": 1.0291
              },
              "params": {
                "team_lambda": 1.729,
                "squad_xg_sum": 1.0016,
                "squad_xa_sum": 0.7085,
                "team_expected_assists": 1.2231,
                "team_xa_to_xg_ratio": 0.7074,
                "bench_appearance_weighted": true,
                "xg_scale": 1.7263,
                "xa_scale": 1.7263,
                "opponent_lambda": 1.255,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0755,
                  "after": 0.1303
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0531,
                  "after": 0.0917
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 79.0)",
              "stats": {
                "key_pass": 0.6349,
                "expected_assists": 0.0917,
                "assist_rate": 0.0561,
                "assists": 0,
                "expected_goals": 0.1303,
                "goal_rate": 0.061,
                "goals": 0,
                "shots_on_target": 0.3066,
                "total_shots": 1.0601,
                "rating": 6.8176,
                "minutes": 70.43,
                "total_pass": 33.1104,
                "accurate_pass": 25.9789,
                "duels_won": 4.2425,
                "total_long_balls": 2.5565,
                "accurate_long_balls": 1.1459,
                "total_own_half_passes": 10.4154,
                "accurate_own_half_passes": 8.956,
                "total_opp_half_passes": 22.695,
                "accurate_opp_half_passes": 17.0231,
                "crosses_total": 1.4299,
                "crosses_accurate": 0.3932,
                "touches": 44.5797,
                "possession_lost": 11.067,
                "dispossessed": 0.6663,
                "duels_lost": 4.6432,
                "aerial_won": 1.0,
                "aerial_lost": 0.8763,
                "interceptions": 1.0078,
                "tackles_won": 1.1557,
                "tackles": 1.8434,
                "clearances": 0.5219,
                "total_contest": 0.8587,
                "won_contest": 0.1639,
                "challenges_lost": 0.7095,
                "fouls": 1.7446,
                "fouls_drawn": 0.5823,
                "blocks": 0.0439,
                "big_chances_created": 0.0011,
                "big_chances_missed": 0.0,
                "xgot": 0.0915,
                "ball_carries": 10.47,
                "total_progression": 27.8801,
                "progressive_carries": 0.3543,
                "shots_off_target": 0.7535,
                "duel_xg_multiplier": 1.1013,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.9,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.489,
                "pressing_faced": "LOW",
                "matchup_zone": "CDM vs CDM",
                "numerical_situation": "1v1",
                "opponent_defenders": "Beñat Turrientes",
                "opponent_faced": "Beñat Turrientes",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8845,
                "creation_factor": 1.0291,
                "fifa_overall": 79.0
              },
              "params": {
                "match_squad_rank": 9,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 1561,
                "fifa_rank": 915.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 79.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "key_pass": 0.6349,
                "expected_assists": 0.0917,
                "assist_rate": 0.0561,
                "assists": 0,
                "expected_goals": 0.1303,
                "goal_rate": 0.061,
                "goals": 0,
                "shots_on_target": 0.3066,
                "total_shots": 1.0601,
                "rating": 6.8176,
                "minutes": 70.43,
                "total_pass": 33.1104,
                "accurate_pass": 25.9789,
                "duels_won": 4.2425,
                "total_long_balls": 2.5565,
                "accurate_long_balls": 1.1459,
                "total_own_half_passes": 10.4154,
                "accurate_own_half_passes": 8.956,
                "total_opp_half_passes": 22.695,
                "accurate_opp_half_passes": 17.0231,
                "crosses_total": 1.4299,
                "crosses_accurate": 0.3932,
                "touches": 44.5797,
                "possession_lost": 11.067,
                "dispossessed": 0.6663,
                "duels_lost": 4.6432,
                "aerial_won": 1.0,
                "aerial_lost": 0.8763,
                "interceptions": 1.0078,
                "tackles_won": 1.1557,
                "tackles": 1.8434,
                "clearances": 0.5219,
                "total_contest": 0.8587,
                "won_contest": 0.1639,
                "challenges_lost": 0.7095,
                "fouls": 1.7446,
                "fouls_drawn": 0.5823,
                "blocks": 0.0439,
                "big_chances_created": 0.0011,
                "big_chances_missed": 0.0,
                "xgot": 0.0915,
                "ball_carries": 10.47,
                "total_progression": 27.8801,
                "progressive_carries": 0.3543,
                "shots_off_target": 0.7535,
                "duel_xg_multiplier": 1.1013,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.9,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.489,
                "pressing_faced": "LOW",
                "matchup_zone": "CDM vs CDM",
                "numerical_situation": "1v1",
                "opponent_defenders": "Beñat Turrientes",
                "opponent_faced": "Beñat Turrientes",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.1222,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8845,
                "creation_factor": 1.0291,
                "fifa_overall": 79.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 2,
                "goals_allocated": 0,
                "goal_probability": 0.1222,
                "goal_rate": 0.061,
                "scorer_weight": 0.1153,
                "squad_weight_total": 1.9109,
                "weight_share": 0.0603,
                "finishing_factor": 0.8845,
                "appearance_weight": 1.0,
                "weight_rank": 5,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Iñaki Williams",
                    "weight": 0.5576,
                    "already": 0,
                    "effective_weight": 0.5576,
                    "runner_up": "Nico Williams",
                    "runner_up_effective_weight": 0.305
                  },
                  {
                    "n": 2,
                    "player": "Nico Williams",
                    "weight": 0.305,
                    "already": 0,
                    "effective_weight": 0.305,
                    "runner_up": "Álex Berenguer",
                    "runner_up_effective_weight": 0.2692
                  }
                ]
              }
            },
            {
              "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.6349,
                "expected_assists": 0.0917,
                "assist_rate": 0.0561,
                "assists": 0,
                "expected_goals": 0.1303,
                "goal_rate": 0.061,
                "goals": 0,
                "shots_on_target": 0.3066,
                "total_shots": 1.0601,
                "rating": 6.8176,
                "minutes": 70.43,
                "total_pass": 33.1104,
                "accurate_pass": 25.9789,
                "duels_won": 4.2425,
                "total_long_balls": 2.5565,
                "accurate_long_balls": 1.1459,
                "total_own_half_passes": 10.4154,
                "accurate_own_half_passes": 8.956,
                "total_opp_half_passes": 22.695,
                "accurate_opp_half_passes": 17.0231,
                "crosses_total": 1.4299,
                "crosses_accurate": 0.3932,
                "touches": 44.5797,
                "possession_lost": 11.067,
                "dispossessed": 0.6663,
                "duels_lost": 4.6432,
                "aerial_won": 1.0,
                "aerial_lost": 0.8763,
                "interceptions": 1.0078,
                "tackles_won": 1.1557,
                "tackles": 1.8434,
                "clearances": 0.5219,
                "total_contest": 0.8587,
                "won_contest": 0.1639,
                "challenges_lost": 0.7095,
                "fouls": 1.7446,
                "fouls_drawn": 0.5823,
                "blocks": 0.0439,
                "big_chances_created": 0.0011,
                "big_chances_missed": 0.0,
                "xgot": 0.0915,
                "ball_carries": 10.47,
                "total_progression": 27.8801,
                "progressive_carries": 0.3543,
                "shots_off_target": 0.7535,
                "duel_xg_multiplier": 1.1013,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.9,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.489,
                "pressing_faced": "LOW",
                "matchup_zone": "CDM vs CDM",
                "numerical_situation": "1v1",
                "opponent_defenders": "Beñat Turrientes",
                "opponent_faced": "Beñat Turrientes",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.1222,
                "projected_assists": 0,
                "assist_probability": 0.0876,
                "finishing_factor": 0.8845,
                "creation_factor": 1.0291,
                "fifa_overall": 79.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0876,
                "assist_rate": 0.0561,
                "provider_weight": 0.0944,
                "squad_weight_total": 1.1843,
                "weight_share": 0.0797,
                "creation_factor": 1.0291,
                "appearance_weight": 1.0,
                "weight_rank": 5,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Álex Berenguer",
                    "weight": 0.2673,
                    "already": 0,
                    "effective_weight": 0.2673,
                    "runner_up": "Yuri Berchiche",
                    "runner_up_effective_weight": 0.2271
                  }
                ]
              }
            }
          ]
        },
        "Beñat Gerenabarrena": {
          "player_id": 1171619,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 24,
          "height": 173,
          "market_value": 5200000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0766,
            "assist_rate": 0.0595,
            "assists": 0,
            "expected_goals": 0.0537,
            "goal_rate": 0.0399,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 0,
            "rating": 6.8144,
            "minutes": 79,
            "total_pass": 36,
            "accurate_pass": 30,
            "duels_won": 5,
            "total_long_balls": 2,
            "accurate_long_balls": 1,
            "total_own_half_passes": 15,
            "accurate_own_half_passes": 14,
            "total_opp_half_passes": 21,
            "accurate_opp_half_passes": 16,
            "crosses_total": 1,
            "crosses_accurate": 0,
            "touches": 49,
            "possession_lost": 8.733,
            "dispossessed": 0.1648,
            "duels_lost": 4,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 2,
            "tackles_won": 2,
            "tackles": 3,
            "clearances": 1,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 1,
            "fouls": 2,
            "fouls_drawn": 1,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.015,
            "ball_carries": 10,
            "total_progression": 37,
            "progressive_carries": 0,
            "shots_off_target": 0,
            "duel_xg_multiplier": 0.915,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.6,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.362,
            "pressing_faced": "LOW",
            "matchup_zone": "CDM vs CDM",
            "numerical_situation": "1v1",
            "opponent_defenders": "Beñat Turrientes",
            "opponent_faced": "Beñat Turrientes",
            "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.0523,
            "projected_assists": 0,
            "assist_probability": 0.0737,
            "finishing_factor": 1.1085,
            "creation_factor": 1.16,
            "fifa_overall": 80.0
          },
          "latest_10_games": [
            {
              "match_id": 16421081.0,
              "match_date": "2026-10-25",
              "home_team": "Athletic Club",
              "away_team": "Getafe",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Getafe",
              "stats": {
                "minutes": 30,
                "rating": 6.6,
                "expected_assists": 0.0016,
                "total_shots": 0,
                "total_pass": 15,
                "accurate_pass": 13,
                "tackles": 2,
                "tackles_won": 1,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421074.0,
              "match_date": "2026-10-17",
              "home_team": "Valencia",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Valencia",
              "stats": {
                "minutes": 45,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0119,
                "total_shots": 0,
                "total_pass": 27,
                "accurate_pass": 20,
                "key_pass": 1,
                "tackles": 3,
                "tackles_won": 1,
                "clearances": 1,
                "duels_won": 5,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416322.0,
              "match_date": "2026-09-12",
              "home_team": "Athletic Club",
              "away_team": "Elche",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Elche",
              "stats": {
                "minutes": 90,
                "rating": 6.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0187,
                "total_shots": 0,
                "total_pass": 47,
                "accurate_pass": 40,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416317.0,
              "match_date": "2026-09-05",
              "home_team": "Athletic Club",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0041,
                "total_shots": 0,
                "total_pass": 24,
                "accurate_pass": 19,
                "tackles": 3,
                "tackles_won": 2,
                "interceptions": 4,
                "clearances": 1,
                "duels_won": 4,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416308.0,
              "match_date": "2026-08-30",
              "home_team": "Celta Vigo",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 90,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0176,
                "total_shots": 0,
                "total_pass": 47,
                "accurate_pass": 44,
                "tackles": 3,
                "tackles_won": 2,
                "interceptions": 2,
                "clearances": 1,
                "aerial_won": 2,
                "duels_won": 6,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421059.0,
              "match_date": "2026-08-27",
              "home_team": "FC Barcelona",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "FC Barcelona",
              "stats": {
                "minutes": 20,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.1869,
                "total_shots": 0,
                "total_pass": 10,
                "accurate_pass": 10,
                "key_pass": 1,
                "interceptions": 1,
                "clearances": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416301.0,
              "match_date": "2026-08-22",
              "home_team": "Athletic Club",
              "away_team": "Sevilla",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 83,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0312,
                "expected_assists": 0.0182,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 41,
                "accurate_pass": 33,
                "tackles": 3,
                "tackles_won": 3,
                "interceptions": 4,
                "aerial_won": 1,
                "duels_won": 6,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 1747,
            "combined_rank_score": 696.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 698.0,
            "sofascore_rating": 6.7,
            "sofascore_appearances": 3.0,
            "fifa_rank": 694.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.8144,
            "source_file": "data/player_rankings.csv",
            "player_name": "Beñat Gerenabarrena",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Vicente Vega",
                  "ranking": 1742
                },
                {
                  "player_name": "Enes Mahmutović",
                  "ranking": 1743
                },
                {
                  "player_name": "Ľubomír Šatka",
                  "ranking": 1744
                },
                {
                  "player_name": "Myeong-heui Choi",
                  "ranking": 1745
                },
                {
                  "player_name": "Ku Hyun-jun",
                  "ranking": 1746
                }
              ],
              "lower": [
                {
                  "player_name": "Kauã Moraes",
                  "ranking": 1748
                },
                {
                  "player_name": "Tomás Rincón",
                  "ranking": 1749
                },
                {
                  "player_name": "Wilker Ángel",
                  "ranking": 1750
                },
                {
                  "player_name": "Damion Lowe",
                  "ranking": 1751
                },
                {
                  "player_name": "Michael Hector",
                  "ranking": 1752
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.709,
          "history_matches": 7,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "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": 7,
            "data_confidence": 0.709,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.995,
            "fbref_prior_metrics": {
              "squad": "Athletic Club",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 2.0,
              "minutes": 193.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.47,
              "shots_on_target_pct": 100.0,
              "prior_reliability": 0.14
            },
            "rationale": "XGBoost regressor (M_service) evaluated 7 historical appearances across 8 target models; FBref 2026-2027 prior blended (La Liga, Athletic Club, rel: 0.14, 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.4863,
                "expected_assists": 0.0447,
                "assists": 0.0621,
                "assist_rate": 0.0621,
                "expected_goals": 0.0341,
                "goals": 0.0455,
                "goal_rate": 0.0455,
                "shots_on_target": 0.138,
                "total_shots": 0.4629,
                "rating": 6.8144,
                "minutes": 79.49,
                "total_pass": 36.2819,
                "accurate_pass": 30.1931,
                "duels_won": 4.6531,
                "total_long_balls": 2.304,
                "accurate_long_balls": 1.3924,
                "total_own_half_passes": 15.4084,
                "accurate_own_half_passes": 14.182,
                "total_opp_half_passes": 20.8735,
                "accurate_opp_half_passes": 16.0111,
                "crosses_total": 0.9234,
                "crosses_accurate": 0.0,
                "touches": 49.1507,
                "possession_lost": 8.7769,
                "dispossessed": 0.1656,
                "duels_lost": 3.709,
                "aerial_won": 0.7011,
                "aerial_lost": 0.2696,
                "interceptions": 1.9027,
                "tackles_won": 1.6419,
                "tackles": 2.5416,
                "clearances": 0.6301,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "challenges_lost": 1.4876,
                "fouls": 2.2214,
                "fouls_drawn": 1.4104,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0095,
                "ball_carries": 9.981,
                "total_progression": 37.441,
                "progressive_carries": 0.4584,
                "shots_off_target": 0.3249
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 7,
                  "trained_at": "2026-11-01T11:27:07.750726+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 905,
                    "rows": 25067
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-25",
                    "opponent": "Getafe",
                    "minutes": 30.0,
                    "is_starting": false,
                    "weight": 0.2208,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-10-17",
                    "opponent": "Valencia",
                    "minutes": 45.0,
                    "is_starting": true,
                    "weight": 0.1877,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Elche",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1595,
                    "rating": 6.1
                  },
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Atlético Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1356,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Celta Vigo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1152,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "FC Barcelona",
                    "minutes": 20.0,
                    "is_starting": false,
                    "weight": 0.098,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Sevilla",
                    "minutes": 83.0,
                    "is_starting": true,
                    "weight": 0.0833,
                    "rating": 6.2
                  }
                ],
                "feature_row": {
                  "history_matches": 7.0,
                  "is_starting_11": 1.0,
                  "totalShots": 0.0833,
                  "creative_index": 0.131,
                  "expectedGoals": 0.0026,
                  "expectedAssists": 0.028,
                  "keyPass": 0.2856
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.48626166582107544,
                    "model_output": 0.4863,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1578
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1373
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0712
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0516
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0289
                      }
                    ],
                    "decomposition": {
                      "base": 0.8902,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": -0.1053
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.094
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0857
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0643
                        },
                        {
                          "name": "wonTackle",
                          "contribution": -0.0357
                        }
                      ],
                      "others": -0.2069,
                      "total": 0.4863,
                      "log_link": true,
                      "margin_base": -0.116298,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": -0.125837
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.113116
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.102623
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.084504
                        },
                        {
                          "name": "wonTackle",
                          "margin": -0.050213
                        }
                      ],
                      "others_margin": -0.35465
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.04465775936841965,
                    "model_output": 0.0447,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1181
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.1136
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.1034
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0572
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0473
                      }
                    ],
                    "decomposition": {
                      "base": 0.0847,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0161
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0096
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0047
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0039
                        },
                        {
                          "name": "wonTackle",
                          "contribution": -0.0036
                        }
                      ],
                      "others": -0.0213,
                      "total": 0.0447,
                      "log_link": true,
                      "margin_base": -2.468924,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": -0.210589
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.130626
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.062024
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.053904
                        },
                        {
                          "name": "wonTackle",
                          "margin": -0.053309
                        }
                      ],
                      "others_margin": -0.390604
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.06210189312696457,
                    "model_output": 0.0621,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0627
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0445
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0417
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0324
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0293
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0088
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0071
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.006
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0051
                        },
                        {
                          "name": "wonTackle",
                          "contribution": -0.0043
                        }
                      ],
                      "others": -0.0093,
                      "total": 0.0621,
                      "log_link": true,
                      "margin_base": -2.463472,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.097882
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.078459
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.072094
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.06479
                        },
                        {
                          "name": "wonTackle",
                          "margin": -0.058108
                        }
                      ],
                      "others_margin": -0.139938
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.03414313495159149,
                    "model_output": 0.0341,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedGoals",
                        "importance": 0.1255
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0756
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0438
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0265
                      }
                    ],
                    "decomposition": {
                      "base": 0.0918,
                      "items": [
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0356
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0116
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0066
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0045
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0033
                        }
                      ],
                      "others": -0.0093,
                      "total": 0.0341,
                      "log_link": true,
                      "margin_base": -2.387963,
                      "item_margins": [
                        {
                          "name": "expectedGoals",
                          "margin": -0.491026
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.23226
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.139016
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.092876
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.073241
                        }
                      ],
                      "others_margin": -0.238846
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.045532647520303726,
                    "model_output": 0.0455,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0923
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.067
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.041
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0334
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.0946,
                      "items": [
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0196
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0137
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0083
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0067
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.004
                        }
                      ],
                      "others": -0.0102,
                      "total": 0.0455,
                      "log_link": true,
                      "margin_base": -2.358385,
                      "item_margins": [
                        {
                          "name": "expectedGoals",
                          "margin": -0.231604
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.201261
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.144665
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.118726
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.069223
                        }
                      ],
                      "others_margin": -0.202912
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.13797421753406525,
                    "model_output": 0.138,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.117
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0884
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0772
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0315
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0258
                      }
                    ],
                    "decomposition": {
                      "base": 0.3179,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0953
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0408
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0237
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.021
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0141
                        }
                      ],
                      "others": -0.027,
                      "total": 0.138,
                      "log_link": true,
                      "margin_base": -1.146086,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.356191
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.202203
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.139371
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.124891
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.081636
                        }
                      ],
                      "others_margin": -0.180091
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.4628243148326874,
                    "model_output": 0.4628,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1349
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1208
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0462
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.044
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0312
                      }
                    ],
                    "decomposition": {
                      "base": 0.9849,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.2983
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1133
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.052
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0516
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0404
                        }
                      ],
                      "others": -0.1931,
                      "total": 0.4628,
                      "log_link": false,
                      "margin_base": 0.984935,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.298263
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.113269
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.052025
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.051553
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.040373
                        }
                      ],
                      "others_margin": -0.193167
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.814399719238281,
                    "model_output": 6.8144,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "rating",
                        "importance": 0.0864
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0749
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0486
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0482
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 6.8574,
                      "items": [
                        {
                          "name": "rating",
                          "contribution": -0.0357
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.03
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0126
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": 0.0083
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0067
                        }
                      ],
                      "others": -0.0263,
                      "total": 6.8144,
                      "log_link": false,
                      "margin_base": 6.857404,
                      "item_margins": [
                        {
                          "name": "rating",
                          "margin": -0.035656
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.030047
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.01261
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "margin": 0.008304
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.006663
                        }
                      ],
                      "others_margin": -0.026426
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 7,
                  "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.9950, quality 0.465)",
              "stats": {
                "key_pass": 0.4838,
                "expected_assists": 0.0444,
                "assists": 0.0618,
                "assist_rate": 0.0618,
                "expected_goals": 0.034,
                "goals": 0.0453,
                "goal_rate": 0.0453,
                "shots_on_target": 0.1373,
                "total_shots": 0.4606,
                "rating": 6.8144,
                "minutes": 79.49,
                "total_pass": 36.1005,
                "accurate_pass": 30.0421,
                "duels_won": 4.6298,
                "total_long_balls": 2.2925,
                "accurate_long_balls": 1.3854,
                "total_own_half_passes": 15.3314,
                "accurate_own_half_passes": 14.1111,
                "total_opp_half_passes": 20.7691,
                "accurate_opp_half_passes": 15.931,
                "crosses_total": 0.9188,
                "crosses_accurate": 0.0,
                "touches": 48.9049,
                "possession_lost": 8.733,
                "dispossessed": 0.1648,
                "duels_lost": 3.6905,
                "aerial_won": 0.6976,
                "aerial_lost": 0.2683,
                "interceptions": 1.8932,
                "tackles_won": 1.6337,
                "tackles": 2.5289,
                "clearances": 0.6269,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "challenges_lost": 1.4802,
                "fouls": 2.2103,
                "fouls_drawn": 1.4033,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0095,
                "ball_carries": 9.9311,
                "total_progression": 37.2538,
                "progressive_carries": 0.4561,
                "shots_off_target": 0.3233
              },
              "params": {
                "market_value_eur": 5200000,
                "quality_factor": 0.4646,
                "boost_factor": 0.995,
                "reference_quality": 0.505,
                "history_matches": 7,
                "history_shrink": 0.4167,
                "market_value_known": true
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0379)",
              "stats": {
                "key_pass": 0.4838,
                "expected_assists": 0.0444,
                "assists": 0.0595,
                "assist_rate": 0.0595,
                "expected_goals": 0.034,
                "goals": 0.0436,
                "goal_rate": 0.0436,
                "shots_on_target": 0.1478,
                "total_shots": 0.4589,
                "rating": 6.8144,
                "minutes": 79.49,
                "total_pass": 36.1005,
                "accurate_pass": 30.0421,
                "duels_won": 4.6298,
                "total_long_balls": 2.2925,
                "accurate_long_balls": 1.3854,
                "total_own_half_passes": 15.3314,
                "accurate_own_half_passes": 14.1111,
                "total_opp_half_passes": 20.7691,
                "accurate_opp_half_passes": 15.931,
                "crosses_total": 0.9796,
                "crosses_accurate": 0.0,
                "touches": 48.9049,
                "possession_lost": 8.733,
                "dispossessed": 0.1648,
                "duels_lost": 3.6905,
                "aerial_won": 0.6976,
                "aerial_lost": 0.2683,
                "interceptions": 1.933,
                "tackles_won": 1.6515,
                "tackles": 2.5289,
                "clearances": 0.6269,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "challenges_lost": 1.4802,
                "fouls": 2.2381,
                "fouls_drawn": 1.4139,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0095,
                "ball_carries": 9.9311,
                "total_progression": 37.2538,
                "progressive_carries": 0.4561,
                "shots_off_target": 0.3233
              },
              "params": {
                "blend_weight": 0.0379,
                "history_matches": 7,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.8832,
                "prior_reliability": 0.14,
                "competition": "La Liga",
                "squad": "Athletic Club"
              },
              "changes": [
                {
                  "stat": "totalCross",
                  "before": 0.9188,
                  "after": 0.9796
                },
                {
                  "stat": "interceptionWon",
                  "before": 1.8932,
                  "after": 1.933
                },
                {
                  "stat": "fouls",
                  "before": 2.2103,
                  "after": 2.2381
                },
                {
                  "stat": "wonTackle",
                  "before": 1.6337,
                  "after": 1.6515
                },
                {
                  "stat": "wasFouled",
                  "before": 1.4033,
                  "after": 1.4139
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.1373,
                  "after": 0.1478
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0.4838,
                "expected_assists": 0.0444,
                "assists": 0.0595,
                "assist_rate": 0.0595,
                "expected_goals": 0.034,
                "goals": 0.0436,
                "goal_rate": 0.0436,
                "shots_on_target": 0.1478,
                "total_shots": 0.4711,
                "rating": 6.8144,
                "minutes": 79.49,
                "total_pass": 36.1005,
                "accurate_pass": 30.0421,
                "duels_won": 4.6298,
                "total_long_balls": 2.2925,
                "accurate_long_balls": 1.3854,
                "total_own_half_passes": 15.3314,
                "accurate_own_half_passes": 14.1111,
                "total_opp_half_passes": 20.7691,
                "accurate_opp_half_passes": 15.931,
                "crosses_total": 0.9796,
                "crosses_accurate": 0.0,
                "touches": 48.9049,
                "possession_lost": 8.733,
                "dispossessed": 0.1648,
                "duels_lost": 3.6905,
                "aerial_won": 0.6976,
                "aerial_lost": 0.2683,
                "interceptions": 1.933,
                "tackles_won": 1.6515,
                "tackles": 2.5289,
                "clearances": 0.6269,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "challenges_lost": 1.4802,
                "fouls": 2.2381,
                "fouls_drawn": 1.4139,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0095,
                "ball_carries": 9.9311,
                "total_progression": 37.2538,
                "progressive_carries": 0.4561,
                "shots_off_target": 0.3233
              },
              "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.4838,
                "expected_assists": 0.0444,
                "assists": 0.0595,
                "assist_rate": 0.0595,
                "expected_goals": 0.0311,
                "goals": 0.0399,
                "goal_rate": 0.0399,
                "shots_on_target": 0.1352,
                "total_shots": 0.4311,
                "rating": 6.8144,
                "minutes": 79.49,
                "total_pass": 36.1005,
                "accurate_pass": 30.0421,
                "duels_won": 4.6298,
                "total_long_balls": 2.2925,
                "accurate_long_balls": 1.3854,
                "total_own_half_passes": 15.3314,
                "accurate_own_half_passes": 14.1111,
                "total_opp_half_passes": 20.7691,
                "accurate_opp_half_passes": 15.931,
                "crosses_total": 0.9796,
                "crosses_accurate": 0.0,
                "touches": 48.9049,
                "possession_lost": 8.733,
                "dispossessed": 0.1648,
                "duels_lost": 3.6905,
                "aerial_won": 0.9,
                "aerial_lost": 0.2683,
                "interceptions": 1.933,
                "tackles_won": 1.6515,
                "tackles": 2.5289,
                "clearances": 0.6269,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "challenges_lost": 1.4802,
                "fouls": 2.2381,
                "fouls_drawn": 1.4139,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0087,
                "ball_carries": 9.9311,
                "total_progression": 37.2538,
                "progressive_carries": 0.4561,
                "shots_off_target": 0.2958,
                "duel_xg_multiplier": 0.915,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.6,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.362,
                "pressing_faced": "LOW",
                "matchup_zone": "CDM vs CDM",
                "numerical_situation": "1v1",
                "opponent_defenders": "Beñat Turrientes",
                "opponent_faced": "Beñat Turrientes",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Beñat Turrientes",
                  "matchup_zone": "CDM vs CDM",
                  "duel_win_rate": 0.362,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v1",
                  "xg_multiplier": 0.915,
                  "skill_edge": -0.0338,
                  "height_edge": -0.024,
                  "attacker_skill": 0.4759,
                  "defender_skill": 0.551,
                  "attacker_role": "CDM",
                  "attacker_mv_price_index": 0.85,
                  "defender_adjusted_parts": [
                    {
                      "player": "Beñat Turrientes",
                      "market_value": 10600000,
                      "role": "CDM",
                      "price_index": 0.85,
                      "adjusted_quality": 0.551
                    }
                  ],
                  "xg_override": 0.0311
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.6976,
                  "after": 0.9
                },
                {
                  "stat": "totalShots",
                  "before": 0.4711,
                  "after": 0.4311
                },
                {
                  "stat": "shotOffTarget",
                  "before": 0.3233,
                  "after": 0.2958
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.1478,
                  "after": 0.1352
                }
              ]
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "key_pass": 0.4838,
                "expected_assists": 0.0444,
                "assist_rate": 0.0595,
                "assists": 0,
                "expected_goals": 0.0311,
                "goal_rate": 0.0399,
                "goals": 0,
                "shots_on_target": 0.1352,
                "total_shots": 0.4311,
                "rating": 6.8144,
                "minutes": 79.49,
                "total_pass": 36.1005,
                "accurate_pass": 30.0421,
                "duels_won": 4.6298,
                "total_long_balls": 2.2925,
                "accurate_long_balls": 1.3854,
                "total_own_half_passes": 15.3314,
                "accurate_own_half_passes": 14.1111,
                "total_opp_half_passes": 20.7691,
                "accurate_opp_half_passes": 15.931,
                "crosses_total": 0.9796,
                "crosses_accurate": 0.0,
                "touches": 48.9049,
                "possession_lost": 8.733,
                "dispossessed": 0.1648,
                "duels_lost": 3.6905,
                "aerial_won": 0.9,
                "aerial_lost": 0.2683,
                "interceptions": 1.933,
                "tackles_won": 1.6515,
                "tackles": 2.5289,
                "clearances": 0.6269,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "challenges_lost": 1.4802,
                "fouls": 2.2381,
                "fouls_drawn": 1.4139,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0087,
                "ball_carries": 9.9311,
                "total_progression": 37.2538,
                "progressive_carries": 0.4561,
                "shots_off_target": 0.2958,
                "duel_xg_multiplier": 0.915,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.6,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.362,
                "pressing_faced": "LOW",
                "matchup_zone": "CDM vs CDM",
                "numerical_situation": "1v1",
                "opponent_defenders": "Beñat Turrientes",
                "opponent_faced": "Beñat Turrientes",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "scoreline_reset": true,
                "team_goals": 2
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.73 (squad xG sum 1.0016, xG scale 1.7263, xA scale 1.7263, team xA 1.22 = 0.71 x lambda)",
              "stats": {
                "key_pass": 0.4838,
                "expected_assists": 0.0766,
                "assist_rate": 0.0595,
                "assists": 0,
                "expected_goals": 0.0537,
                "goal_rate": 0.0399,
                "goals": 0,
                "shots_on_target": 0.1352,
                "total_shots": 0.4311,
                "rating": 6.8144,
                "minutes": 79.49,
                "total_pass": 36.1005,
                "accurate_pass": 30.0421,
                "duels_won": 4.6298,
                "total_long_balls": 2.2925,
                "accurate_long_balls": 1.3854,
                "total_own_half_passes": 15.3314,
                "accurate_own_half_passes": 14.1111,
                "total_opp_half_passes": 20.7691,
                "accurate_opp_half_passes": 15.931,
                "crosses_total": 0.9796,
                "crosses_accurate": 0.0,
                "touches": 48.9049,
                "possession_lost": 8.733,
                "dispossessed": 0.1648,
                "duels_lost": 3.6905,
                "aerial_won": 0.9,
                "aerial_lost": 0.2683,
                "interceptions": 1.933,
                "tackles_won": 1.6515,
                "tackles": 2.5289,
                "clearances": 0.6269,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "challenges_lost": 1.4802,
                "fouls": 2.2381,
                "fouls_drawn": 1.4139,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.015,
                "ball_carries": 9.9311,
                "total_progression": 37.2538,
                "progressive_carries": 0.4561,
                "shots_off_target": 0.2958,
                "duel_xg_multiplier": 0.915,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.6,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.362,
                "pressing_faced": "LOW",
                "matchup_zone": "CDM vs CDM",
                "numerical_situation": "1v1",
                "opponent_defenders": "Beñat Turrientes",
                "opponent_faced": "Beñat Turrientes",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.1085,
                "creation_factor": 1.16
              },
              "params": {
                "team_lambda": 1.729,
                "squad_xg_sum": 1.0016,
                "squad_xa_sum": 0.7085,
                "team_expected_assists": 1.2231,
                "team_xa_to_xg_ratio": 0.7074,
                "bench_appearance_weighted": true,
                "xg_scale": 1.7263,
                "xa_scale": 1.7263,
                "opponent_lambda": 1.255,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0311,
                  "after": 0.0537
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0444,
                  "after": 0.0766
                }
              ]
            },
            {
              "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": {
                "key_pass": 0.4838,
                "expected_assists": 0.0766,
                "assist_rate": 0.0595,
                "assists": 0,
                "expected_goals": 0.0537,
                "goal_rate": 0.0399,
                "goals": 0,
                "shots_on_target": 0.1352,
                "total_shots": 0.4311,
                "rating": 6.8144,
                "minutes": 79.49,
                "total_pass": 36.1005,
                "accurate_pass": 30.0421,
                "duels_won": 4.6298,
                "total_long_balls": 2.2925,
                "accurate_long_balls": 1.3854,
                "total_own_half_passes": 15.3314,
                "accurate_own_half_passes": 14.1111,
                "total_opp_half_passes": 20.7691,
                "accurate_opp_half_passes": 15.931,
                "crosses_total": 0.9796,
                "crosses_accurate": 0.0,
                "touches": 48.9049,
                "possession_lost": 8.733,
                "dispossessed": 0.1648,
                "duels_lost": 3.6905,
                "aerial_won": 0.9,
                "aerial_lost": 0.2683,
                "interceptions": 1.933,
                "tackles_won": 1.6515,
                "tackles": 2.5289,
                "clearances": 0.6269,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "challenges_lost": 1.4802,
                "fouls": 2.2381,
                "fouls_drawn": 1.4139,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.015,
                "ball_carries": 9.9311,
                "total_progression": 37.2538,
                "progressive_carries": 0.4561,
                "shots_off_target": 0.2958,
                "duel_xg_multiplier": 0.915,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.6,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.362,
                "pressing_faced": "LOW",
                "matchup_zone": "CDM vs CDM",
                "numerical_situation": "1v1",
                "opponent_defenders": "Beñat Turrientes",
                "opponent_faced": "Beñat Turrientes",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.1085,
                "creation_factor": 1.16,
                "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": 1747,
                "fifa_rank": 694.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 80.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "key_pass": 0.4838,
                "expected_assists": 0.0766,
                "assist_rate": 0.0595,
                "assists": 0,
                "expected_goals": 0.0537,
                "goal_rate": 0.0399,
                "goals": 0,
                "shots_on_target": 0.1352,
                "total_shots": 0.4311,
                "rating": 6.8144,
                "minutes": 79.49,
                "total_pass": 36.1005,
                "accurate_pass": 30.0421,
                "duels_won": 4.6298,
                "total_long_balls": 2.2925,
                "accurate_long_balls": 1.3854,
                "total_own_half_passes": 15.3314,
                "accurate_own_half_passes": 14.1111,
                "total_opp_half_passes": 20.7691,
                "accurate_opp_half_passes": 15.931,
                "crosses_total": 0.9796,
                "crosses_accurate": 0.0,
                "touches": 48.9049,
                "possession_lost": 8.733,
                "dispossessed": 0.1648,
                "duels_lost": 3.6905,
                "aerial_won": 0.9,
                "aerial_lost": 0.2683,
                "interceptions": 1.933,
                "tackles_won": 1.6515,
                "tackles": 2.5289,
                "clearances": 0.6269,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "challenges_lost": 1.4802,
                "fouls": 2.2381,
                "fouls_drawn": 1.4139,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.015,
                "ball_carries": 9.9311,
                "total_progression": 37.2538,
                "progressive_carries": 0.4561,
                "shots_off_target": 0.2958,
                "duel_xg_multiplier": 0.915,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.6,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.362,
                "pressing_faced": "LOW",
                "matchup_zone": "CDM vs CDM",
                "numerical_situation": "1v1",
                "opponent_defenders": "Beñat Turrientes",
                "opponent_faced": "Beñat Turrientes",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0523,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.1085,
                "creation_factor": 1.16,
                "fifa_overall": 80.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 2,
                "goals_allocated": 0,
                "goal_probability": 0.0523,
                "goal_rate": 0.0399,
                "scorer_weight": 0.0595,
                "squad_weight_total": 1.9109,
                "weight_share": 0.0312,
                "finishing_factor": 1.1085,
                "appearance_weight": 1.0,
                "weight_rank": 10,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Iñaki Williams",
                    "weight": 0.5576,
                    "already": 0,
                    "effective_weight": 0.5576,
                    "runner_up": "Nico Williams",
                    "runner_up_effective_weight": 0.305
                  },
                  {
                    "n": 2,
                    "player": "Nico Williams",
                    "weight": 0.305,
                    "already": 0,
                    "effective_weight": 0.305,
                    "runner_up": "Álex Berenguer",
                    "runner_up_effective_weight": 0.2692
                  }
                ]
              }
            },
            {
              "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.4838,
                "expected_assists": 0.0766,
                "assist_rate": 0.0595,
                "assists": 0,
                "expected_goals": 0.0537,
                "goal_rate": 0.0399,
                "goals": 0,
                "shots_on_target": 0.1352,
                "total_shots": 0.4311,
                "rating": 6.8144,
                "minutes": 79.49,
                "total_pass": 36.1005,
                "accurate_pass": 30.0421,
                "duels_won": 4.6298,
                "total_long_balls": 2.2925,
                "accurate_long_balls": 1.3854,
                "total_own_half_passes": 15.3314,
                "accurate_own_half_passes": 14.1111,
                "total_opp_half_passes": 20.7691,
                "accurate_opp_half_passes": 15.931,
                "crosses_total": 0.9796,
                "crosses_accurate": 0.0,
                "touches": 48.9049,
                "possession_lost": 8.733,
                "dispossessed": 0.1648,
                "duels_lost": 3.6905,
                "aerial_won": 0.9,
                "aerial_lost": 0.2683,
                "interceptions": 1.933,
                "tackles_won": 1.6515,
                "tackles": 2.5289,
                "clearances": 0.6269,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "challenges_lost": 1.4802,
                "fouls": 2.2381,
                "fouls_drawn": 1.4139,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.015,
                "ball_carries": 9.9311,
                "total_progression": 37.2538,
                "progressive_carries": 0.4561,
                "shots_off_target": 0.2958,
                "duel_xg_multiplier": 0.915,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.6,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.362,
                "pressing_faced": "LOW",
                "matchup_zone": "CDM vs CDM",
                "numerical_situation": "1v1",
                "opponent_defenders": "Beñat Turrientes",
                "opponent_faced": "Beñat Turrientes",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0523,
                "projected_assists": 0,
                "assist_probability": 0.0737,
                "finishing_factor": 1.1085,
                "creation_factor": 1.16,
                "fifa_overall": 80.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0737,
                "assist_rate": 0.0595,
                "provider_weight": 0.0889,
                "squad_weight_total": 1.1843,
                "weight_share": 0.075,
                "creation_factor": 1.16,
                "appearance_weight": 1.0,
                "weight_rank": 6,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Álex Berenguer",
                    "weight": 0.2673,
                    "already": 0,
                    "effective_weight": 0.2673,
                    "runner_up": "Yuri Berchiche",
                    "runner_up_effective_weight": 0.2271
                  }
                ]
              }
            }
          ]
        },
        "Álex Berenguer": {
          "player_id": 592012,
          "position": "F",
          "position_depth": "F",
          "is_starter": true,
          "shirt_number": 7,
          "height": 175,
          "market_value": 4099999,
          "stats": {
            "expected_goals": 0.2154,
            "goal_rate": 0.1801,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "expected_assists": 0.2305,
            "key_pass": 2,
            "rating": 6.9417,
            "minutes": 80,
            "total_pass": 31,
            "accurate_pass": 25,
            "duels_won": 5,
            "total_long_balls": 3,
            "accurate_long_balls": 1,
            "total_opp_half_passes": 22,
            "accurate_opp_half_passes": 17,
            "crosses_total": 6,
            "crosses_accurate": 1,
            "touches": 55,
            "possession_lost": 17.5776,
            "dispossessed": 1.4592,
            "duels_lost": 6,
            "aerial_lost": 1,
            "total_contest": 3,
            "won_contest": 1,
            "ball_recovery": 4,
            "challenges_lost": 0,
            "fouls": 1,
            "fouls_drawn": 1,
            "assist_rate": 0.1628,
            "assists": 1,
            "interceptions": 1,
            "tackles_won": 1,
            "tackles": 1,
            "clearances": 1,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.3314,
            "offsides": 0,
            "ball_carries": 15,
            "total_progression": 67,
            "progressive_carries": 3,
            "shots_off_target": 1,
            "duel_xg_multiplier": 0.7289,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.3,
            "aerial_won": 1,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.18,
            "pressing_faced": "MEDIUM",
            "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "numerical_situation": "1v2",
            "opponent_defenders": "Mamadou Sarr, Jon Martin",
            "opponent_faced": "Mamadou Sarr, Jon Martin",
            "antagonist_source": "attacking_duel",
            "projected_goals": 0,
            "goal_probability": 0.1938,
            "projected_assists": 1,
            "assist_probability": 0.2059,
            "finishing_factor": 1.25,
            "creation_factor": 1.1597,
            "fifa_overall": 81.0
          },
          "latest_10_games": [
            {
              "match_id": 16421081.0,
              "match_date": "2026-10-25",
              "home_team": "Athletic Club",
              "away_team": "Getafe",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Getafe",
              "stats": {
                "minutes": 48,
                "rating": 7.9,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.0383,
                "expected_assists": 0.0132,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 16,
                "accurate_pass": 13,
                "key_pass": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 17122851.0,
              "match_date": "2026-10-21",
              "home_team": "Levante UD",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 90,
                "rating": 8.1,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.9903,
                "expected_assists": 0.1382,
                "total_shots": 5,
                "shots_on_target": 2,
                "shots_off_target": 2,
                "total_pass": 38,
                "accurate_pass": 35,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 1,
                "clearances": 1,
                "aerial_won": 3,
                "duels_won": 11,
                "ball_recovery": 4,
                "saves": 0
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421074.0,
              "match_date": "2026-10-17",
              "home_team": "Valencia",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Valencia",
              "stats": {
                "minutes": 90,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.1765,
                "total_shots": 0,
                "total_pass": 42,
                "accurate_pass": 34,
                "key_pass": 2,
                "tackles": 4,
                "tackles_won": 3,
                "interceptions": 1,
                "duels_won": 7,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416337.0,
              "match_date": "2026-09-19",
              "home_team": "Athletic Club",
              "away_team": "Deportivo Alavés",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 28,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.017,
                "expected_assists": 0.1394,
                "total_shots": 1,
                "total_pass": 20,
                "accurate_pass": 16,
                "key_pass": 2,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416322.0,
              "match_date": "2026-09-12",
              "home_team": "Athletic Club",
              "away_team": "Elche",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Elche",
              "stats": {
                "minutes": 18,
                "rating": 7.5,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_assists": 0.234,
                "total_shots": 0,
                "total_pass": 8,
                "accurate_pass": 7,
                "key_pass": 2,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416317.0,
              "match_date": "2026-09-05",
              "home_team": "Athletic Club",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 24,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0001,
                "total_shots": 0,
                "total_pass": 4,
                "accurate_pass": 4,
                "tackles": 1,
                "interceptions": 2,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416308.0,
              "match_date": "2026-08-30",
              "home_team": "Celta Vigo",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 90,
                "rating": 8.2,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.089,
                "expected_assists": 0.4139,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 37,
                "accurate_pass": 29,
                "key_pass": 4,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 1,
                "aerial_won": 2,
                "duels_won": 4,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421059.0,
              "match_date": "2026-08-27",
              "home_team": "FC Barcelona",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "FC Barcelona",
              "stats": {
                "minutes": 30,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.028,
                "expected_assists": 0.0496,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 9,
                "accurate_pass": 3,
                "key_pass": 2,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416301.0,
              "match_date": "2026-08-22",
              "home_team": "Athletic Club",
              "away_team": "Sevilla",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 90,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.052,
                "expected_assists": 0.1058,
                "total_shots": 2,
                "shots_on_target": 1,
                "total_pass": 49,
                "accurate_pass": 42,
                "key_pass": 2,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 2,
                "duels_won": 5,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083656.0,
              "match_date": "2026-05-17",
              "home_team": "Athletic Club",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 82,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0421,
                "expected_assists": 0.0304,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 29,
                "accurate_pass": 23,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 3,
                "duels_won": 5,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 600,
            "combined_rank_score": 436.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 310.0,
            "sofascore_rating": 7.0333,
            "sofascore_appearances": 3.0,
            "fifa_rank": 563.0,
            "fifa_overall": 81.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 6,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.9417,
            "source_file": "data/player_rankings.csv",
            "player_name": "Álex Berenguer",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Claudio Sepúlveda",
                  "ranking": 595
                },
                {
                  "player_name": "Juan Manuel Requena",
                  "ranking": 596
                },
                {
                  "player_name": "Siavash Haghnazari",
                  "ranking": 597
                },
                {
                  "player_name": "Andreas Pereira",
                  "ranking": 598
                },
                {
                  "player_name": "Pavel Zabelin",
                  "ranking": 599
                }
              ],
              "lower": [
                {
                  "player_name": "Nonato",
                  "ranking": 601
                },
                {
                  "player_name": "Charles De Ketelaere",
                  "ranking": 602
                },
                {
                  "player_name": "Andrej Kramarić",
                  "ranking": 603
                },
                {
                  "player_name": "Daniel Muñoz",
                  "ranking": 604
                },
                {
                  "player_name": "Nemanja Ćalasan",
                  "ranking": 605
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.773,
          "history_matches": 40,
          "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": 40,
            "data_confidence": 0.773,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.9982,
            "fbref_prior_metrics": {
              "squad": "Athletic Club",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 2.0,
              "minutes": 211.0,
              "goals_per90": 0.4347826086956522,
              "assists_per90": 0.0,
              "shots_per90": 2.13,
              "shots_on_target_pct": 40.0,
              "prior_reliability": 0.1533
            },
            "rationale": "XGBoost regressor (F_service) evaluated 40 historical appearances across 7 target models; FBref 2026-2027 prior blended (La Liga, Athletic Club, rel: 0.15, gls/90: 0.4347826086956522, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.1715,
                "goals": 0.246,
                "goal_rate": 0.246,
                "shots_on_target": 0.6258,
                "total_shots": 1.7386,
                "expected_assists": 0.1337,
                "key_pass": 1.5756,
                "rating": 6.9417,
                "minutes": 79.82,
                "total_pass": 31.2022,
                "accurate_pass": 25.1653,
                "duels_won": 4.661,
                "total_long_balls": 2.8141,
                "accurate_long_balls": 1.1568,
                "total_opp_half_passes": 21.922,
                "accurate_opp_half_passes": 17.4013,
                "crosses_total": 6.0153,
                "crosses_accurate": 1.0857,
                "touches": 55.3419,
                "possession_lost": 17.6093,
                "dispossessed": 1.4618,
                "duels_lost": 5.7237,
                "aerial_lost": 1.175,
                "total_contest": 2.5828,
                "won_contest": 0.8833,
                "ball_recovery": 3.9393,
                "challenges_lost": 0.471,
                "fouls": 1.1237,
                "fouls_drawn": 1.1042,
                "assists": 0.1649,
                "assist_rate": 0.1649,
                "interceptions": 0.6168,
                "tackles_won": 1.1896,
                "tackles": 1.3704,
                "clearances": 0.5753,
                "blocks": 0.057,
                "big_chances_created": 0.3075,
                "big_chances_missed": 0.1073,
                "xgot": 0.2639,
                "offsides": 0.0678,
                "ball_carries": 15.3886,
                "total_progression": 67.1316,
                "progressive_carries": 2.9948,
                "shots_off_target": 1.1128
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 6,
                  "trained_at": "2026-11-01T11:27:41.685145+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 612,
                    "rows": 17180
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-25",
                    "opponent": "Getafe",
                    "minutes": 48.0,
                    "is_starting": true,
                    "weight": 0.1502,
                    "rating": 7.9
                  },
                  {
                    "match_date": "2026-10-21",
                    "opponent": "Levante UD",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1277,
                    "rating": 8.1
                  },
                  {
                    "match_date": "2026-10-17",
                    "opponent": "Valencia",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1085,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Deportivo Alavés",
                    "minutes": 28.0,
                    "is_starting": false,
                    "weight": 0.0923,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Elche",
                    "minutes": 18.0,
                    "is_starting": false,
                    "weight": 0.0784,
                    "rating": 7.5
                  },
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Atlético Madrid",
                    "minutes": 24.0,
                    "is_starting": false,
                    "weight": 0.0667,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Celta Vigo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0567,
                    "rating": 8.2
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "FC Barcelona",
                    "minutes": 30.0,
                    "is_starting": false,
                    "weight": 0.0482,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Sevilla",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0409,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-05-17",
                    "opponent": "Celta Vigo",
                    "minutes": 82.0,
                    "is_starting": true,
                    "weight": 0.0348,
                    "rating": 6.5
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 1.0,
                  "accuratePass": 19.8611,
                  "expectedGoals": 0.1724,
                  "accurateOppositionHalfPasses": 13.817,
                  "totalShots": 1.4122,
                  "totalOppositionHalfPasses": 17.1826
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.17154502868652344,
                    "model_output": 0.1715,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2767
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0987
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.036
                      },
                      {
                        "name": "goals",
                        "importance": 0.0336
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0236
                      }
                    ],
                    "decomposition": {
                      "base": 0.1929,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0652
                        },
                        {
                          "name": "goals",
                          "contribution": 0.027
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0267
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.023
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": -0.015
                        }
                      ],
                      "others": -0.0489,
                      "total": 0.1715,
                      "log_link": true,
                      "margin_base": -1.645586,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.291009
                        },
                        {
                          "name": "goals",
                          "margin": 0.099396
                        },
                        {
                          "name": "ballRecovery",
                          "margin": -0.098457
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.093269
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": -0.066059
                        }
                      ],
                      "others_margin": -0.249944
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.24595077335834503,
                    "model_output": 0.246,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1491
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0805
                      },
                      {
                        "name": "goals",
                        "importance": 0.056
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0343
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 0.1972,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0693
                        },
                        {
                          "name": "goals",
                          "contribution": 0.0175
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0124
                        },
                        {
                          "name": "bigChanceMissed",
                          "contribution": -0.0117
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0099
                        }
                      ],
                      "others": -0.004,
                      "total": 0.246,
                      "log_link": true,
                      "margin_base": -1.623746,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.301185
                        },
                        {
                          "name": "goals",
                          "margin": 0.063545
                        },
                        {
                          "name": "ballRecovery",
                          "margin": -0.044553
                        },
                        {
                          "name": "bigChanceMissed",
                          "margin": -0.043991
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.038894
                        }
                      ],
                      "others_margin": -0.016171
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.6257658004760742,
                    "model_output": 0.6258,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2173
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0637
                      },
                      {
                        "name": "goals",
                        "importance": 0.0596
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0393
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 0.5269,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.184
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0662
                        },
                        {
                          "name": "goals",
                          "contribution": 0.0538
                        },
                        {
                          "name": "bigChanceMissed",
                          "contribution": -0.0178
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0133
                        }
                      ],
                      "others": -0.0416,
                      "total": 0.6258,
                      "log_link": true,
                      "margin_base": -0.640773,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.299502
                        },
                        {
                          "name": "ballRecovery",
                          "margin": -0.097784
                        },
                        {
                          "name": "goals",
                          "margin": 0.080193
                        },
                        {
                          "name": "bigChanceMissed",
                          "margin": -0.025851
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.019728
                        }
                      ],
                      "others_margin": -0.064338
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.7385939359664917,
                    "model_output": 1.7386,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.3005
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0627
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0526
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0309
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0307
                      }
                    ],
                    "decomposition": {
                      "base": 1.3756,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.4813
                        },
                        {
                          "name": "goals",
                          "contribution": 0.1
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.069
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.053
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": -0.036
                        }
                      ],
                      "others": -0.0603,
                      "total": 1.7386,
                      "log_link": false,
                      "margin_base": 1.375643,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.481337
                        },
                        {
                          "name": "goals",
                          "margin": 0.100008
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.068957
                        },
                        {
                          "name": "ballRecovery",
                          "margin": -0.052963
                        },
                        {
                          "name": "totalShots_p90",
                          "margin": -0.03602
                        }
                      ],
                      "others_margin": -0.060454
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.1337422877550125,
                    "model_output": 0.1337,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.1287
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1119
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0634
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0522
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.051
                      }
                    ],
                    "decomposition": {
                      "base": 0.065,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0116
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": 0.0132
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0117
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0092
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0044
                        }
                      ],
                      "others": 0.0186,
                      "total": 0.1337,
                      "log_link": true,
                      "margin_base": -2.733324,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.163581
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": 0.15875
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.122726
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.086659
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.038995
                        }
                      ],
                      "others_margin": 0.150773
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 1.5756458044052124,
                    "model_output": 1.5756,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1579
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1341
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0953
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.069
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0295
                      }
                    ],
                    "decomposition": {
                      "base": 0.6917,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1873
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.1058
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": 0.1109
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.1212
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.1049
                        }
                      ],
                      "others": 0.2538,
                      "total": 1.5756,
                      "log_link": true,
                      "margin_base": -0.368585,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.239633
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.113656
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": 0.106664
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.104956
                        },
                        {
                          "name": "keyPass",
                          "margin": 0.082669
                        }
                      ],
                      "others_margin": 0.175673
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.9417290687561035,
                    "model_output": 6.9417,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0495
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.048
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0462
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0455
                      },
                      {
                        "name": "rating",
                        "importance": 0.0455
                      }
                    ],
                    "decomposition": {
                      "base": 6.7733,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0585
                        },
                        {
                          "name": "rating",
                          "contribution": 0.0516
                        },
                        {
                          "name": "big_chance_conversion",
                          "contribution": -0.0257
                        },
                        {
                          "name": "bigChanceMissed",
                          "contribution": -0.0249
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0238
                        }
                      ],
                      "others": 0.0851,
                      "total": 6.9417,
                      "log_link": false,
                      "margin_base": 6.773334,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.058456
                        },
                        {
                          "name": "rating",
                          "margin": 0.051619
                        },
                        {
                          "name": "big_chance_conversion",
                          "margin": -0.025665
                        },
                        {
                          "name": "bigChanceMissed",
                          "margin": -0.024875
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.02378
                        }
                      ],
                      "others_margin": 0.085082
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 40,
                  "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.9982, quality 0.451)",
              "stats": {
                "expected_goals": 0.1712,
                "goals": 0.2455,
                "goal_rate": 0.2455,
                "shots_on_target": 0.6246,
                "total_shots": 1.7355,
                "expected_assists": 0.1335,
                "key_pass": 1.5728,
                "rating": 6.9417,
                "minutes": 79.82,
                "total_pass": 31.146,
                "accurate_pass": 25.12,
                "duels_won": 4.6526,
                "total_long_balls": 2.809,
                "accurate_long_balls": 1.1547,
                "total_opp_half_passes": 21.8825,
                "accurate_opp_half_passes": 17.37,
                "crosses_total": 6.0045,
                "crosses_accurate": 1.0837,
                "touches": 55.2423,
                "possession_lost": 17.5776,
                "dispossessed": 1.4592,
                "duels_lost": 5.7134,
                "aerial_lost": 1.1729,
                "total_contest": 2.5782,
                "won_contest": 0.8817,
                "ball_recovery": 3.9322,
                "challenges_lost": 0.4702,
                "fouls": 1.1217,
                "fouls_drawn": 1.1022,
                "assists": 0.1646,
                "assist_rate": 0.1646,
                "interceptions": 0.6157,
                "tackles_won": 1.1875,
                "tackles": 1.3679,
                "clearances": 0.5743,
                "blocks": 0.0569,
                "big_chances_created": 0.3069,
                "big_chances_missed": 0.1071,
                "xgot": 0.2634,
                "offsides": 0.0677,
                "ball_carries": 15.3609,
                "total_progression": 67.0108,
                "progressive_carries": 2.9894,
                "shots_off_target": 1.1108
              },
              "params": {
                "market_value_eur": 4099999,
                "quality_factor": 0.4511,
                "boost_factor": 0.9982,
                "reference_quality": 0.505,
                "history_matches": 40,
                "history_shrink": 0.1111,
                "market_value_known": true
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0111)",
              "stats": {
                "expected_goals": 0.1712,
                "goals": 0.2471,
                "goal_rate": 0.2471,
                "shots_on_target": 0.626,
                "total_shots": 1.7372,
                "expected_assists": 0.1335,
                "key_pass": 1.5728,
                "rating": 6.9417,
                "minutes": 79.82,
                "total_pass": 31.146,
                "accurate_pass": 25.12,
                "duels_won": 4.6526,
                "total_long_balls": 2.809,
                "accurate_long_balls": 1.1547,
                "total_opp_half_passes": 21.8825,
                "accurate_opp_half_passes": 17.37,
                "crosses_total": 6.0106,
                "crosses_accurate": 1.0837,
                "touches": 55.2423,
                "possession_lost": 17.5776,
                "dispossessed": 1.4592,
                "duels_lost": 5.7134,
                "aerial_lost": 1.1729,
                "total_contest": 2.5782,
                "won_contest": 0.8817,
                "ball_recovery": 3.9322,
                "challenges_lost": 0.4702,
                "fouls": 1.1178,
                "fouls_drawn": 1.0943,
                "assists": 0.1628,
                "assist_rate": 0.1628,
                "interceptions": 0.6174,
                "tackles_won": 1.1872,
                "tackles": 1.3679,
                "clearances": 0.5743,
                "blocks": 0.0569,
                "big_chances_created": 0.3069,
                "big_chances_missed": 0.1071,
                "xgot": 0.2634,
                "offsides": 0.0712,
                "ball_carries": 15.3609,
                "total_progression": 67.0108,
                "progressive_carries": 2.9894,
                "shots_off_target": 1.1108
              },
              "params": {
                "blend_weight": 0.0111,
                "history_matches": 40,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.8869,
                "prior_reliability": 0.1533,
                "competition": "La Liga",
                "squad": "Athletic Club"
              },
              "changes": [
                {
                  "stat": "wasFouled",
                  "before": 1.1022,
                  "after": 1.0943
                },
                {
                  "stat": "totalCross",
                  "before": 6.0045,
                  "after": 6.0106
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.1712,
                "goals": 0.2471,
                "goal_rate": 0.2471,
                "shots_on_target": 0.626,
                "total_shots": 1.7372,
                "expected_assists": 0.1335,
                "key_pass": 1.5728,
                "rating": 6.9417,
                "minutes": 79.82,
                "total_pass": 31.146,
                "accurate_pass": 25.12,
                "duels_won": 4.6526,
                "total_long_balls": 2.809,
                "accurate_long_balls": 1.1547,
                "total_opp_half_passes": 21.8825,
                "accurate_opp_half_passes": 17.37,
                "crosses_total": 6.0106,
                "crosses_accurate": 1.0837,
                "touches": 55.2423,
                "possession_lost": 17.5776,
                "dispossessed": 1.4592,
                "duels_lost": 5.7134,
                "aerial_lost": 1.1729,
                "total_contest": 2.5782,
                "won_contest": 0.8817,
                "ball_recovery": 3.9322,
                "challenges_lost": 0.4702,
                "fouls": 1.1178,
                "fouls_drawn": 1.0943,
                "assists": 0.1628,
                "assist_rate": 0.1628,
                "interceptions": 0.6174,
                "tackles_won": 1.1872,
                "tackles": 1.3679,
                "clearances": 0.5743,
                "blocks": 0.0569,
                "big_chances_created": 0.3069,
                "big_chances_missed": 0.1071,
                "xgot": 0.2634,
                "offsides": 0.0712,
                "ball_carries": 15.3609,
                "total_progression": 67.0108,
                "progressive_carries": 2.9894,
                "shots_off_target": 1.1108
              },
              "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.1248,
                "goals": 0.1801,
                "goal_rate": 0.1801,
                "shots_on_target": 0.4563,
                "total_shots": 1.2662,
                "expected_assists": 0.1335,
                "key_pass": 1.5728,
                "rating": 6.9417,
                "minutes": 79.82,
                "total_pass": 31.146,
                "accurate_pass": 25.12,
                "duels_won": 4.6526,
                "total_long_balls": 2.809,
                "accurate_long_balls": 1.1547,
                "total_opp_half_passes": 21.8825,
                "accurate_opp_half_passes": 17.37,
                "crosses_total": 6.0106,
                "crosses_accurate": 1.0837,
                "touches": 55.2423,
                "possession_lost": 17.5776,
                "dispossessed": 1.4592,
                "duels_lost": 5.7134,
                "aerial_lost": 1.1729,
                "total_contest": 2.5782,
                "won_contest": 0.8817,
                "ball_recovery": 3.9322,
                "challenges_lost": 0.4702,
                "fouls": 1.1178,
                "fouls_drawn": 1.0943,
                "assists": 0.1628,
                "assist_rate": 0.1628,
                "interceptions": 0.6174,
                "tackles_won": 1.1872,
                "tackles": 1.3679,
                "clearances": 0.5743,
                "blocks": 0.0569,
                "big_chances_created": 0.3069,
                "big_chances_missed": 0.0781,
                "xgot": 0.192,
                "offsides": 0.0712,
                "ball_carries": 15.3609,
                "total_progression": 67.0108,
                "progressive_carries": 2.9894,
                "shots_off_target": 0.8097,
                "duel_xg_multiplier": 0.7289,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.4,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Mamadou Sarr, Jon Martin",
                "opponent_faced": "Mamadou Sarr, Jon Martin",
                "antagonist_source": "attacking_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Mamadou Sarr, Jon Martin",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                  "duel_win_rate": 0.18,
                  "pressing_faced": "MEDIUM",
                  "numerical_situation": "1v2",
                  "xg_multiplier": 0.7289,
                  "skill_edge": -0.1264,
                  "height_edge": -0.058,
                  "attacker_skill": 0.4511,
                  "defender_skill": 0.732,
                  "attacker_role": "ST",
                  "attacker_mv_price_index": 1.0,
                  "defender_adjusted_parts": [
                    {
                      "player": "Mamadou Sarr",
                      "market_value": 24000000,
                      "role": "CB",
                      "price_index": 0.75,
                      "adjusted_quality": 0.732
                    },
                    {
                      "player": "Jon Martin",
                      "market_value": 24000000,
                      "role": "CB",
                      "price_index": 0.75,
                      "adjusted_quality": 0.732
                    }
                  ],
                  "xg_override": 0.1248
                }
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 1.7372,
                  "after": 1.2662
                },
                {
                  "stat": "shotOffTarget",
                  "before": 1.1108,
                  "after": 0.8097
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.626,
                  "after": 0.4563
                },
                {
                  "stat": "expectedGoalsOnTarget",
                  "before": 0.2634,
                  "after": 0.192
                },
                {
                  "stat": "goals",
                  "before": 0.2471,
                  "after": 0.1801
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.1712,
                  "after": 0.1248
                },
                {
                  "stat": "bigChanceMissed",
                  "before": 0.1071,
                  "after": 0.0781
                }
              ]
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "expected_goals": 0.1248,
                "goal_rate": 0.1801,
                "goals": 0,
                "shots_on_target": 0.4563,
                "total_shots": 1.2662,
                "expected_assists": 0.1335,
                "key_pass": 1.5728,
                "rating": 6.9417,
                "minutes": 79.82,
                "total_pass": 31.146,
                "accurate_pass": 25.12,
                "duels_won": 4.6526,
                "total_long_balls": 2.809,
                "accurate_long_balls": 1.1547,
                "total_opp_half_passes": 21.8825,
                "accurate_opp_half_passes": 17.37,
                "crosses_total": 6.0106,
                "crosses_accurate": 1.0837,
                "touches": 55.2423,
                "possession_lost": 17.5776,
                "dispossessed": 1.4592,
                "duels_lost": 5.7134,
                "aerial_lost": 1.1729,
                "total_contest": 2.5782,
                "won_contest": 0.8817,
                "ball_recovery": 3.9322,
                "challenges_lost": 0.4702,
                "fouls": 1.1178,
                "fouls_drawn": 1.0943,
                "assist_rate": 0.1628,
                "assists": 0,
                "interceptions": 0.6174,
                "tackles_won": 1.1872,
                "tackles": 1.3679,
                "clearances": 0.5743,
                "blocks": 0.0569,
                "big_chances_created": 0.3069,
                "big_chances_missed": 0.0781,
                "xgot": 0.192,
                "offsides": 0.0712,
                "ball_carries": 15.3609,
                "total_progression": 67.0108,
                "progressive_carries": 2.9894,
                "shots_off_target": 0.8097,
                "duel_xg_multiplier": 0.7289,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.4,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Mamadou Sarr, Jon Martin",
                "opponent_faced": "Mamadou Sarr, Jon Martin",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "scoreline_reset": true,
                "team_goals": 2
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.73 (squad xG sum 1.0016, xG scale 1.7263, xA scale 1.7263, team xA 1.22 = 0.71 x lambda)",
              "stats": {
                "expected_goals": 0.2154,
                "goal_rate": 0.1801,
                "goals": 0,
                "shots_on_target": 0.4563,
                "total_shots": 1.2662,
                "expected_assists": 0.2305,
                "key_pass": 1.5728,
                "rating": 6.9417,
                "minutes": 79.82,
                "total_pass": 31.146,
                "accurate_pass": 25.12,
                "duels_won": 4.6526,
                "total_long_balls": 2.809,
                "accurate_long_balls": 1.1547,
                "total_opp_half_passes": 21.8825,
                "accurate_opp_half_passes": 17.37,
                "crosses_total": 6.0106,
                "crosses_accurate": 1.0837,
                "touches": 55.2423,
                "possession_lost": 17.5776,
                "dispossessed": 1.4592,
                "duels_lost": 5.7134,
                "aerial_lost": 1.1729,
                "total_contest": 2.5782,
                "won_contest": 0.8817,
                "ball_recovery": 3.9322,
                "challenges_lost": 0.4702,
                "fouls": 1.1178,
                "fouls_drawn": 1.0943,
                "assist_rate": 0.1628,
                "assists": 0,
                "interceptions": 0.6174,
                "tackles_won": 1.1872,
                "tackles": 1.3679,
                "clearances": 0.5743,
                "blocks": 0.0569,
                "big_chances_created": 0.3069,
                "big_chances_missed": 0.0781,
                "xgot": 0.3314,
                "offsides": 0.0712,
                "ball_carries": 15.3609,
                "total_progression": 67.0108,
                "progressive_carries": 2.9894,
                "shots_off_target": 0.8097,
                "duel_xg_multiplier": 0.7289,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.4,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Mamadou Sarr, Jon Martin",
                "opponent_faced": "Mamadou Sarr, Jon Martin",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 1.1597
              },
              "params": {
                "team_lambda": 1.729,
                "squad_xg_sum": 1.0016,
                "squad_xa_sum": 0.7085,
                "team_expected_assists": 1.2231,
                "team_xa_to_xg_ratio": 0.7074,
                "bench_appearance_weighted": true,
                "xg_scale": 1.7263,
                "xa_scale": 1.7263,
                "opponent_lambda": 1.255,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.1248,
                  "after": 0.2154
                },
                {
                  "stat": "expected_assists",
                  "before": 0.1335,
                  "after": 0.2305
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 81.0)",
              "stats": {
                "expected_goals": 0.2154,
                "goal_rate": 0.1801,
                "goals": 0,
                "shots_on_target": 0.4563,
                "total_shots": 1.2662,
                "expected_assists": 0.2305,
                "key_pass": 1.5728,
                "rating": 6.9417,
                "minutes": 79.82,
                "total_pass": 31.146,
                "accurate_pass": 25.12,
                "duels_won": 4.6526,
                "total_long_balls": 2.809,
                "accurate_long_balls": 1.1547,
                "total_opp_half_passes": 21.8825,
                "accurate_opp_half_passes": 17.37,
                "crosses_total": 6.0106,
                "crosses_accurate": 1.0837,
                "touches": 55.2423,
                "possession_lost": 17.5776,
                "dispossessed": 1.4592,
                "duels_lost": 5.7134,
                "aerial_lost": 1.1729,
                "total_contest": 2.5782,
                "won_contest": 0.8817,
                "ball_recovery": 3.9322,
                "challenges_lost": 0.4702,
                "fouls": 1.1178,
                "fouls_drawn": 1.0943,
                "assist_rate": 0.1628,
                "assists": 0,
                "interceptions": 0.6174,
                "tackles_won": 1.1872,
                "tackles": 1.3679,
                "clearances": 0.5743,
                "blocks": 0.0569,
                "big_chances_created": 0.3069,
                "big_chances_missed": 0.0781,
                "xgot": 0.3314,
                "offsides": 0.0712,
                "ball_carries": 15.3609,
                "total_progression": 67.0108,
                "progressive_carries": 2.9894,
                "shots_off_target": 0.8097,
                "duel_xg_multiplier": 0.7289,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.4,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Mamadou Sarr, Jon Martin",
                "opponent_faced": "Mamadou Sarr, Jon Martin",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 1.1597,
                "fifa_overall": 81.0
              },
              "params": {
                "match_squad_rank": 6,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 600,
                "fifa_rank": 563.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 81.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "expected_goals": 0.2154,
                "goal_rate": 0.1801,
                "goals": 0,
                "shots_on_target": 0.4563,
                "total_shots": 1.2662,
                "expected_assists": 0.2305,
                "key_pass": 1.5728,
                "rating": 6.9417,
                "minutes": 79.82,
                "total_pass": 31.146,
                "accurate_pass": 25.12,
                "duels_won": 4.6526,
                "total_long_balls": 2.809,
                "accurate_long_balls": 1.1547,
                "total_opp_half_passes": 21.8825,
                "accurate_opp_half_passes": 17.37,
                "crosses_total": 6.0106,
                "crosses_accurate": 1.0837,
                "touches": 55.2423,
                "possession_lost": 17.5776,
                "dispossessed": 1.4592,
                "duels_lost": 5.7134,
                "aerial_lost": 1.1729,
                "total_contest": 2.5782,
                "won_contest": 0.8817,
                "ball_recovery": 3.9322,
                "challenges_lost": 0.4702,
                "fouls": 1.1178,
                "fouls_drawn": 1.0943,
                "assist_rate": 0.1628,
                "assists": 0,
                "interceptions": 0.6174,
                "tackles_won": 1.1872,
                "tackles": 1.3679,
                "clearances": 0.5743,
                "blocks": 0.0569,
                "big_chances_created": 0.3069,
                "big_chances_missed": 0.0781,
                "xgot": 0.3314,
                "offsides": 0.0712,
                "ball_carries": 15.3609,
                "total_progression": 67.0108,
                "progressive_carries": 2.9894,
                "shots_off_target": 0.8097,
                "duel_xg_multiplier": 0.7289,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.4,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Mamadou Sarr, Jon Martin",
                "opponent_faced": "Mamadou Sarr, Jon Martin",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.1938,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 1.1597,
                "fifa_overall": 81.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 2,
                "goals_allocated": 0,
                "goal_probability": 0.1938,
                "goal_rate": 0.1801,
                "scorer_weight": 0.2692,
                "squad_weight_total": 1.9109,
                "weight_share": 0.1409,
                "finishing_factor": 1.25,
                "appearance_weight": 1.0,
                "weight_rank": 3,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Iñaki Williams",
                    "weight": 0.5576,
                    "already": 0,
                    "effective_weight": 0.5576,
                    "runner_up": "Nico Williams",
                    "runner_up_effective_weight": 0.305
                  },
                  {
                    "n": 2,
                    "player": "Nico Williams",
                    "weight": 0.305,
                    "already": 0,
                    "effective_weight": 0.305,
                    "runner_up": "Álex Berenguer",
                    "runner_up_effective_weight": 0.2692
                  }
                ]
              }
            },
            {
              "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.2154,
                "goal_rate": 0.1801,
                "goals": 0,
                "shots_on_target": 0.4563,
                "total_shots": 1.2662,
                "expected_assists": 0.2305,
                "key_pass": 1.5728,
                "rating": 6.9417,
                "minutes": 79.82,
                "total_pass": 31.146,
                "accurate_pass": 25.12,
                "duels_won": 4.6526,
                "total_long_balls": 2.809,
                "accurate_long_balls": 1.1547,
                "total_opp_half_passes": 21.8825,
                "accurate_opp_half_passes": 17.37,
                "crosses_total": 6.0106,
                "crosses_accurate": 1.0837,
                "touches": 55.2423,
                "possession_lost": 17.5776,
                "dispossessed": 1.4592,
                "duels_lost": 5.7134,
                "aerial_lost": 1.1729,
                "total_contest": 2.5782,
                "won_contest": 0.8817,
                "ball_recovery": 3.9322,
                "challenges_lost": 0.4702,
                "fouls": 1.1178,
                "fouls_drawn": 1.0943,
                "assist_rate": 0.1628,
                "assists": 1,
                "interceptions": 0.6174,
                "tackles_won": 1.1872,
                "tackles": 1.3679,
                "clearances": 0.5743,
                "blocks": 0.0569,
                "big_chances_created": 0.3069,
                "big_chances_missed": 0.0781,
                "xgot": 0.3314,
                "offsides": 0.0712,
                "ball_carries": 15.3609,
                "total_progression": 67.0108,
                "progressive_carries": 2.9894,
                "shots_off_target": 0.8097,
                "duel_xg_multiplier": 0.7289,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.4,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Mamadou Sarr, Jon Martin",
                "opponent_faced": "Mamadou Sarr, Jon Martin",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.1938,
                "projected_assists": 1,
                "assist_probability": 0.2059,
                "finishing_factor": 1.25,
                "creation_factor": 1.1597,
                "fifa_overall": 81.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 1,
                "assist_probability": 0.2059,
                "assist_rate": 0.1628,
                "provider_weight": 0.2673,
                "squad_weight_total": 1.1843,
                "weight_share": 0.2257,
                "creation_factor": 1.1597,
                "appearance_weight": 1.0,
                "weight_rank": 1,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Álex Berenguer",
                    "weight": 0.2673,
                    "already": 0,
                    "effective_weight": 0.2673,
                    "runner_up": "Yuri Berchiche",
                    "runner_up_effective_weight": 0.2271
                  }
                ]
              }
            }
          ]
        },
        "Maroan Sannadi": {
          "player_id": 1520799,
          "position": "F",
          "position_depth": "F",
          "is_starter": true,
          "shirt_number": 21,
          "height": 192,
          "market_value": 2800000,
          "stats": {
            "expected_goals": 0.2643,
            "goal_rate": 0.1413,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "expected_assists": 0.0352,
            "key_pass": 0,
            "rating": 6.6488,
            "minutes": 68,
            "total_pass": 10,
            "accurate_pass": 7,
            "duels_won": 3,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 6,
            "accurate_opp_half_passes": 3,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 18,
            "possession_lost": 6.2497,
            "dispossessed": 0.8034,
            "duels_lost": 3,
            "aerial_lost": 0,
            "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": 0,
            "tackles": 0,
            "clearances": 1,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.2691,
            "offsides": 0,
            "ball_carries": 3,
            "total_progression": 0,
            "progressive_carries": 0,
            "shots_off_target": 1,
            "duel_xg_multiplier": 0.8198,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.3,
            "aerial_won": 2,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.18,
            "pressing_faced": "MEDIUM",
            "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "numerical_situation": "1v2",
            "opponent_defenders": "Mamadou Sarr, Jon Martin",
            "opponent_faced": "Mamadou Sarr, Jon Martin",
            "antagonist_source": "attacking_duel",
            "projected_goals": 0,
            "goal_probability": 0.2323,
            "projected_assists": 0,
            "assist_probability": 0.0346,
            "finishing_factor": 0.9419,
            "creation_factor": 0.8,
            "fifa_overall": 77.0
          },
          "latest_10_games": [
            {
              "match_id": 16421081.0,
              "match_date": "2026-10-25",
              "home_team": "Athletic Club",
              "away_team": "Getafe",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Getafe",
              "stats": {
                "minutes": 48,
                "rating": 6.4,
                "expected_assists": 0.0002,
                "total_shots": 0,
                "total_pass": 9,
                "accurate_pass": 6,
                "aerial_won": 2,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 17122851.0,
              "match_date": "2026-10-21",
              "home_team": "Levante UD",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.244,
                "expected_assists": 0.0002,
                "total_shots": 3,
                "shots_on_target": 0,
                "shots_off_target": 2,
                "total_pass": 9,
                "accurate_pass": 5,
                "tackles": 0,
                "tackles_won": 0,
                "interceptions": 0,
                "clearances": 1,
                "aerial_won": 2,
                "duels_won": 6,
                "ball_recovery": 0,
                "saves": 0
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421074.0,
              "match_date": "2026-10-17",
              "home_team": "Valencia",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Valencia",
              "stats": {
                "minutes": 22,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0033,
                "total_shots": 0,
                "total_pass": 3,
                "accurate_pass": 3,
                "duels_won": 4,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416337.0,
              "match_date": "2026-09-19",
              "home_team": "Athletic Club",
              "away_team": "Deportivo Alavés",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 28,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0026,
                "total_shots": 0,
                "total_pass": 3,
                "accurate_pass": 2,
                "clearances": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416322.0,
              "match_date": "2026-09-12",
              "home_team": "Athletic Club",
              "away_team": "Elche",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Elche",
              "stats": {
                "minutes": 9,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.2984,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 1,
                "aerial_won": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416301.0,
              "match_date": "2026-08-22",
              "home_team": "Athletic Club",
              "away_team": "Sevilla",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 32,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0113,
                "total_shots": 0,
                "total_pass": 6,
                "accurate_pass": 4,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083656.0,
              "match_date": "2026-05-17",
              "home_team": "Athletic Club",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 8,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0043,
                "total_shots": 0,
                "total_pass": 4,
                "accurate_pass": 3,
                "key_pass": 1,
                "aerial_won": 2,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14081813.0,
              "match_date": "2026-04-05",
              "home_team": "Getafe",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Getafe",
              "stats": {
                "minutes": 19,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0729,
                "expected_assists": 0.003,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 2,
                "accurate_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083704.0,
              "match_date": "2025-10-25",
              "home_team": "Athletic Club",
              "away_team": "Getafe",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Getafe",
              "stats": {
                "minutes": 31,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0173,
                "expected_assists": 0.0099,
                "total_shots": 1,
                "total_pass": 5,
                "accurate_pass": 4,
                "aerial_won": 3,
                "duels_won": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083610.0,
              "match_date": "2025-10-04",
              "home_team": "Athletic Club",
              "away_team": "Mallorca",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Mallorca",
              "stats": {
                "minutes": 28,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0448,
                "expected_assists": 0.0027,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 5,
                "accurate_pass": 3,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 2642,
            "combined_rank_score": 1225.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 927.0,
            "sofascore_rating": 6.48,
            "sofascore_appearances": 10.0,
            "fifa_rank": 1523.0,
            "fifa_overall": 77.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 17,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.6488,
            "source_file": "data/player_rankings.csv",
            "player_name": "Maroan Sannadi",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "William Pizzi",
                  "ranking": 2637
                },
                {
                  "player_name": "Shohruz Norkhonov",
                  "ranking": 2638
                },
                {
                  "player_name": "Zafar Akromov",
                  "ranking": 2639
                },
                {
                  "player_name": "Danilho Doekhi",
                  "ranking": 2640
                },
                {
                  "player_name": "Randal Kolo Muani",
                  "ranking": 2641
                }
              ],
              "lower": [
                {
                  "player_name": "Marcelo Suárez",
                  "ranking": 2643
                },
                {
                  "player_name": "Jhonier Guerrero",
                  "ranking": 2644
                },
                {
                  "player_name": "Kevin Serna",
                  "ranking": 2645
                },
                {
                  "player_name": "Abdulazizkhon Abdurashidov",
                  "ranking": 2646
                },
                {
                  "player_name": "Pau López",
                  "ranking": 2647
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.754,
          "history_matches": 16,
          "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": 16,
            "data_confidence": 0.754,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.9952,
            "fbref_prior_metrics": {
              "squad": "Athletic Club",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 1.0,
              "starts": 0.0,
              "minutes": 33.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.0,
              "prior_reliability": 0.0267
            },
            "rationale": "XGBoost regressor (F_service) evaluated 16 historical appearances across 7 target models; FBref 2026-2027 prior blended (La Liga, Athletic Club, rel: 0.03, 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.1877,
                "goals": 0.1738,
                "goal_rate": 0.1738,
                "shots_on_target": 0.4805,
                "total_shots": 1.6987,
                "expected_assists": 0.0205,
                "key_pass": 0.4879,
                "rating": 6.6488,
                "minutes": 68.12,
                "total_pass": 10.315,
                "accurate_pass": 7.275,
                "duels_won": 2.9082,
                "total_long_balls": 0.1927,
                "accurate_long_balls": 0.1927,
                "total_opp_half_passes": 5.8425,
                "accurate_opp_half_passes": 3.4487,
                "crosses_total": 0.1927,
                "crosses_accurate": 0.0,
                "touches": 18.4476,
                "possession_lost": 6.2798,
                "dispossessed": 0.8073,
                "duels_lost": 3.0716,
                "aerial_lost": 0.3854,
                "total_contest": 0.6862,
                "won_contest": 0.2667,
                "ball_recovery": 0.7333,
                "challenges_lost": 0.7333,
                "fouls": 0.9529,
                "fouls_drawn": 0.8002,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.0,
                "clearances": 0.7202,
                "blocks": 0.0,
                "big_chances_created": 0.1927,
                "big_chances_missed": 0.0,
                "xgot": 0.1911,
                "offsides": 0.0,
                "ball_carries": 3.4595,
                "total_progression": 0.0,
                "progressive_carries": 0.0,
                "shots_off_target": 1.2181
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 6,
                  "trained_at": "2026-11-01T11:27:41.685145+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 612,
                    "rows": 17180
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-25",
                    "opponent": "Getafe",
                    "minutes": 48.0,
                    "is_starting": true,
                    "weight": 0.162,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-10-21",
                    "opponent": "Levante UD",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1377,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-10-17",
                    "opponent": "Valencia",
                    "minutes": 22.0,
                    "is_starting": false,
                    "weight": 0.1171,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Deportivo Alavés",
                    "minutes": 28.0,
                    "is_starting": false,
                    "weight": 0.0995,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Elche",
                    "minutes": 9.0,
                    "is_starting": false,
                    "weight": 0.0846,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Sevilla",
                    "minutes": 32.0,
                    "is_starting": false,
                    "weight": 0.0719,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-05-17",
                    "opponent": "Celta Vigo",
                    "minutes": 8.0,
                    "is_starting": false,
                    "weight": 0.0611,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-04-05",
                    "opponent": "Getafe",
                    "minutes": 19.0,
                    "is_starting": false,
                    "weight": 0.0519,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2025-10-25",
                    "opponent": "Getafe",
                    "minutes": 31.0,
                    "is_starting": false,
                    "weight": 0.0442,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2025-10-04",
                    "opponent": "Mallorca",
                    "minutes": 28.0,
                    "is_starting": false,
                    "weight": 0.0375,
                    "rating": 6.8
                  }
                ],
                "feature_row": {
                  "history_matches": 16.0,
                  "is_starting_11": 1.0,
                  "accuratePass": 3.8206,
                  "expectedGoals": 0.079,
                  "accurateOppositionHalfPasses": 2.0285,
                  "totalShots": 0.7972,
                  "totalOppositionHalfPasses": 3.6158
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.18773266673088074,
                    "model_output": 0.1877,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2767
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0987
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.036
                      },
                      {
                        "name": "goals",
                        "importance": 0.0336
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0236
                      }
                    ],
                    "decomposition": {
                      "base": 0.1929,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0623
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0336
                        },
                        {
                          "name": "goals",
                          "contribution": -0.0217
                        },
                        {
                          "name": "aerialWon",
                          "contribution": 0.0126
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": -0.0121
                        }
                      ],
                      "others": -0.0127,
                      "total": 0.1877,
                      "log_link": true,
                      "margin_base": -1.645586,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.279969
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.141353
                        },
                        {
                          "name": "goals",
                          "margin": -0.103077
                        },
                        {
                          "name": "aerialWon",
                          "margin": 0.060932
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": -0.058581
                        }
                      ],
                      "others_margin": -0.065041
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.1738206446170807,
                    "model_output": 0.1738,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1491
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0805
                      },
                      {
                        "name": "goals",
                        "importance": 0.056
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0343
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 0.1972,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0587
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.032
                        },
                        {
                          "name": "goals",
                          "contribution": -0.0219
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": 0.01
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0097
                        }
                      ],
                      "others": -0.0285,
                      "total": 0.1738,
                      "log_link": true,
                      "margin_base": -1.623746,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.260457
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.133519
                        },
                        {
                          "name": "goals",
                          "margin": -0.103104
                        },
                        {
                          "name": "ballRecovery",
                          "margin": 0.0483
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.046932
                        }
                      ],
                      "others_margin": -0.151187
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.48052531480789185,
                    "model_output": 0.4805,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2173
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0637
                      },
                      {
                        "name": "goals",
                        "importance": 0.0596
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0393
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 0.5269,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1598
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0595
                        },
                        {
                          "name": "goals",
                          "contribution": -0.0492
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0309
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": 0.0306
                        }
                      ],
                      "others": -0.0972,
                      "total": 0.4805,
                      "log_link": true,
                      "margin_base": -0.640773,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.264902
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.090557
                        },
                        {
                          "name": "goals",
                          "margin": -0.081681
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.054907
                        },
                        {
                          "name": "ballRecovery",
                          "margin": 0.054489
                        }
                      ],
                      "others_margin": -0.184349
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.6986535787582397,
                    "model_output": 1.6987,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.3005
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0627
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0526
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0309
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0307
                      }
                    ],
                    "decomposition": {
                      "base": 1.3756,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.4674
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.1512
                        },
                        {
                          "name": "goals",
                          "contribution": -0.097
                        },
                        {
                          "name": "aerialWon",
                          "contribution": 0.0419
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": 0.0363
                        }
                      ],
                      "others": 0.0257,
                      "total": 1.6987,
                      "log_link": false,
                      "margin_base": 1.375643,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.467353
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.15119
                        },
                        {
                          "name": "goals",
                          "margin": -0.096994
                        },
                        {
                          "name": "aerialWon",
                          "margin": 0.041904
                        },
                        {
                          "name": "duelWon_p90",
                          "margin": 0.036252
                        }
                      ],
                      "others_margin": 0.025685
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.020474495366215706,
                    "model_output": 0.0205,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.1287
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1119
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0634
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0522
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.051
                      }
                    ],
                    "decomposition": {
                      "base": 0.065,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": -0.02
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0122
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.0083
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0043
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.0039
                        }
                      ],
                      "others": -0.0202,
                      "total": 0.0205,
                      "log_link": true,
                      "margin_base": -2.733324,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": -0.366989
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.238919
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.157491
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.092594
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.092583
                        }
                      ],
                      "others_margin": -0.684513
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.487883597612381,
                    "model_output": 0.4879,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1579
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1341
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0953
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.069
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0295
                      }
                    ],
                    "decomposition": {
                      "base": 0.6917,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.2182
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.0875
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.065
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0582
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0402
                        }
                      ],
                      "others": -0.1711,
                      "total": 0.4879,
                      "log_link": true,
                      "margin_base": -0.368585,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.274208
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.101073
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.082341
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.079986
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.059184
                        }
                      ],
                      "others_margin": -0.300718
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.648811340332031,
                    "model_output": 6.6488,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0495
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.048
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0462
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0455
                      },
                      {
                        "name": "rating",
                        "importance": 0.0455
                      }
                    ],
                    "decomposition": {
                      "base": 6.7733,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0421
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0372
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0176
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": -0.015
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0137
                        }
                      ],
                      "others": -0.0831,
                      "total": 6.6488,
                      "log_link": false,
                      "margin_base": 6.773334,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.042142
                        },
                        {
                          "name": "rating",
                          "margin": -0.037227
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.017561
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": -0.015047
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.01366
                        }
                      ],
                      "others_margin": -0.083171
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 16,
                  "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.9952, quality 0.437)",
              "stats": {
                "expected_goals": 0.1868,
                "goals": 0.173,
                "goal_rate": 0.173,
                "shots_on_target": 0.4782,
                "total_shots": 1.6905,
                "expected_assists": 0.0204,
                "key_pass": 0.4855,
                "rating": 6.6488,
                "minutes": 68.12,
                "total_pass": 10.2655,
                "accurate_pass": 7.2401,
                "duels_won": 2.8942,
                "total_long_balls": 0.1918,
                "accurate_long_balls": 0.1918,
                "total_opp_half_passes": 5.8145,
                "accurate_opp_half_passes": 3.4321,
                "crosses_total": 0.1918,
                "crosses_accurate": 0.0,
                "touches": 18.3591,
                "possession_lost": 6.2497,
                "dispossessed": 0.8034,
                "duels_lost": 3.0569,
                "aerial_lost": 0.3836,
                "total_contest": 0.6829,
                "won_contest": 0.2654,
                "ball_recovery": 0.7298,
                "challenges_lost": 0.7298,
                "fouls": 0.9483,
                "fouls_drawn": 0.7964,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.0,
                "clearances": 0.7167,
                "blocks": 0.0,
                "big_chances_created": 0.1918,
                "big_chances_missed": 0.0,
                "xgot": 0.1902,
                "offsides": 0.0,
                "ball_carries": 3.4429,
                "total_progression": 0.0,
                "progressive_carries": 0.0,
                "shots_off_target": 1.2123
              },
              "params": {
                "market_value_eur": 2800000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9952,
                "reference_quality": 0.505,
                "history_matches": 16,
                "history_shrink": 0.2381,
                "market_value_known": true
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0041)",
              "stats": {
                "expected_goals": 0.1868,
                "goals": 0.1723,
                "goal_rate": 0.1723,
                "shots_on_target": 0.4762,
                "total_shots": 1.6835,
                "expected_assists": 0.0204,
                "key_pass": 0.4855,
                "rating": 6.6488,
                "minutes": 68.12,
                "total_pass": 10.2655,
                "accurate_pass": 7.2401,
                "duels_won": 2.8942,
                "total_long_balls": 0.1918,
                "accurate_long_balls": 0.1918,
                "total_opp_half_passes": 5.8145,
                "accurate_opp_half_passes": 3.4321,
                "crosses_total": 0.191,
                "crosses_accurate": 0.0,
                "touches": 18.3591,
                "possession_lost": 6.2497,
                "dispossessed": 0.8034,
                "duels_lost": 3.0569,
                "aerial_lost": 0.3836,
                "total_contest": 0.6829,
                "won_contest": 0.2654,
                "ball_recovery": 0.7298,
                "challenges_lost": 0.7298,
                "fouls": 0.9444,
                "fouls_drawn": 0.8009,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.0,
                "clearances": 0.7167,
                "blocks": 0.0,
                "big_chances_created": 0.1918,
                "big_chances_missed": 0.0,
                "xgot": 0.1902,
                "offsides": 0.0,
                "ball_carries": 3.4429,
                "total_progression": 0.0,
                "progressive_carries": 0.0,
                "shots_off_target": 1.2123
              },
              "params": {
                "blend_weight": 0.0041,
                "history_matches": 16,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.7569,
                "prior_reliability": 0.0267,
                "competition": "La Liga",
                "squad": "Athletic Club"
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 1.6905,
                  "after": 1.6835
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.1868,
                "goals": 0.1723,
                "goal_rate": 0.1723,
                "shots_on_target": 0.4762,
                "total_shots": 1.6885,
                "expected_assists": 0.0204,
                "key_pass": 0.4855,
                "rating": 6.6488,
                "minutes": 68.12,
                "total_pass": 10.2655,
                "accurate_pass": 7.2401,
                "duels_won": 2.8942,
                "total_long_balls": 0.1918,
                "accurate_long_balls": 0.1918,
                "total_opp_half_passes": 5.8145,
                "accurate_opp_half_passes": 3.4321,
                "crosses_total": 0.191,
                "crosses_accurate": 0.0,
                "touches": 18.3591,
                "possession_lost": 6.2497,
                "dispossessed": 0.8034,
                "duels_lost": 3.0569,
                "aerial_lost": 0.3836,
                "total_contest": 0.6829,
                "won_contest": 0.2654,
                "ball_recovery": 0.7298,
                "challenges_lost": 0.7298,
                "fouls": 0.9444,
                "fouls_drawn": 0.8009,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.0,
                "clearances": 0.7167,
                "blocks": 0.0,
                "big_chances_created": 0.1918,
                "big_chances_missed": 0.0,
                "xgot": 0.1902,
                "offsides": 0.0,
                "ball_carries": 3.4429,
                "total_progression": 0.0,
                "progressive_carries": 0.0,
                "shots_off_target": 1.2123
              },
              "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.1531,
                "goals": 0.1413,
                "goal_rate": 0.1413,
                "shots_on_target": 0.3904,
                "total_shots": 1.3842,
                "expected_assists": 0.0204,
                "key_pass": 0.4855,
                "rating": 6.6488,
                "minutes": 68.12,
                "total_pass": 10.2655,
                "accurate_pass": 7.2401,
                "duels_won": 2.8942,
                "total_long_balls": 0.1918,
                "accurate_long_balls": 0.1918,
                "total_opp_half_passes": 5.8145,
                "accurate_opp_half_passes": 3.4321,
                "crosses_total": 0.191,
                "crosses_accurate": 0.0,
                "touches": 18.3591,
                "possession_lost": 6.2497,
                "dispossessed": 0.8034,
                "duels_lost": 3.0569,
                "aerial_lost": 0.3836,
                "total_contest": 0.6829,
                "won_contest": 0.2654,
                "ball_recovery": 0.7298,
                "challenges_lost": 0.7298,
                "fouls": 0.9444,
                "fouls_drawn": 0.8009,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.0,
                "clearances": 0.7167,
                "blocks": 0.0,
                "big_chances_created": 0.1918,
                "big_chances_missed": 0.0,
                "xgot": 0.1559,
                "offsides": 0.0,
                "ball_carries": 3.4429,
                "total_progression": 0.0,
                "progressive_carries": 0.0,
                "shots_off_target": 0.9938,
                "duel_xg_multiplier": 0.8198,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 2.0,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Mamadou Sarr, Jon Martin",
                "opponent_faced": "Mamadou Sarr, Jon Martin",
                "antagonist_source": "attacking_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Mamadou Sarr, Jon Martin",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                  "duel_win_rate": 0.18,
                  "pressing_faced": "MEDIUM",
                  "numerical_situation": "1v2",
                  "xg_multiplier": 0.8198,
                  "skill_edge": -0.1326,
                  "height_edge": 0.01,
                  "attacker_skill": 0.4374,
                  "defender_skill": 0.732,
                  "attacker_role": "ST",
                  "attacker_mv_price_index": 1.0,
                  "defender_adjusted_parts": [
                    {
                      "player": "Mamadou Sarr",
                      "market_value": 24000000,
                      "role": "CB",
                      "price_index": 0.75,
                      "adjusted_quality": 0.732
                    },
                    {
                      "player": "Jon Martin",
                      "market_value": 24000000,
                      "role": "CB",
                      "price_index": 0.75,
                      "adjusted_quality": 0.732
                    }
                  ],
                  "xg_override": 0.1531
                }
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 1.6885,
                  "after": 1.3842
                },
                {
                  "stat": "shotOffTarget",
                  "before": 1.2123,
                  "after": 0.9938
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.4762,
                  "after": 0.3904
                },
                {
                  "stat": "expectedGoalsOnTarget",
                  "before": 0.1902,
                  "after": 0.1559
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.1868,
                  "after": 0.1531
                },
                {
                  "stat": "goals",
                  "before": 0.1723,
                  "after": 0.1413
                }
              ]
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "expected_goals": 0.1531,
                "goal_rate": 0.1413,
                "goals": 0,
                "shots_on_target": 0.3904,
                "total_shots": 1.3842,
                "expected_assists": 0.0204,
                "key_pass": 0.4855,
                "rating": 6.6488,
                "minutes": 68.12,
                "total_pass": 10.2655,
                "accurate_pass": 7.2401,
                "duels_won": 2.8942,
                "total_long_balls": 0.1918,
                "accurate_long_balls": 0.1918,
                "total_opp_half_passes": 5.8145,
                "accurate_opp_half_passes": 3.4321,
                "crosses_total": 0.191,
                "crosses_accurate": 0.0,
                "touches": 18.3591,
                "possession_lost": 6.2497,
                "dispossessed": 0.8034,
                "duels_lost": 3.0569,
                "aerial_lost": 0.3836,
                "total_contest": 0.6829,
                "won_contest": 0.2654,
                "ball_recovery": 0.7298,
                "challenges_lost": 0.7298,
                "fouls": 0.9444,
                "fouls_drawn": 0.8009,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.0,
                "clearances": 0.7167,
                "blocks": 0.0,
                "big_chances_created": 0.1918,
                "big_chances_missed": 0.0,
                "xgot": 0.1559,
                "offsides": 0.0,
                "ball_carries": 3.4429,
                "total_progression": 0.0,
                "progressive_carries": 0.0,
                "shots_off_target": 0.9938,
                "duel_xg_multiplier": 0.8198,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 2.0,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Mamadou Sarr, Jon Martin",
                "opponent_faced": "Mamadou Sarr, Jon Martin",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "scoreline_reset": true,
                "team_goals": 2
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.73 (squad xG sum 1.0016, xG scale 1.7263, xA scale 1.7263, team xA 1.22 = 0.71 x lambda)",
              "stats": {
                "expected_goals": 0.2643,
                "goal_rate": 0.1413,
                "goals": 0,
                "shots_on_target": 0.3904,
                "total_shots": 1.3842,
                "expected_assists": 0.0352,
                "key_pass": 0.4855,
                "rating": 6.6488,
                "minutes": 68.12,
                "total_pass": 10.2655,
                "accurate_pass": 7.2401,
                "duels_won": 2.8942,
                "total_long_balls": 0.1918,
                "accurate_long_balls": 0.1918,
                "total_opp_half_passes": 5.8145,
                "accurate_opp_half_passes": 3.4321,
                "crosses_total": 0.191,
                "crosses_accurate": 0.0,
                "touches": 18.3591,
                "possession_lost": 6.2497,
                "dispossessed": 0.8034,
                "duels_lost": 3.0569,
                "aerial_lost": 0.3836,
                "total_contest": 0.6829,
                "won_contest": 0.2654,
                "ball_recovery": 0.7298,
                "challenges_lost": 0.7298,
                "fouls": 0.9444,
                "fouls_drawn": 0.8009,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.0,
                "clearances": 0.7167,
                "blocks": 0.0,
                "big_chances_created": 0.1918,
                "big_chances_missed": 0.0,
                "xgot": 0.2691,
                "offsides": 0.0,
                "ball_carries": 3.4429,
                "total_progression": 0.0,
                "progressive_carries": 0.0,
                "shots_off_target": 0.9938,
                "duel_xg_multiplier": 0.8198,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 2.0,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Mamadou Sarr, Jon Martin",
                "opponent_faced": "Mamadou Sarr, Jon Martin",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.9419,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 1.729,
                "squad_xg_sum": 1.0016,
                "squad_xa_sum": 0.7085,
                "team_expected_assists": 1.2231,
                "team_xa_to_xg_ratio": 0.7074,
                "bench_appearance_weighted": true,
                "xg_scale": 1.7263,
                "xa_scale": 1.7263,
                "opponent_lambda": 1.255,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.1531,
                  "after": 0.2643
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0204,
                  "after": 0.0352
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 17 by projected rating, fifa_overall 77.0)",
              "stats": {
                "expected_goals": 0.2643,
                "goal_rate": 0.1413,
                "goals": 0,
                "shots_on_target": 0.3904,
                "total_shots": 1.3842,
                "expected_assists": 0.0352,
                "key_pass": 0.4855,
                "rating": 6.6488,
                "minutes": 68.12,
                "total_pass": 10.2655,
                "accurate_pass": 7.2401,
                "duels_won": 2.8942,
                "total_long_balls": 0.1918,
                "accurate_long_balls": 0.1918,
                "total_opp_half_passes": 5.8145,
                "accurate_opp_half_passes": 3.4321,
                "crosses_total": 0.191,
                "crosses_accurate": 0.0,
                "touches": 18.3591,
                "possession_lost": 6.2497,
                "dispossessed": 0.8034,
                "duels_lost": 3.0569,
                "aerial_lost": 0.3836,
                "total_contest": 0.6829,
                "won_contest": 0.2654,
                "ball_recovery": 0.7298,
                "challenges_lost": 0.7298,
                "fouls": 0.9444,
                "fouls_drawn": 0.8009,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.0,
                "clearances": 0.7167,
                "blocks": 0.0,
                "big_chances_created": 0.1918,
                "big_chances_missed": 0.0,
                "xgot": 0.2691,
                "offsides": 0.0,
                "ball_carries": 3.4429,
                "total_progression": 0.0,
                "progressive_carries": 0.0,
                "shots_off_target": 0.9938,
                "duel_xg_multiplier": 0.8198,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 2.0,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Mamadou Sarr, Jon Martin",
                "opponent_faced": "Mamadou Sarr, Jon Martin",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.9419,
                "creation_factor": 0.8,
                "fifa_overall": 77.0
              },
              "params": {
                "match_squad_rank": 17,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 2642,
                "fifa_rank": 1523.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 77.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "expected_goals": 0.2643,
                "goal_rate": 0.1413,
                "goals": 0,
                "shots_on_target": 0.3904,
                "total_shots": 1.3842,
                "expected_assists": 0.0352,
                "key_pass": 0.4855,
                "rating": 6.6488,
                "minutes": 68.12,
                "total_pass": 10.2655,
                "accurate_pass": 7.2401,
                "duels_won": 2.8942,
                "total_long_balls": 0.1918,
                "accurate_long_balls": 0.1918,
                "total_opp_half_passes": 5.8145,
                "accurate_opp_half_passes": 3.4321,
                "crosses_total": 0.191,
                "crosses_accurate": 0.0,
                "touches": 18.3591,
                "possession_lost": 6.2497,
                "dispossessed": 0.8034,
                "duels_lost": 3.0569,
                "aerial_lost": 0.3836,
                "total_contest": 0.6829,
                "won_contest": 0.2654,
                "ball_recovery": 0.7298,
                "challenges_lost": 0.7298,
                "fouls": 0.9444,
                "fouls_drawn": 0.8009,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.0,
                "clearances": 0.7167,
                "blocks": 0.0,
                "big_chances_created": 0.1918,
                "big_chances_missed": 0.0,
                "xgot": 0.2691,
                "offsides": 0.0,
                "ball_carries": 3.4429,
                "total_progression": 0.0,
                "progressive_carries": 0.0,
                "shots_off_target": 0.9938,
                "duel_xg_multiplier": 0.8198,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 2.0,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Mamadou Sarr, Jon Martin",
                "opponent_faced": "Mamadou Sarr, Jon Martin",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.2323,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.9419,
                "creation_factor": 0.8,
                "fifa_overall": 77.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 2,
                "goals_allocated": 0,
                "goal_probability": 0.2323,
                "goal_rate": 0.1413,
                "scorer_weight": 0.2489,
                "squad_weight_total": 1.9109,
                "weight_share": 0.1303,
                "finishing_factor": 0.9419,
                "appearance_weight": 1.0,
                "weight_rank": 4,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Iñaki Williams",
                    "weight": 0.5576,
                    "already": 0,
                    "effective_weight": 0.5576,
                    "runner_up": "Nico Williams",
                    "runner_up_effective_weight": 0.305
                  },
                  {
                    "n": 2,
                    "player": "Nico Williams",
                    "weight": 0.305,
                    "already": 0,
                    "effective_weight": 0.305,
                    "runner_up": "Álex Berenguer",
                    "runner_up_effective_weight": 0.2692
                  }
                ]
              }
            },
            {
              "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.2643,
                "goal_rate": 0.1413,
                "goals": 0,
                "shots_on_target": 0.3904,
                "total_shots": 1.3842,
                "expected_assists": 0.0352,
                "key_pass": 0.4855,
                "rating": 6.6488,
                "minutes": 68.12,
                "total_pass": 10.2655,
                "accurate_pass": 7.2401,
                "duels_won": 2.8942,
                "total_long_balls": 0.1918,
                "accurate_long_balls": 0.1918,
                "total_opp_half_passes": 5.8145,
                "accurate_opp_half_passes": 3.4321,
                "crosses_total": 0.191,
                "crosses_accurate": 0.0,
                "touches": 18.3591,
                "possession_lost": 6.2497,
                "dispossessed": 0.8034,
                "duels_lost": 3.0569,
                "aerial_lost": 0.3836,
                "total_contest": 0.6829,
                "won_contest": 0.2654,
                "ball_recovery": 0.7298,
                "challenges_lost": 0.7298,
                "fouls": 0.9444,
                "fouls_drawn": 0.8009,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0,
                "tackles_won": 0.0,
                "tackles": 0.0,
                "clearances": 0.7167,
                "blocks": 0.0,
                "big_chances_created": 0.1918,
                "big_chances_missed": 0.0,
                "xgot": 0.2691,
                "offsides": 0.0,
                "ball_carries": 3.4429,
                "total_progression": 0.0,
                "progressive_carries": 0.0,
                "shots_off_target": 0.9938,
                "duel_xg_multiplier": 0.8198,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 2.0,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Mamadou Sarr, Jon Martin",
                "opponent_faced": "Mamadou Sarr, Jon Martin",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.2323,
                "projected_assists": 0,
                "assist_probability": 0.0346,
                "finishing_factor": 0.9419,
                "creation_factor": 0.8,
                "fifa_overall": 77.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0346,
                "assist_rate": 0.0,
                "provider_weight": 0.0282,
                "squad_weight_total": 1.1843,
                "weight_share": 0.0238,
                "creation_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 10,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Álex Berenguer",
                    "weight": 0.2673,
                    "already": 0,
                    "effective_weight": 0.2673,
                    "runner_up": "Yuri Berchiche",
                    "runner_up_effective_weight": 0.2271
                  }
                ]
              }
            }
          ]
        },
        "Nico Williams": {
          "player_id": 1085400,
          "position": "F",
          "position_depth": "F",
          "is_starter": true,
          "shirt_number": 10,
          "height": 180,
          "market_value": 44000000,
          "stats": {
            "expected_goals": 0.2707,
            "goal_rate": 0.183,
            "goals": 1,
            "shots_on_target": 1,
            "total_shots": 2,
            "expected_assists": 0.1875,
            "key_pass": 1,
            "rating": 7.0014,
            "minutes": 71,
            "total_pass": 26,
            "accurate_pass": 19,
            "duels_won": 4,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 20,
            "accurate_opp_half_passes": 14,
            "crosses_total": 4,
            "crosses_accurate": 1,
            "touches": 47,
            "possession_lost": 16.4346,
            "dispossessed": 0.7892,
            "duels_lost": 6,
            "aerial_lost": 0,
            "total_contest": 5,
            "won_contest": 2,
            "ball_recovery": 4,
            "challenges_lost": 1,
            "fouls": 1,
            "fouls_drawn": 1,
            "assist_rate": 0.0723,
            "assists": 0,
            "interceptions": 0,
            "tackles_won": 1,
            "tackles": 1,
            "clearances": 1,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.2634,
            "offsides": 0,
            "ball_carries": 18,
            "total_progression": 111,
            "progressive_carries": 5,
            "shots_off_target": 1,
            "duel_xg_multiplier": 0.9893,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.3,
            "aerial_won": 2,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.193,
            "pressing_faced": "MEDIUM",
            "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "numerical_situation": "1v2",
            "opponent_defenders": "Mamadou Sarr, Jon Martin",
            "opponent_faced": "Mamadou Sarr, Jon Martin",
            "antagonist_source": "attacking_duel",
            "projected_goals": 1,
            "goal_probability": 0.2372,
            "projected_assists": 0,
            "assist_probability": 0.171,
            "finishing_factor": 1.1267,
            "creation_factor": 0.8,
            "fifa_overall": 84.0
          },
          "latest_10_games": [
            {
              "match_id": 16421081.0,
              "match_date": "2026-10-25",
              "home_team": "Athletic Club",
              "away_team": "Getafe",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Getafe",
              "stats": {
                "minutes": 48,
                "rating": 6.7,
                "expected_goals": 0.1054,
                "expected_assists": 0.0036,
                "total_shots": 2,
                "shots_off_target": 1,
                "total_pass": 23,
                "accurate_pass": 14,
                "tackles": 1,
                "tackles_won": 1,
                "aerial_won": 1,
                "duels_won": 5,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 17122851.0,
              "match_date": "2026-10-21",
              "home_team": "Levante UD",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 9,
                "rating": 6.9,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0649,
                "expected_assists": 0.2619,
                "total_shots": 1,
                "shots_on_target": 0,
                "shots_off_target": 1,
                "total_pass": 5,
                "accurate_pass": 3,
                "key_pass": 1,
                "tackles": 0,
                "tackles_won": 0,
                "interceptions": 0,
                "clearances": 0,
                "aerial_won": 0,
                "duels_won": 2,
                "ball_recovery": 1,
                "saves": 0
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416337.0,
              "match_date": "2026-09-19",
              "home_team": "Athletic Club",
              "away_team": "Deportivo Alavés",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 90,
                "rating": 7.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.084,
                "expected_assists": 0.0708,
                "total_shots": 3,
                "shots_off_target": 2,
                "total_pass": 39,
                "accurate_pass": 30,
                "key_pass": 3,
                "tackles": 3,
                "tackles_won": 2,
                "interceptions": 2,
                "aerial_won": 1,
                "duels_won": 7,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416322.0,
              "match_date": "2026-09-12",
              "home_team": "Athletic Club",
              "away_team": "Elche",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Elche",
              "stats": {
                "minutes": 90,
                "rating": 8.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0972,
                "expected_assists": 1.0516,
                "total_shots": 3,
                "shots_on_target": 1,
                "shots_off_target": 2,
                "total_pass": 41,
                "accurate_pass": 34,
                "key_pass": 4,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 1,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416317.0,
              "match_date": "2026-09-05",
              "home_team": "Athletic Club",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 76,
                "rating": 7.7,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.4335,
                "expected_assists": 0.0079,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 18,
                "accurate_pass": 12,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 3,
                "duels_won": 2,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416308.0,
              "match_date": "2026-08-30",
              "home_team": "Celta Vigo",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 16,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.3375,
                "expected_assists": 0.0017,
                "total_shots": 2,
                "shots_off_target": 2,
                "total_pass": 3,
                "accurate_pass": 3,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 1,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421059.0,
              "match_date": "2026-08-27",
              "home_team": "FC Barcelona",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "FC Barcelona",
              "stats": {
                "minutes": 60,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0239,
                "expected_assists": 0.0003,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 13,
                "accurate_pass": 7,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416301.0,
              "match_date": "2026-08-22",
              "home_team": "Athletic Club",
              "away_team": "Sevilla",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 32,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0856,
                "expected_assists": 0.1838,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 18,
                "accurate_pass": 12,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 3,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083539.0,
              "match_date": "2026-05-10",
              "home_team": "Athletic Club",
              "away_team": "Valencia",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Valencia",
              "stats": {
                "minutes": 36,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.049,
                "expected_assists": 0.1858,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 12,
                "accurate_pass": 8,
                "duels_won": 2,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083364.0,
              "match_date": "2026-05-02",
              "home_team": "Deportivo Alavés",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 89,
                "rating": 8.8,
                "goal_rate": 2.0,
                "goals": 2,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.5302,
                "expected_assists": 0.0367,
                "total_shots": 4,
                "shots_on_target": 2,
                "shots_off_target": 1,
                "total_pass": 25,
                "accurate_pass": 21,
                "key_pass": 1,
                "clearances": 1,
                "aerial_won": 2,
                "duels_won": 5,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 498,
            "combined_rank_score": 291.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 351.0,
            "sofascore_rating": 6.984,
            "sofascore_appearances": 25.0,
            "fifa_rank": 231.0,
            "fifa_overall": 84.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 4,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 7.0014,
            "source_file": "data/player_rankings.csv",
            "player_name": "Nico Williams",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Alex Fernandes",
                  "ranking": 493
                },
                {
                  "player_name": "Lucas Soto",
                  "ranking": 494
                },
                {
                  "player_name": "Jo Jun-Hyun",
                  "ranking": 495
                },
                {
                  "player_name": "Nizar El Jmili",
                  "ranking": 496
                },
                {
                  "player_name": "Marco de las Sias",
                  "ranking": 497
                }
              ],
              "lower": [
                {
                  "player_name": "José Ángel López",
                  "ranking": 499
                },
                {
                  "player_name": "Kim Hye-Seong",
                  "ranking": 500
                },
                {
                  "player_name": "Matheus Babi",
                  "ranking": 501
                },
                {
                  "player_name": "Farrukh Sayfiev",
                  "ranking": 502
                },
                {
                  "player_name": "Dong-min Kim",
                  "ranking": 503
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.762,
          "history_matches": 33,
          "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": 33,
            "data_confidence": 0.762,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0117,
            "fbref_prior_metrics": {
              "squad": "Athletic Club",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 1.0,
              "minutes": 109.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 3.3,
              "shots_on_target_pct": 0.0,
              "prior_reliability": 0.08
            },
            "rationale": "XGBoost regressor (F_service) evaluated 33 historical appearances across 7 target models; FBref 2026-2027 prior blended (La Liga, Athletic Club, rel: 0.08, 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.1567,
                "goals": 0.1841,
                "goal_rate": 0.1841,
                "shots_on_target": 0.5658,
                "total_shots": 1.9818,
                "expected_assists": 0.1073,
                "key_pass": 1.0775,
                "rating": 7.0014,
                "minutes": 71.41,
                "total_pass": 25.5401,
                "accurate_pass": 19.0771,
                "duels_won": 4.2156,
                "total_long_balls": 0.6396,
                "accurate_long_balls": 0.3201,
                "total_opp_half_passes": 19.4782,
                "accurate_opp_half_passes": 13.4785,
                "crosses_total": 3.6467,
                "crosses_accurate": 0.6943,
                "touches": 46.6442,
                "possession_lost": 16.2445,
                "dispossessed": 0.7801,
                "duels_lost": 5.7241,
                "aerial_lost": 0.1946,
                "total_contest": 4.6029,
                "won_contest": 1.7853,
                "ball_recovery": 3.5992,
                "challenges_lost": 0.6187,
                "fouls": 1.3934,
                "fouls_drawn": 0.9002,
                "assists": 0.072,
                "assist_rate": 0.072,
                "interceptions": 0.4786,
                "tackles_won": 0.7881,
                "tackles": 0.9807,
                "clearances": 0.5296,
                "blocks": 0.0,
                "big_chances_created": 0.1784,
                "big_chances_missed": 0.0571,
                "xgot": 0.1525,
                "offsides": 0.214,
                "ball_carries": 18.2812,
                "total_progression": 110.1246,
                "progressive_carries": 5.4237,
                "shots_off_target": 1.416
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 6,
                  "trained_at": "2026-11-01T11:27:41.685145+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 612,
                    "rows": 17180
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-25",
                    "opponent": "Getafe",
                    "minutes": 48.0,
                    "is_starting": true,
                    "weight": 0.1507,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-10-21",
                    "opponent": "Levante UD",
                    "minutes": 9.0,
                    "is_starting": false,
                    "weight": 0.1281,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Deportivo Alavés",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1089,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Elche",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0926,
                    "rating": 8.2
                  },
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Atlético Madrid",
                    "minutes": 76.0,
                    "is_starting": true,
                    "weight": 0.0787,
                    "rating": 7.7
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Celta Vigo",
                    "minutes": 16.0,
                    "is_starting": false,
                    "weight": 0.0669,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "FC Barcelona",
                    "minutes": 60.0,
                    "is_starting": true,
                    "weight": 0.0568,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Sevilla",
                    "minutes": 32.0,
                    "is_starting": false,
                    "weight": 0.0483,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-05-10",
                    "opponent": "Valencia",
                    "minutes": 36.0,
                    "is_starting": true,
                    "weight": 0.0411,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-05-02",
                    "opponent": "Deportivo Alavés",
                    "minutes": 89.0,
                    "is_starting": true,
                    "weight": 0.0349,
                    "rating": 8.8
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 1.0,
                  "accuratePass": 15.4764,
                  "expectedGoals": 0.1501,
                  "accurateOppositionHalfPasses": 10.9559,
                  "totalShots": 1.9113,
                  "totalOppositionHalfPasses": 16.1047
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.15665262937545776,
                    "model_output": 0.1567,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2767
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0987
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.036
                      },
                      {
                        "name": "goals",
                        "importance": 0.0336
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0236
                      }
                    ],
                    "decomposition": {
                      "base": 0.1929,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0553
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0261
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0137
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0118
                        },
                        {
                          "name": "goals",
                          "contribution": -0.0103
                        }
                      ],
                      "others": -0.0296,
                      "total": 0.1567,
                      "log_link": true,
                      "margin_base": -1.645586,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.252173
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.110998
                        },
                        {
                          "name": "ballRecovery",
                          "margin": -0.063586
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": -0.058059
                        },
                        {
                          "name": "goals",
                          "margin": -0.053793
                        }
                      ],
                      "others_margin": -0.173875
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.18414193391799927,
                    "model_output": 0.1841,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1491
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0805
                      },
                      {
                        "name": "goals",
                        "importance": 0.056
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0343
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 0.1972,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0553
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0278
                        },
                        {
                          "name": "goals",
                          "contribution": -0.016
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0079
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0073
                        }
                      ],
                      "others": -0.0094,
                      "total": 0.1841,
                      "log_link": true,
                      "margin_base": -1.623746,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.24743
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.116715
                        },
                        {
                          "name": "goals",
                          "margin": -0.07388
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": -0.038769
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.037255
                        }
                      ],
                      "others_margin": -0.049113
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.5657673478126526,
                    "model_output": 0.5658,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2173
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0637
                      },
                      {
                        "name": "goals",
                        "importance": 0.0596
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0393
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 0.5269,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1793
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0602
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0439
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": -0.0379
                        },
                        {
                          "name": "goals",
                          "contribution": -0.0345
                        }
                      ],
                      "others": 0.0361,
                      "total": 0.5658,
                      "log_link": true,
                      "margin_base": -0.640773,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.292884
                        },
                        {
                          "name": "ballRecovery",
                          "margin": -0.089065
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.070436
                        },
                        {
                          "name": "progressive_carries_p90",
                          "margin": -0.064959
                        },
                        {
                          "name": "goals",
                          "margin": -0.063129
                        }
                      ],
                      "others_margin": 0.065906
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.9817256927490234,
                    "model_output": 1.9817,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.3005
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0627
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0526
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0309
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0307
                      }
                    ],
                    "decomposition": {
                      "base": 1.3756,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.4609
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.1223
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": 0.0516
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.046
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0315
                        }
                      ],
                      "others": 0.0488,
                      "total": 1.9817,
                      "log_link": false,
                      "margin_base": 1.375643,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.460942
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.122336
                        },
                        {
                          "name": "totalShots_p90",
                          "margin": 0.051645
                        },
                        {
                          "name": "ballRecovery",
                          "margin": -0.045984
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.031484
                        }
                      ],
                      "others_margin": 0.048628
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.10731567442417145,
                    "model_output": 0.1073,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.1287
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1119
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0634
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0522
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.051
                      }
                    ],
                    "decomposition": {
                      "base": 0.065,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0131
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": 0.0093
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0097
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0098
                        },
                        {
                          "name": "aerial_dominance",
                          "contribution": -0.0096
                        }
                      ],
                      "others": 0.01,
                      "total": 0.1073,
                      "log_link": true,
                      "margin_base": -2.733324,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.183268
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": 0.112181
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.105077
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.096594
                        },
                        {
                          "name": "aerial_dominance",
                          "margin": -0.094517
                        }
                      ],
                      "others_margin": 0.098741
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 1.077462077140808,
                    "model_output": 1.0775,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1579
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1341
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0953
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.069
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0295
                      }
                    ],
                    "decomposition": {
                      "base": 0.6917,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1772
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": 0.083
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0484
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0365
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0364
                        }
                      ],
                      "others": 0.0773,
                      "total": 1.0775,
                      "log_link": true,
                      "margin_base": -0.368585,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.228071
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": 0.091251
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.049636
                        },
                        {
                          "name": "accuratePass",
                          "margin": -0.037143
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.037045
                        }
                      ],
                      "others_margin": 0.074333
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 7.001392364501953,
                    "model_output": 7.0014,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0495
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.048
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0462
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0455
                      },
                      {
                        "name": "rating",
                        "importance": 0.0455
                      }
                    ],
                    "decomposition": {
                      "base": 6.7733,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0602
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0371
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0246
                        },
                        {
                          "name": "touches",
                          "contribution": 0.0215
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": 0.021
                        }
                      ],
                      "others": 0.0637,
                      "total": 7.0014,
                      "log_link": false,
                      "margin_base": 6.773334,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.060181
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.037138
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.024599
                        },
                        {
                          "name": "touches",
                          "margin": 0.021456
                        },
                        {
                          "name": "totalShots_p90",
                          "margin": 0.02105
                        }
                      ],
                      "others_margin": 0.063635
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 33,
                  "role_matches": 25,
                  "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.0117, quality 0.800)",
              "stats": {
                "expected_goals": 0.1585,
                "goals": 0.1863,
                "goal_rate": 0.1863,
                "shots_on_target": 0.5724,
                "total_shots": 2.005,
                "expected_assists": 0.1086,
                "key_pass": 1.0901,
                "rating": 7.0014,
                "minutes": 71.41,
                "total_pass": 25.8389,
                "accurate_pass": 19.3003,
                "duels_won": 4.2649,
                "total_long_balls": 0.6471,
                "accurate_long_balls": 0.3238,
                "total_opp_half_passes": 19.7061,
                "accurate_opp_half_passes": 13.6362,
                "crosses_total": 3.6894,
                "crosses_accurate": 0.7024,
                "touches": 47.1899,
                "possession_lost": 16.4346,
                "dispossessed": 0.7892,
                "duels_lost": 5.7911,
                "aerial_lost": 0.1969,
                "total_contest": 4.6568,
                "won_contest": 1.8062,
                "ball_recovery": 3.6413,
                "challenges_lost": 0.6259,
                "fouls": 1.4097,
                "fouls_drawn": 0.9107,
                "assists": 0.0728,
                "assist_rate": 0.0728,
                "interceptions": 0.4842,
                "tackles_won": 0.7973,
                "tackles": 0.9922,
                "clearances": 0.5358,
                "blocks": 0.0,
                "big_chances_created": 0.1805,
                "big_chances_missed": 0.0578,
                "xgot": 0.1543,
                "offsides": 0.2165,
                "ball_carries": 18.4951,
                "total_progression": 111.4131,
                "progressive_carries": 5.4872,
                "shots_off_target": 1.4326
              },
              "params": {
                "market_value_eur": 44000000,
                "quality_factor": 0.8002,
                "boost_factor": 1.0117,
                "reference_quality": 0.505,
                "history_matches": 33,
                "history_shrink": 0.1316,
                "market_value_known": true
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0068)",
              "stats": {
                "expected_goals": 0.1585,
                "goals": 0.185,
                "goal_rate": 0.185,
                "shots_on_target": 0.5685,
                "total_shots": 2.0092,
                "expected_assists": 0.1086,
                "key_pass": 1.0901,
                "rating": 7.0014,
                "minutes": 71.41,
                "total_pass": 25.8389,
                "accurate_pass": 19.3003,
                "duels_won": 4.2649,
                "total_long_balls": 0.6471,
                "accurate_long_balls": 0.3238,
                "total_opp_half_passes": 19.7061,
                "accurate_opp_half_passes": 13.6362,
                "crosses_total": 3.6913,
                "crosses_accurate": 0.7024,
                "touches": 47.1899,
                "possession_lost": 16.4346,
                "dispossessed": 0.7892,
                "duels_lost": 5.7911,
                "aerial_lost": 0.1969,
                "total_contest": 4.6568,
                "won_contest": 1.8062,
                "ball_recovery": 3.6413,
                "challenges_lost": 0.6259,
                "fouls": 1.4001,
                "fouls_drawn": 0.9045,
                "assists": 0.0723,
                "assist_rate": 0.0723,
                "interceptions": 0.4854,
                "tackles_won": 0.8009,
                "tackles": 0.9922,
                "clearances": 0.5358,
                "blocks": 0.0,
                "big_chances_created": 0.1805,
                "big_chances_missed": 0.0578,
                "xgot": 0.1543,
                "offsides": 0.2195,
                "ball_carries": 18.4951,
                "total_progression": 111.4131,
                "progressive_carries": 5.4872,
                "shots_off_target": 1.4326
              },
              "params": {
                "blend_weight": 0.0068,
                "history_matches": 33,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.7934,
                "prior_reliability": 0.08,
                "competition": "La Liga",
                "squad": "Athletic Club"
              },
              "changes": [
                {
                  "stat": "fouls",
                  "before": 1.4097,
                  "after": 1.4001
                },
                {
                  "stat": "wasFouled",
                  "before": 0.9107,
                  "after": 0.9045
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.1585,
                "goals": 0.185,
                "goal_rate": 0.185,
                "shots_on_target": 0.5685,
                "total_shots": 2.0092,
                "expected_assists": 0.1086,
                "key_pass": 1.0901,
                "rating": 7.0014,
                "minutes": 71.41,
                "total_pass": 25.8389,
                "accurate_pass": 19.3003,
                "duels_won": 4.2649,
                "total_long_balls": 0.6471,
                "accurate_long_balls": 0.3238,
                "total_opp_half_passes": 19.7061,
                "accurate_opp_half_passes": 13.6362,
                "crosses_total": 3.6913,
                "crosses_accurate": 0.7024,
                "touches": 47.1899,
                "possession_lost": 16.4346,
                "dispossessed": 0.7892,
                "duels_lost": 5.7911,
                "aerial_lost": 0.1969,
                "total_contest": 4.6568,
                "won_contest": 1.8062,
                "ball_recovery": 3.6413,
                "challenges_lost": 0.6259,
                "fouls": 1.4001,
                "fouls_drawn": 0.9045,
                "assists": 0.0723,
                "assist_rate": 0.0723,
                "interceptions": 0.4854,
                "tackles_won": 0.8009,
                "tackles": 0.9922,
                "clearances": 0.5358,
                "blocks": 0.0,
                "big_chances_created": 0.1805,
                "big_chances_missed": 0.0578,
                "xgot": 0.1543,
                "offsides": 0.2195,
                "ball_carries": 18.4951,
                "total_progression": 111.4131,
                "progressive_carries": 5.4872,
                "shots_off_target": 1.4326
              },
              "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.1568,
                "goals": 0.183,
                "goal_rate": 0.183,
                "shots_on_target": 0.5624,
                "total_shots": 1.9877,
                "expected_assists": 0.1086,
                "key_pass": 1.0901,
                "rating": 7.0014,
                "minutes": 71.41,
                "total_pass": 25.8389,
                "accurate_pass": 19.3003,
                "duels_won": 4.2649,
                "total_long_balls": 0.6471,
                "accurate_long_balls": 0.3238,
                "total_opp_half_passes": 19.7061,
                "accurate_opp_half_passes": 13.6362,
                "crosses_total": 3.6913,
                "crosses_accurate": 0.7024,
                "touches": 47.1899,
                "possession_lost": 16.4346,
                "dispossessed": 0.7892,
                "duels_lost": 5.7911,
                "aerial_lost": 0.1969,
                "total_contest": 4.6568,
                "won_contest": 1.8062,
                "ball_recovery": 3.6413,
                "challenges_lost": 0.6259,
                "fouls": 1.4001,
                "fouls_drawn": 0.9045,
                "assists": 0.0723,
                "assist_rate": 0.0723,
                "interceptions": 0.4854,
                "tackles_won": 0.8009,
                "tackles": 0.9922,
                "clearances": 0.5358,
                "blocks": 0.0,
                "big_chances_created": 0.1805,
                "big_chances_missed": 0.0572,
                "xgot": 0.1526,
                "offsides": 0.2195,
                "ball_carries": 18.4951,
                "total_progression": 111.4131,
                "progressive_carries": 5.4872,
                "shots_off_target": 1.4173,
                "duel_xg_multiplier": 0.9893,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.6,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.193,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Mamadou Sarr, Jon Martin",
                "opponent_faced": "Mamadou Sarr, Jon Martin",
                "antagonist_source": "attacking_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Mamadou Sarr, Jon Martin",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                  "duel_win_rate": 0.193,
                  "pressing_faced": "MEDIUM",
                  "numerical_situation": "1v2",
                  "xg_multiplier": 0.9893,
                  "skill_edge": 0.0307,
                  "height_edge": -0.038,
                  "attacker_skill": 0.8002,
                  "defender_skill": 0.732,
                  "attacker_role": "ST",
                  "attacker_mv_price_index": 1.0,
                  "defender_adjusted_parts": [
                    {
                      "player": "Mamadou Sarr",
                      "market_value": 24000000,
                      "role": "CB",
                      "price_index": 0.75,
                      "adjusted_quality": 0.732
                    },
                    {
                      "player": "Jon Martin",
                      "market_value": 24000000,
                      "role": "CB",
                      "price_index": 0.75,
                      "adjusted_quality": 0.732
                    }
                  ],
                  "xg_override": 0.1568
                }
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 2.0092,
                  "after": 1.9877
                },
                {
                  "stat": "shotOffTarget",
                  "before": 1.4326,
                  "after": 1.4173
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.5685,
                  "after": 0.5624
                }
              ]
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "expected_goals": 0.1568,
                "goal_rate": 0.183,
                "goals": 0,
                "shots_on_target": 0.5624,
                "total_shots": 1.9877,
                "expected_assists": 0.1086,
                "key_pass": 1.0901,
                "rating": 7.0014,
                "minutes": 71.41,
                "total_pass": 25.8389,
                "accurate_pass": 19.3003,
                "duels_won": 4.2649,
                "total_long_balls": 0.6471,
                "accurate_long_balls": 0.3238,
                "total_opp_half_passes": 19.7061,
                "accurate_opp_half_passes": 13.6362,
                "crosses_total": 3.6913,
                "crosses_accurate": 0.7024,
                "touches": 47.1899,
                "possession_lost": 16.4346,
                "dispossessed": 0.7892,
                "duels_lost": 5.7911,
                "aerial_lost": 0.1969,
                "total_contest": 4.6568,
                "won_contest": 1.8062,
                "ball_recovery": 3.6413,
                "challenges_lost": 0.6259,
                "fouls": 1.4001,
                "fouls_drawn": 0.9045,
                "assist_rate": 0.0723,
                "assists": 0,
                "interceptions": 0.4854,
                "tackles_won": 0.8009,
                "tackles": 0.9922,
                "clearances": 0.5358,
                "blocks": 0.0,
                "big_chances_created": 0.1805,
                "big_chances_missed": 0.0572,
                "xgot": 0.1526,
                "offsides": 0.2195,
                "ball_carries": 18.4951,
                "total_progression": 111.4131,
                "progressive_carries": 5.4872,
                "shots_off_target": 1.4173,
                "duel_xg_multiplier": 0.9893,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.6,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.193,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Mamadou Sarr, Jon Martin",
                "opponent_faced": "Mamadou Sarr, Jon Martin",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "scoreline_reset": true,
                "team_goals": 2
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.73 (squad xG sum 1.0016, xG scale 1.7263, xA scale 1.7263, team xA 1.22 = 0.71 x lambda)",
              "stats": {
                "expected_goals": 0.2707,
                "goal_rate": 0.183,
                "goals": 0,
                "shots_on_target": 0.5624,
                "total_shots": 1.9877,
                "expected_assists": 0.1875,
                "key_pass": 1.0901,
                "rating": 7.0014,
                "minutes": 71.41,
                "total_pass": 25.8389,
                "accurate_pass": 19.3003,
                "duels_won": 4.2649,
                "total_long_balls": 0.6471,
                "accurate_long_balls": 0.3238,
                "total_opp_half_passes": 19.7061,
                "accurate_opp_half_passes": 13.6362,
                "crosses_total": 3.6913,
                "crosses_accurate": 0.7024,
                "touches": 47.1899,
                "possession_lost": 16.4346,
                "dispossessed": 0.7892,
                "duels_lost": 5.7911,
                "aerial_lost": 0.1969,
                "total_contest": 4.6568,
                "won_contest": 1.8062,
                "ball_recovery": 3.6413,
                "challenges_lost": 0.6259,
                "fouls": 1.4001,
                "fouls_drawn": 0.9045,
                "assist_rate": 0.0723,
                "assists": 0,
                "interceptions": 0.4854,
                "tackles_won": 0.8009,
                "tackles": 0.9922,
                "clearances": 0.5358,
                "blocks": 0.0,
                "big_chances_created": 0.1805,
                "big_chances_missed": 0.0572,
                "xgot": 0.2634,
                "offsides": 0.2195,
                "ball_carries": 18.4951,
                "total_progression": 111.4131,
                "progressive_carries": 5.4872,
                "shots_off_target": 1.4173,
                "duel_xg_multiplier": 0.9893,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.6,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.193,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Mamadou Sarr, Jon Martin",
                "opponent_faced": "Mamadou Sarr, Jon Martin",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.1267,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 1.729,
                "squad_xg_sum": 1.0016,
                "squad_xa_sum": 0.7085,
                "team_expected_assists": 1.2231,
                "team_xa_to_xg_ratio": 0.7074,
                "bench_appearance_weighted": true,
                "xg_scale": 1.7263,
                "xa_scale": 1.7263,
                "opponent_lambda": 1.255,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.1568,
                  "after": 0.2707
                },
                {
                  "stat": "expected_assists",
                  "before": 0.1086,
                  "after": 0.1875
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 84.0)",
              "stats": {
                "expected_goals": 0.2707,
                "goal_rate": 0.183,
                "goals": 0,
                "shots_on_target": 0.5624,
                "total_shots": 1.9877,
                "expected_assists": 0.1875,
                "key_pass": 1.0901,
                "rating": 7.0014,
                "minutes": 71.41,
                "total_pass": 25.8389,
                "accurate_pass": 19.3003,
                "duels_won": 4.2649,
                "total_long_balls": 0.6471,
                "accurate_long_balls": 0.3238,
                "total_opp_half_passes": 19.7061,
                "accurate_opp_half_passes": 13.6362,
                "crosses_total": 3.6913,
                "crosses_accurate": 0.7024,
                "touches": 47.1899,
                "possession_lost": 16.4346,
                "dispossessed": 0.7892,
                "duels_lost": 5.7911,
                "aerial_lost": 0.1969,
                "total_contest": 4.6568,
                "won_contest": 1.8062,
                "ball_recovery": 3.6413,
                "challenges_lost": 0.6259,
                "fouls": 1.4001,
                "fouls_drawn": 0.9045,
                "assist_rate": 0.0723,
                "assists": 0,
                "interceptions": 0.4854,
                "tackles_won": 0.8009,
                "tackles": 0.9922,
                "clearances": 0.5358,
                "blocks": 0.0,
                "big_chances_created": 0.1805,
                "big_chances_missed": 0.0572,
                "xgot": 0.2634,
                "offsides": 0.2195,
                "ball_carries": 18.4951,
                "total_progression": 111.4131,
                "progressive_carries": 5.4872,
                "shots_off_target": 1.4173,
                "duel_xg_multiplier": 0.9893,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.6,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.193,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Mamadou Sarr, Jon Martin",
                "opponent_faced": "Mamadou Sarr, Jon Martin",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.1267,
                "creation_factor": 0.8,
                "fifa_overall": 84.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": 498,
                "fifa_rank": 231.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 84.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "expected_goals": 0.2707,
                "goal_rate": 0.183,
                "goals": 1,
                "shots_on_target": 0.5624,
                "total_shots": 1.9877,
                "expected_assists": 0.1875,
                "key_pass": 1.0901,
                "rating": 7.0014,
                "minutes": 71.41,
                "total_pass": 25.8389,
                "accurate_pass": 19.3003,
                "duels_won": 4.2649,
                "total_long_balls": 0.6471,
                "accurate_long_balls": 0.3238,
                "total_opp_half_passes": 19.7061,
                "accurate_opp_half_passes": 13.6362,
                "crosses_total": 3.6913,
                "crosses_accurate": 0.7024,
                "touches": 47.1899,
                "possession_lost": 16.4346,
                "dispossessed": 0.7892,
                "duels_lost": 5.7911,
                "aerial_lost": 0.1969,
                "total_contest": 4.6568,
                "won_contest": 1.8062,
                "ball_recovery": 3.6413,
                "challenges_lost": 0.6259,
                "fouls": 1.4001,
                "fouls_drawn": 0.9045,
                "assist_rate": 0.0723,
                "assists": 0,
                "interceptions": 0.4854,
                "tackles_won": 0.8009,
                "tackles": 0.9922,
                "clearances": 0.5358,
                "blocks": 0.0,
                "big_chances_created": 0.1805,
                "big_chances_missed": 0.0572,
                "xgot": 0.2634,
                "offsides": 0.2195,
                "ball_carries": 18.4951,
                "total_progression": 111.4131,
                "progressive_carries": 5.4872,
                "shots_off_target": 1.4173,
                "duel_xg_multiplier": 0.9893,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.6,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.193,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Mamadou Sarr, Jon Martin",
                "opponent_faced": "Mamadou Sarr, Jon Martin",
                "antagonist_source": "attacking_duel",
                "projected_goals": 1,
                "goal_probability": 0.2372,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.1267,
                "creation_factor": 0.8,
                "fifa_overall": 84.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 2,
                "goals_allocated": 1,
                "goal_probability": 0.2372,
                "goal_rate": 0.183,
                "scorer_weight": 0.305,
                "squad_weight_total": 1.9109,
                "weight_share": 0.1596,
                "finishing_factor": 1.1267,
                "appearance_weight": 1.0,
                "weight_rank": 2,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Iñaki Williams",
                    "weight": 0.5576,
                    "already": 0,
                    "effective_weight": 0.5576,
                    "runner_up": "Nico Williams",
                    "runner_up_effective_weight": 0.305
                  },
                  {
                    "n": 2,
                    "player": "Nico Williams",
                    "weight": 0.305,
                    "already": 0,
                    "effective_weight": 0.305,
                    "runner_up": "Álex Berenguer",
                    "runner_up_effective_weight": 0.2692
                  }
                ]
              }
            },
            {
              "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.2707,
                "goal_rate": 0.183,
                "goals": 1,
                "shots_on_target": 0.5624,
                "total_shots": 1.9877,
                "expected_assists": 0.1875,
                "key_pass": 1.0901,
                "rating": 7.0014,
                "minutes": 71.41,
                "total_pass": 25.8389,
                "accurate_pass": 19.3003,
                "duels_won": 4.2649,
                "total_long_balls": 0.6471,
                "accurate_long_balls": 0.3238,
                "total_opp_half_passes": 19.7061,
                "accurate_opp_half_passes": 13.6362,
                "crosses_total": 3.6913,
                "crosses_accurate": 0.7024,
                "touches": 47.1899,
                "possession_lost": 16.4346,
                "dispossessed": 0.7892,
                "duels_lost": 5.7911,
                "aerial_lost": 0.1969,
                "total_contest": 4.6568,
                "won_contest": 1.8062,
                "ball_recovery": 3.6413,
                "challenges_lost": 0.6259,
                "fouls": 1.4001,
                "fouls_drawn": 0.9045,
                "assist_rate": 0.0723,
                "assists": 0,
                "interceptions": 0.4854,
                "tackles_won": 0.8009,
                "tackles": 0.9922,
                "clearances": 0.5358,
                "blocks": 0.0,
                "big_chances_created": 0.1805,
                "big_chances_missed": 0.0572,
                "xgot": 0.2634,
                "offsides": 0.2195,
                "ball_carries": 18.4951,
                "total_progression": 111.4131,
                "progressive_carries": 5.4872,
                "shots_off_target": 1.4173,
                "duel_xg_multiplier": 0.9893,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.6,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.193,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Mamadou Sarr, Jon Martin",
                "opponent_faced": "Mamadou Sarr, Jon Martin",
                "antagonist_source": "attacking_duel",
                "projected_goals": 1,
                "goal_probability": 0.2372,
                "projected_assists": 0,
                "assist_probability": 0.171,
                "finishing_factor": 1.1267,
                "creation_factor": 0.8,
                "fifa_overall": 84.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.171,
                "assist_rate": 0.0723,
                "provider_weight": 0.15,
                "squad_weight_total": 1.1843,
                "weight_share": 0.1267,
                "creation_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 3,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Álex Berenguer",
                    "weight": 0.2673,
                    "already": 0,
                    "effective_weight": 0.2673,
                    "runner_up": "Yuri Berchiche",
                    "runner_up_effective_weight": 0.2271
                  }
                ]
              }
            }
          ]
        },
        "Iñaki Williams": {
          "player_id": 783374,
          "position": "F",
          "position_depth": "F",
          "is_starter": true,
          "shirt_number": 9,
          "height": 186,
          "market_value": 7300000,
          "stats": {
            "expected_goals": 0.4461,
            "goal_rate": 0.3382,
            "goals": 1,
            "shots_on_target": 1,
            "total_shots": 2,
            "expected_assists": 0.0873,
            "key_pass": 1,
            "rating": 6.8226,
            "minutes": 67,
            "total_pass": 11,
            "accurate_pass": 7,
            "duels_won": 3,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 9,
            "accurate_opp_half_passes": 5,
            "crosses_total": 1,
            "crosses_accurate": 0,
            "touches": 22,
            "possession_lost": 8.5295,
            "dispossessed": 0.6939,
            "duels_lost": 4,
            "aerial_lost": 1,
            "total_contest": 2,
            "won_contest": 1,
            "ball_recovery": 1,
            "challenges_lost": 0,
            "fouls": 1,
            "fouls_drawn": 1,
            "assist_rate": 0.2595,
            "assists": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.3905,
            "offsides": 0,
            "ball_carries": 7,
            "total_progression": 27,
            "progressive_carries": 1,
            "shots_off_target": 1,
            "duel_xg_multiplier": 0.8195,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.3,
            "aerial_won": 2,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.18,
            "pressing_faced": "MEDIUM",
            "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "numerical_situation": "1v2",
            "opponent_defenders": "Mamadou Sarr, Jon Martin",
            "opponent_faced": "Mamadou Sarr, Jon Martin",
            "antagonist_source": "attacking_duel",
            "projected_goals": 1,
            "goal_probability": 0.3599,
            "projected_assists": 0,
            "assist_probability": 0.0836,
            "finishing_factor": 1.25,
            "creation_factor": 1.25,
            "fifa_overall": 80.0
          },
          "latest_10_games": [
            {
              "match_id": 16421081.0,
              "match_date": "2026-10-25",
              "home_team": "Athletic Club",
              "away_team": "Getafe",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Getafe",
              "stats": {
                "minutes": 48,
                "rating": 7.3,
                "goal_rate": 1.0,
                "goals": 1,
                "expected_goals": 0.3983,
                "expected_assists": 0.0016,
                "total_shots": 3,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 12,
                "accurate_pass": 8,
                "interceptions": 1,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 17122851.0,
              "match_date": "2026-10-21",
              "home_team": "Levante UD",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 45,
                "rating": 6.5,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0004,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "total_pass": 8,
                "accurate_pass": 3,
                "tackles": 0,
                "tackles_won": 0,
                "interceptions": 1,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 1,
                "saves": 0
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421074.0,
              "match_date": "2026-10-17",
              "home_team": "Valencia",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Valencia",
              "stats": {
                "minutes": 63,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0898,
                "expected_assists": 0.0477,
                "total_shots": 3,
                "shots_on_target": 1,
                "shots_off_target": 2,
                "total_pass": 10,
                "accurate_pass": 6,
                "clearances": 1,
                "aerial_won": 2,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416337.0,
              "match_date": "2026-09-19",
              "home_team": "Athletic Club",
              "away_team": "Deportivo Alavés",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 62,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1997,
                "expected_assists": 0.001,
                "total_shots": 2,
                "shots_off_target": 2,
                "total_pass": 5,
                "accurate_pass": 4,
                "aerial_won": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416322.0,
              "match_date": "2026-09-12",
              "home_team": "Athletic Club",
              "away_team": "Elche",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Elche",
              "stats": {
                "minutes": 81,
                "rating": 6.5,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 1.3179,
                "expected_assists": 0.0008,
                "total_shots": 4,
                "shots_on_target": 1,
                "shots_off_target": 2,
                "total_pass": 6,
                "accurate_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416317.0,
              "match_date": "2026-09-05",
              "home_team": "Athletic Club",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 66,
                "rating": 6.3,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.1691,
                "expected_assists": 0.0271,
                "total_shots": 3,
                "shots_off_target": 1,
                "total_pass": 11,
                "accurate_pass": 8,
                "key_pass": 2,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416308.0,
              "match_date": "2026-08-30",
              "home_team": "Celta Vigo",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 65,
                "rating": 6.6,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.686,
                "expected_assists": 0.0255,
                "total_shots": 2,
                "shots_on_target": 2,
                "total_pass": 13,
                "accurate_pass": 8,
                "key_pass": 1,
                "aerial_won": 2,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421059.0,
              "match_date": "2026-08-27",
              "home_team": "FC Barcelona",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "FC Barcelona",
              "stats": {
                "minutes": 60,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0004,
                "total_shots": 0,
                "total_pass": 6,
                "accurate_pass": 2,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416301.0,
              "match_date": "2026-08-22",
              "home_team": "Athletic Club",
              "away_team": "Sevilla",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 58,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1497,
                "expected_assists": 0.0233,
                "total_shots": 2,
                "shots_on_target": 2,
                "total_pass": 12,
                "accurate_pass": 8,
                "key_pass": 2,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "aerial_won": 2,
                "duels_won": 7,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083731.0,
              "match_date": "2026-05-23",
              "home_team": "Real Madrid",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assist_rate": 2.0,
                "assists": 2,
                "expected_assists": 0.5147,
                "total_shots": 0,
                "total_pass": 14,
                "accurate_pass": 5,
                "key_pass": 2,
                "tackles": 1,
                "interceptions": 2,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 2065,
            "combined_rank_score": 785.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 821.0,
            "sofascore_rating": 6.6033,
            "sofascore_appearances": 30.0,
            "fifa_rank": 749.0,
            "fifa_overall": 80.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 8,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.8226,
            "source_file": "data/player_rankings.csv",
            "player_name": "Iñaki Williams",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Jonas Weissenhofer",
                  "ranking": 2060
                },
                {
                  "player_name": "Manolis Siopis",
                  "ranking": 2061
                },
                {
                  "player_name": "Diego Antonio Sabando Sanhueza",
                  "ranking": 2062
                },
                {
                  "player_name": "Lee Kyu-Min",
                  "ranking": 2063
                },
                {
                  "player_name": "Salem Al Dawsari",
                  "ranking": 2064
                }
              ],
              "lower": [
                {
                  "player_name": "Youssef En-Nesyri",
                  "ranking": 2066
                },
                {
                  "player_name": "Dominic Calvert-Lewin",
                  "ranking": 2067
                },
                {
                  "player_name": "Kim Jong-Seok",
                  "ranking": 2068
                },
                {
                  "player_name": "Ariel Cáceres",
                  "ranking": 2069
                },
                {
                  "player_name": "Lucas Zelarayán",
                  "ranking": 2070
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.77,
          "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.77,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.9995,
            "fbref_prior_metrics": {
              "squad": "Athletic Club",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "minutes": 180.0,
              "goals_per90": 0.0,
              "assists_per90": 0.5,
              "shots_per90": 2.0,
              "shots_on_target_pct": 100.0,
              "prior_reliability": 0.1333
            },
            "rationale": "XGBoost regressor (F_service) evaluated 39 historical appearances across 7 target models; FBref 2026-2027 prior blended (La Liga, Athletic Club, rel: 0.13, gls/90: 0.0, ast/90: 0.5)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.3154,
                "goals": 0.417,
                "goal_rate": 0.417,
                "shots_on_target": 0.8827,
                "total_shots": 2.3511,
                "expected_assists": 0.0507,
                "key_pass": 0.65,
                "rating": 6.8226,
                "minutes": 67.03,
                "total_pass": 11.3967,
                "accurate_pass": 7.1367,
                "duels_won": 2.5505,
                "total_long_balls": 0.3576,
                "accurate_long_balls": 0.0052,
                "total_opp_half_passes": 8.579,
                "accurate_opp_half_passes": 4.7269,
                "crosses_total": 0.924,
                "crosses_accurate": 0.1662,
                "touches": 22.3039,
                "possession_lost": 8.5338,
                "dispossessed": 0.6942,
                "duels_lost": 4.0293,
                "aerial_lost": 1.1788,
                "total_contest": 1.5871,
                "won_contest": 0.5634,
                "ball_recovery": 1.3186,
                "challenges_lost": 0.3918,
                "fouls": 0.8944,
                "fouls_drawn": 0.6335,
                "assists": 0.2585,
                "assist_rate": 0.2585,
                "interceptions": 0.3692,
                "tackles_won": 0.3208,
                "tackles": 0.3981,
                "clearances": 0.4171,
                "blocks": 0.0831,
                "big_chances_created": 0.205,
                "big_chances_missed": 0.3492,
                "xgot": 0.2761,
                "offsides": 0.2155,
                "ball_carries": 6.74,
                "total_progression": 27.1188,
                "progressive_carries": 1.4493,
                "shots_off_target": 1.4684
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 6,
                  "trained_at": "2026-11-01T11:27:41.685145+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 612,
                    "rows": 17180
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-25",
                    "opponent": "Getafe",
                    "minutes": 48.0,
                    "is_starting": true,
                    "weight": 0.1503,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-10-21",
                    "opponent": "Levante UD",
                    "minutes": 45.0,
                    "is_starting": false,
                    "weight": 0.1277,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-10-17",
                    "opponent": "Valencia",
                    "minutes": 63.0,
                    "is_starting": true,
                    "weight": 0.1086,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Deportivo Alavés",
                    "minutes": 62.0,
                    "is_starting": true,
                    "weight": 0.0923,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Elche",
                    "minutes": 81.0,
                    "is_starting": true,
                    "weight": 0.0784,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Atlético Madrid",
                    "minutes": 66.0,
                    "is_starting": true,
                    "weight": 0.0667,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Celta Vigo",
                    "minutes": 65.0,
                    "is_starting": true,
                    "weight": 0.0567,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "FC Barcelona",
                    "minutes": 60.0,
                    "is_starting": true,
                    "weight": 0.0482,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Sevilla",
                    "minutes": 58.0,
                    "is_starting": true,
                    "weight": 0.0409,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-05-23",
                    "opponent": "Real Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0348,
                    "rating": 6.9
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 1.0,
                  "accuratePass": 6.5164,
                  "expectedGoals": 0.3067,
                  "accurateOppositionHalfPasses": 4.1802,
                  "totalShots": 2.0795,
                  "totalOppositionHalfPasses": 8.0781
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.31541338562965393,
                    "model_output": 0.3154,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2767
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0987
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.036
                      },
                      {
                        "name": "goals",
                        "importance": 0.0336
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0236
                      }
                    ],
                    "decomposition": {
                      "base": 0.1929,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0602
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0322
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0131
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": 0.0113
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": 0.0088
                        }
                      ],
                      "others": 0.0231,
                      "total": 0.3154,
                      "log_link": true,
                      "margin_base": -1.645586,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.271744
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.119641
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": -0.046848
                        },
                        {
                          "name": "ballRecovery",
                          "margin": 0.040661
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": 0.030729
                        }
                      ],
                      "others_margin": 0.075788
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.4169751703739166,
                    "model_output": 0.417,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1491
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0805
                      },
                      {
                        "name": "goals",
                        "importance": 0.056
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0343
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 0.1972,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0721
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0362
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": 0.0157
                        },
                        {
                          "name": "goals",
                          "contribution": 0.0163
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": 0.017
                        }
                      ],
                      "others": 0.0625,
                      "total": 0.417,
                      "log_link": true,
                      "margin_base": -1.623746,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.311789
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.126066
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": 0.050133
                        },
                        {
                          "name": "goals",
                          "margin": 0.049509
                        },
                        {
                          "name": "ballRecovery",
                          "margin": 0.04909
                        }
                      ],
                      "others_margin": 0.16243
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.8826736807823181,
                    "model_output": 0.8827,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2173
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0637
                      },
                      {
                        "name": "goals",
                        "importance": 0.0596
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0393
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 0.5269,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1596
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0495
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": 0.0383
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0252
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": 0.0154
                        }
                      ],
                      "others": 0.0678,
                      "total": 0.8827,
                      "log_link": true,
                      "margin_base": -0.640773,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.264611
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.069652
                        },
                        {
                          "name": "ballRecovery",
                          "margin": 0.050668
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.031989
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": 0.019119
                        }
                      ],
                      "others_margin": 0.079933
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 2.3510634899139404,
                    "model_output": 2.3511,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.3005
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0627
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0526
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0309
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0307
                      }
                    ],
                    "decomposition": {
                      "base": 1.3756,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.5286
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.1825
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": 0.0507
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": 0.0365
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0335
                        }
                      ],
                      "others": 0.1437,
                      "total": 2.3511,
                      "log_link": false,
                      "margin_base": 1.375643,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.528645
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.182544
                        },
                        {
                          "name": "ballRecovery",
                          "margin": 0.050664
                        },
                        {
                          "name": "totalShots_p90",
                          "margin": 0.036493
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.033498
                        }
                      ],
                      "others_margin": 0.143577
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.05065246671438217,
                    "model_output": 0.0507,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.1287
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1119
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0634
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0522
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.051
                      }
                    ],
                    "decomposition": {
                      "base": 0.065,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0185
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.0106
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0079
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": -0.004
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0036
                        }
                      ],
                      "others": -0.0067,
                      "total": 0.0507,
                      "log_link": true,
                      "margin_base": -2.733324,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.250731
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.135885
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.113964
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": -0.06369
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.060414
                        }
                      ],
                      "others_margin": -0.126221
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.6500465273857117,
                    "model_output": 0.65,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1579
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1341
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0953
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.069
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0295
                      }
                    ],
                    "decomposition": {
                      "base": 0.6917,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1749
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.0671
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0451
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.0338
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0273
                        }
                      ],
                      "others": -0.0433,
                      "total": 0.65,
                      "log_link": true,
                      "margin_base": -0.368585,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.225397
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.080575
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.058097
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.045833
                        },
                        {
                          "name": "accuratePass",
                          "margin": -0.038571
                        }
                      ],
                      "others_margin": -0.064448
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.8225507736206055,
                    "model_output": 6.8226,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0495
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.048
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0462
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0455
                      },
                      {
                        "name": "rating",
                        "importance": 0.0455
                      }
                    ],
                    "decomposition": {
                      "base": 6.7733,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0537
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": 0.0198
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0148
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0109
                        },
                        {
                          "name": "touches",
                          "contribution": -0.0087
                        }
                      ],
                      "others": 0.0102,
                      "total": 6.8226,
                      "log_link": false,
                      "margin_base": 6.773334,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.053744
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": 0.019753
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.014803
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.010904
                        },
                        {
                          "name": "touches",
                          "margin": -0.00873
                        }
                      ],
                      "others_margin": 0.010158
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 39,
                  "role_matches": 33,
                  "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.9995, quality 0.490)",
              "stats": {
                "expected_goals": 0.3153,
                "goals": 0.4168,
                "goal_rate": 0.4168,
                "shots_on_target": 0.8822,
                "total_shots": 2.3499,
                "expected_assists": 0.0506,
                "key_pass": 0.6497,
                "rating": 6.8226,
                "minutes": 67.03,
                "total_pass": 11.391,
                "accurate_pass": 7.1331,
                "duels_won": 2.5492,
                "total_long_balls": 0.3574,
                "accurate_long_balls": 0.0052,
                "total_opp_half_passes": 8.5747,
                "accurate_opp_half_passes": 4.7245,
                "crosses_total": 0.9235,
                "crosses_accurate": 0.1661,
                "touches": 22.2927,
                "possession_lost": 8.5295,
                "dispossessed": 0.6939,
                "duels_lost": 4.0273,
                "aerial_lost": 1.1782,
                "total_contest": 1.5863,
                "won_contest": 0.5631,
                "ball_recovery": 1.3179,
                "challenges_lost": 0.3916,
                "fouls": 0.894,
                "fouls_drawn": 0.6332,
                "assists": 0.2584,
                "assist_rate": 0.2584,
                "interceptions": 0.369,
                "tackles_won": 0.3206,
                "tackles": 0.3979,
                "clearances": 0.4169,
                "blocks": 0.0831,
                "big_chances_created": 0.2049,
                "big_chances_missed": 0.349,
                "xgot": 0.276,
                "offsides": 0.2154,
                "ball_carries": 6.7366,
                "total_progression": 27.1052,
                "progressive_carries": 1.4486,
                "shots_off_target": 1.4677
              },
              "params": {
                "market_value_eur": 7300000,
                "quality_factor": 0.4903,
                "boost_factor": 0.9995,
                "reference_quality": 0.505,
                "history_matches": 39,
                "history_shrink": 0.1136,
                "market_value_known": true
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0098)",
              "stats": {
                "expected_goals": 0.3153,
                "goals": 0.4127,
                "goal_rate": 0.4127,
                "shots_on_target": 0.8882,
                "total_shots": 2.3414,
                "expected_assists": 0.0506,
                "key_pass": 0.6497,
                "rating": 6.8226,
                "minutes": 67.03,
                "total_pass": 11.391,
                "accurate_pass": 7.1331,
                "duels_won": 2.5492,
                "total_long_balls": 0.3574,
                "accurate_long_balls": 0.0052,
                "total_opp_half_passes": 8.5747,
                "accurate_opp_half_passes": 4.7245,
                "crosses_total": 0.9217,
                "crosses_accurate": 0.1661,
                "touches": 22.2927,
                "possession_lost": 8.5295,
                "dispossessed": 0.6939,
                "duels_lost": 4.0273,
                "aerial_lost": 1.1782,
                "total_contest": 1.5863,
                "won_contest": 0.5631,
                "ball_recovery": 1.3179,
                "challenges_lost": 0.3916,
                "fouls": 0.8889,
                "fouls_drawn": 0.638,
                "assists": 0.2595,
                "assist_rate": 0.2595,
                "interceptions": 0.3654,
                "tackles_won": 0.3248,
                "tackles": 0.3979,
                "clearances": 0.4169,
                "blocks": 0.0831,
                "big_chances_created": 0.2049,
                "big_chances_missed": 0.349,
                "xgot": 0.276,
                "offsides": 0.2169,
                "ball_carries": 6.7366,
                "total_progression": 27.1052,
                "progressive_carries": 1.4486,
                "shots_off_target": 1.4677
              },
              "params": {
                "blend_weight": 0.0098,
                "history_matches": 39,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.7448,
                "prior_reliability": 0.1333,
                "competition": "La Liga",
                "squad": "Athletic Club"
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 2.3499,
                  "after": 2.3414
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.8822,
                  "after": 0.8882
                },
                {
                  "stat": "fouls",
                  "before": 0.894,
                  "after": 0.8889
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.3153,
                "goals": 0.4127,
                "goal_rate": 0.4127,
                "shots_on_target": 0.8882,
                "total_shots": 2.3559,
                "expected_assists": 0.0506,
                "key_pass": 0.6497,
                "rating": 6.8226,
                "minutes": 67.03,
                "total_pass": 11.391,
                "accurate_pass": 7.1331,
                "duels_won": 2.5492,
                "total_long_balls": 0.3574,
                "accurate_long_balls": 0.0052,
                "total_opp_half_passes": 8.5747,
                "accurate_opp_half_passes": 4.7245,
                "crosses_total": 0.9217,
                "crosses_accurate": 0.1661,
                "touches": 22.2927,
                "possession_lost": 8.5295,
                "dispossessed": 0.6939,
                "duels_lost": 4.0273,
                "aerial_lost": 1.1782,
                "total_contest": 1.5863,
                "won_contest": 0.5631,
                "ball_recovery": 1.3179,
                "challenges_lost": 0.3916,
                "fouls": 0.8889,
                "fouls_drawn": 0.638,
                "assists": 0.2595,
                "assist_rate": 0.2595,
                "interceptions": 0.3654,
                "tackles_won": 0.3248,
                "tackles": 0.3979,
                "clearances": 0.4169,
                "blocks": 0.0831,
                "big_chances_created": 0.2049,
                "big_chances_missed": 0.349,
                "xgot": 0.276,
                "offsides": 0.2169,
                "ball_carries": 6.7366,
                "total_progression": 27.1052,
                "progressive_carries": 1.4486,
                "shots_off_target": 1.4677
              },
              "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.2584,
                "goals": 0.3382,
                "goal_rate": 0.3382,
                "shots_on_target": 0.7279,
                "total_shots": 1.9307,
                "expected_assists": 0.0506,
                "key_pass": 0.6497,
                "rating": 6.8226,
                "minutes": 67.03,
                "total_pass": 11.391,
                "accurate_pass": 7.1331,
                "duels_won": 2.5492,
                "total_long_balls": 0.3574,
                "accurate_long_balls": 0.0052,
                "total_opp_half_passes": 8.5747,
                "accurate_opp_half_passes": 4.7245,
                "crosses_total": 0.9217,
                "crosses_accurate": 0.1661,
                "touches": 22.2927,
                "possession_lost": 8.5295,
                "dispossessed": 0.6939,
                "duels_lost": 4.0273,
                "aerial_lost": 1.1782,
                "total_contest": 1.5863,
                "won_contest": 0.5631,
                "ball_recovery": 1.3179,
                "challenges_lost": 0.3916,
                "fouls": 0.8889,
                "fouls_drawn": 0.638,
                "assists": 0.2595,
                "assist_rate": 0.2595,
                "interceptions": 0.3654,
                "tackles_won": 0.3248,
                "tackles": 0.3979,
                "clearances": 0.4169,
                "blocks": 0.0831,
                "big_chances_created": 0.2049,
                "big_chances_missed": 0.286,
                "xgot": 0.2262,
                "offsides": 0.2169,
                "ball_carries": 6.7366,
                "total_progression": 27.1052,
                "progressive_carries": 1.4486,
                "shots_off_target": 1.2028,
                "duel_xg_multiplier": 0.8195,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Mamadou Sarr, Jon Martin",
                "opponent_faced": "Mamadou Sarr, Jon Martin",
                "antagonist_source": "attacking_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Mamadou Sarr, Jon Martin",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                  "duel_win_rate": 0.18,
                  "pressing_faced": "MEDIUM",
                  "numerical_situation": "1v2",
                  "xg_multiplier": 0.8195,
                  "skill_edge": -0.1088,
                  "height_edge": -0.014,
                  "attacker_skill": 0.4903,
                  "defender_skill": 0.732,
                  "attacker_role": "ST",
                  "attacker_mv_price_index": 1.0,
                  "defender_adjusted_parts": [
                    {
                      "player": "Mamadou Sarr",
                      "market_value": 24000000,
                      "role": "CB",
                      "price_index": 0.75,
                      "adjusted_quality": 0.732
                    },
                    {
                      "player": "Jon Martin",
                      "market_value": 24000000,
                      "role": "CB",
                      "price_index": 0.75,
                      "adjusted_quality": 0.732
                    }
                  ],
                  "xg_override": 0.2584
                }
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 2.3559,
                  "after": 1.9307
                },
                {
                  "stat": "shotOffTarget",
                  "before": 1.4677,
                  "after": 1.2028
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.8882,
                  "after": 0.7279
                },
                {
                  "stat": "goals",
                  "before": 0.4127,
                  "after": 0.3382
                },
                {
                  "stat": "bigChanceMissed",
                  "before": 0.349,
                  "after": 0.286
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.3153,
                  "after": 0.2584
                },
                {
                  "stat": "expectedGoalsOnTarget",
                  "before": 0.276,
                  "after": 0.2262
                }
              ]
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "expected_goals": 0.2584,
                "goal_rate": 0.3382,
                "goals": 0,
                "shots_on_target": 0.7279,
                "total_shots": 1.9307,
                "expected_assists": 0.0506,
                "key_pass": 0.6497,
                "rating": 6.8226,
                "minutes": 67.03,
                "total_pass": 11.391,
                "accurate_pass": 7.1331,
                "duels_won": 2.5492,
                "total_long_balls": 0.3574,
                "accurate_long_balls": 0.0052,
                "total_opp_half_passes": 8.5747,
                "accurate_opp_half_passes": 4.7245,
                "crosses_total": 0.9217,
                "crosses_accurate": 0.1661,
                "touches": 22.2927,
                "possession_lost": 8.5295,
                "dispossessed": 0.6939,
                "duels_lost": 4.0273,
                "aerial_lost": 1.1782,
                "total_contest": 1.5863,
                "won_contest": 0.5631,
                "ball_recovery": 1.3179,
                "challenges_lost": 0.3916,
                "fouls": 0.8889,
                "fouls_drawn": 0.638,
                "assist_rate": 0.2595,
                "assists": 0,
                "interceptions": 0.3654,
                "tackles_won": 0.3248,
                "tackles": 0.3979,
                "clearances": 0.4169,
                "blocks": 0.0831,
                "big_chances_created": 0.2049,
                "big_chances_missed": 0.286,
                "xgot": 0.2262,
                "offsides": 0.2169,
                "ball_carries": 6.7366,
                "total_progression": 27.1052,
                "progressive_carries": 1.4486,
                "shots_off_target": 1.2028,
                "duel_xg_multiplier": 0.8195,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Mamadou Sarr, Jon Martin",
                "opponent_faced": "Mamadou Sarr, Jon Martin",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "scoreline_reset": true,
                "team_goals": 2
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.73 (squad xG sum 1.0016, xG scale 1.7263, xA scale 1.7263, team xA 1.22 = 0.71 x lambda)",
              "stats": {
                "expected_goals": 0.4461,
                "goal_rate": 0.3382,
                "goals": 0,
                "shots_on_target": 0.7279,
                "total_shots": 1.9307,
                "expected_assists": 0.0873,
                "key_pass": 0.6497,
                "rating": 6.8226,
                "minutes": 67.03,
                "total_pass": 11.391,
                "accurate_pass": 7.1331,
                "duels_won": 2.5492,
                "total_long_balls": 0.3574,
                "accurate_long_balls": 0.0052,
                "total_opp_half_passes": 8.5747,
                "accurate_opp_half_passes": 4.7245,
                "crosses_total": 0.9217,
                "crosses_accurate": 0.1661,
                "touches": 22.2927,
                "possession_lost": 8.5295,
                "dispossessed": 0.6939,
                "duels_lost": 4.0273,
                "aerial_lost": 1.1782,
                "total_contest": 1.5863,
                "won_contest": 0.5631,
                "ball_recovery": 1.3179,
                "challenges_lost": 0.3916,
                "fouls": 0.8889,
                "fouls_drawn": 0.638,
                "assist_rate": 0.2595,
                "assists": 0,
                "interceptions": 0.3654,
                "tackles_won": 0.3248,
                "tackles": 0.3979,
                "clearances": 0.4169,
                "blocks": 0.0831,
                "big_chances_created": 0.2049,
                "big_chances_missed": 0.286,
                "xgot": 0.3905,
                "offsides": 0.2169,
                "ball_carries": 6.7366,
                "total_progression": 27.1052,
                "progressive_carries": 1.4486,
                "shots_off_target": 1.2028,
                "duel_xg_multiplier": 0.8195,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Mamadou Sarr, Jon Martin",
                "opponent_faced": "Mamadou Sarr, Jon Martin",
                "antagonist_source": "attacking_duel",
                "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": 1.729,
                "squad_xg_sum": 1.0016,
                "squad_xa_sum": 0.7085,
                "team_expected_assists": 1.2231,
                "team_xa_to_xg_ratio": 0.7074,
                "bench_appearance_weighted": true,
                "xg_scale": 1.7263,
                "xa_scale": 1.7263,
                "opponent_lambda": 1.255,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.2584,
                  "after": 0.4461
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0506,
                  "after": 0.0873
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 80.0)",
              "stats": {
                "expected_goals": 0.4461,
                "goal_rate": 0.3382,
                "goals": 0,
                "shots_on_target": 0.7279,
                "total_shots": 1.9307,
                "expected_assists": 0.0873,
                "key_pass": 0.6497,
                "rating": 6.8226,
                "minutes": 67.03,
                "total_pass": 11.391,
                "accurate_pass": 7.1331,
                "duels_won": 2.5492,
                "total_long_balls": 0.3574,
                "accurate_long_balls": 0.0052,
                "total_opp_half_passes": 8.5747,
                "accurate_opp_half_passes": 4.7245,
                "crosses_total": 0.9217,
                "crosses_accurate": 0.1661,
                "touches": 22.2927,
                "possession_lost": 8.5295,
                "dispossessed": 0.6939,
                "duels_lost": 4.0273,
                "aerial_lost": 1.1782,
                "total_contest": 1.5863,
                "won_contest": 0.5631,
                "ball_recovery": 1.3179,
                "challenges_lost": 0.3916,
                "fouls": 0.8889,
                "fouls_drawn": 0.638,
                "assist_rate": 0.2595,
                "assists": 0,
                "interceptions": 0.3654,
                "tackles_won": 0.3248,
                "tackles": 0.3979,
                "clearances": 0.4169,
                "blocks": 0.0831,
                "big_chances_created": 0.2049,
                "big_chances_missed": 0.286,
                "xgot": 0.3905,
                "offsides": 0.2169,
                "ball_carries": 6.7366,
                "total_progression": 27.1052,
                "progressive_carries": 1.4486,
                "shots_off_target": 1.2028,
                "duel_xg_multiplier": 0.8195,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Mamadou Sarr, Jon Martin",
                "opponent_faced": "Mamadou Sarr, Jon Martin",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 1.25,
                "fifa_overall": 80.0
              },
              "params": {
                "match_squad_rank": 8,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 2065,
                "fifa_rank": 749.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 80.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "expected_goals": 0.4461,
                "goal_rate": 0.3382,
                "goals": 1,
                "shots_on_target": 0.7279,
                "total_shots": 1.9307,
                "expected_assists": 0.0873,
                "key_pass": 0.6497,
                "rating": 6.8226,
                "minutes": 67.03,
                "total_pass": 11.391,
                "accurate_pass": 7.1331,
                "duels_won": 2.5492,
                "total_long_balls": 0.3574,
                "accurate_long_balls": 0.0052,
                "total_opp_half_passes": 8.5747,
                "accurate_opp_half_passes": 4.7245,
                "crosses_total": 0.9217,
                "crosses_accurate": 0.1661,
                "touches": 22.2927,
                "possession_lost": 8.5295,
                "dispossessed": 0.6939,
                "duels_lost": 4.0273,
                "aerial_lost": 1.1782,
                "total_contest": 1.5863,
                "won_contest": 0.5631,
                "ball_recovery": 1.3179,
                "challenges_lost": 0.3916,
                "fouls": 0.8889,
                "fouls_drawn": 0.638,
                "assist_rate": 0.2595,
                "assists": 0,
                "interceptions": 0.3654,
                "tackles_won": 0.3248,
                "tackles": 0.3979,
                "clearances": 0.4169,
                "blocks": 0.0831,
                "big_chances_created": 0.2049,
                "big_chances_missed": 0.286,
                "xgot": 0.3905,
                "offsides": 0.2169,
                "ball_carries": 6.7366,
                "total_progression": 27.1052,
                "progressive_carries": 1.4486,
                "shots_off_target": 1.2028,
                "duel_xg_multiplier": 0.8195,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Mamadou Sarr, Jon Martin",
                "opponent_faced": "Mamadou Sarr, Jon Martin",
                "antagonist_source": "attacking_duel",
                "projected_goals": 1,
                "goal_probability": 0.3599,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 1.25,
                "fifa_overall": 80.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 2,
                "goals_allocated": 1,
                "goal_probability": 0.3599,
                "goal_rate": 0.3382,
                "scorer_weight": 0.5576,
                "squad_weight_total": 1.9109,
                "weight_share": 0.2918,
                "finishing_factor": 1.25,
                "appearance_weight": 1.0,
                "weight_rank": 1,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Iñaki Williams",
                    "weight": 0.5576,
                    "already": 0,
                    "effective_weight": 0.5576,
                    "runner_up": "Nico Williams",
                    "runner_up_effective_weight": 0.305
                  },
                  {
                    "n": 2,
                    "player": "Nico Williams",
                    "weight": 0.305,
                    "already": 0,
                    "effective_weight": 0.305,
                    "runner_up": "Álex Berenguer",
                    "runner_up_effective_weight": 0.2692
                  }
                ]
              }
            },
            {
              "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.4461,
                "goal_rate": 0.3382,
                "goals": 1,
                "shots_on_target": 0.7279,
                "total_shots": 1.9307,
                "expected_assists": 0.0873,
                "key_pass": 0.6497,
                "rating": 6.8226,
                "minutes": 67.03,
                "total_pass": 11.391,
                "accurate_pass": 7.1331,
                "duels_won": 2.5492,
                "total_long_balls": 0.3574,
                "accurate_long_balls": 0.0052,
                "total_opp_half_passes": 8.5747,
                "accurate_opp_half_passes": 4.7245,
                "crosses_total": 0.9217,
                "crosses_accurate": 0.1661,
                "touches": 22.2927,
                "possession_lost": 8.5295,
                "dispossessed": 0.6939,
                "duels_lost": 4.0273,
                "aerial_lost": 1.1782,
                "total_contest": 1.5863,
                "won_contest": 0.5631,
                "ball_recovery": 1.3179,
                "challenges_lost": 0.3916,
                "fouls": 0.8889,
                "fouls_drawn": 0.638,
                "assist_rate": 0.2595,
                "assists": 0,
                "interceptions": 0.3654,
                "tackles_won": 0.3248,
                "tackles": 0.3979,
                "clearances": 0.4169,
                "blocks": 0.0831,
                "big_chances_created": 0.2049,
                "big_chances_missed": 0.286,
                "xgot": 0.3905,
                "offsides": 0.2169,
                "ball_carries": 6.7366,
                "total_progression": 27.1052,
                "progressive_carries": 1.4486,
                "shots_off_target": 1.2028,
                "duel_xg_multiplier": 0.8195,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.8,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Mamadou Sarr, Jon Martin",
                "opponent_faced": "Mamadou Sarr, Jon Martin",
                "antagonist_source": "attacking_duel",
                "projected_goals": 1,
                "goal_probability": 0.3599,
                "projected_assists": 0,
                "assist_probability": 0.0836,
                "finishing_factor": 1.25,
                "creation_factor": 1.25,
                "fifa_overall": 80.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0836,
                "assist_rate": 0.2595,
                "provider_weight": 0.1091,
                "squad_weight_total": 1.1843,
                "weight_share": 0.0921,
                "creation_factor": 1.25,
                "appearance_weight": 1.0,
                "weight_rank": 4,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Álex Berenguer",
                    "weight": 0.2673,
                    "already": 0,
                    "effective_weight": 0.2673,
                    "runner_up": "Yuri Berchiche",
                    "runner_up_effective_weight": 0.2271
                  }
                ]
              }
            }
          ]
        }
      },
      "bench_players": {
        "Alex Padilla": {
          "player_id": 1155116,
          "position": "G",
          "position_depth": "G_BENCH",
          "is_starter": false,
          "shirt_number": 13,
          "height": 190,
          "market_value": 3100000,
          "stats": {
            "saves": 0,
            "goals_prevented": 0.0035,
            "rating": 7.0766,
            "minutes": 4,
            "total_pass": 5,
            "accurate_pass": 2,
            "total_long_balls": 4,
            "accurate_long_balls": 1,
            "touches": 6,
            "clearances": 0,
            "ball_recovery": 1,
            "high_claims": 0,
            "aerial_won": 0,
            "sweeper_actions": 0,
            "sweeper_accurate": 0,
            "saves_inside_box": 0,
            "possession_lost": 3.1862,
            "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": 0,
            "bench_appearance_probability": 0.109,
            "bench_expected_minutes": 4.4,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.105,
            "projected_substitution_game_state_adjustment": 0,
            "substitution_usage": "available_bench_not_projected_used",
            "goals": 0,
            "projected_goals": 0,
            "goal_probability": 0.0,
            "assists": 0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 69.0
          },
          "latest_10_games": [
            {
              "match_id": 14083731.0,
              "match_date": "2026-05-23",
              "home_team": "Real Madrid",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 90,
                "rating": 5.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0014,
                "total_shots": 0,
                "total_pass": 31,
                "accurate_pass": 11,
                "ball_recovery": 7,
                "saves": 4,
                "goals_prevented": -1.8191
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 5722,
            "combined_rank_score": 3995.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 1018.0,
            "sofascore_rating": 5.1,
            "sofascore_appearances": 1.0,
            "fifa_rank": 6972.0,
            "fifa_overall": 69.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 1,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 7.0766,
            "source_file": "data/player_rankings.csv",
            "player_name": "Alex Padilla",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Elmin Rastoder",
                  "ranking": 5717
                },
                {
                  "player_name": "Max Bird",
                  "ranking": 5718
                },
                {
                  "player_name": "Rob Atkinson",
                  "ranking": 5719
                },
                {
                  "player_name": "Tariq Lamptey",
                  "ranking": 5720
                },
                {
                  "player_name": "Liberato Cacace",
                  "ranking": 5721
                }
              ],
              "lower": [
                {
                  "player_name": "Jordan Beyer",
                  "ranking": 5723
                },
                {
                  "player_name": "Nathan Wood",
                  "ranking": 5724
                },
                {
                  "player_name": "Tomoki Iwata",
                  "ranking": 5725
                },
                {
                  "player_name": "Harrison Burrows",
                  "ranking": 5726
                },
                {
                  "player_name": "Pelle Mattsson",
                  "ranking": 5727
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.312,
          "history_matches": 1,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "G_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "accurateLongBalls",
              "totalOwnHalfPasses",
              "accurateOwnHalfPasses",
              "saves",
              "savedShotsFromInsideTheBox",
              "goodHighClaim",
              "punches",
              "aerialWon",
              "totalKeeperSweeper",
              "accurateKeeperSweeper",
              "totalClearance",
              "ballRecovery",
              "touches",
              "possessionLostCtrl",
              "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": 1,
            "data_confidence": 0.312,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 4.397143516617772,
            "bench_appearance_prob": 0.10896106893717145,
            "market_value_adjustment": 0.9834,
            "fbref_prior_metrics": {
              "squad": "Athletic Club",
              "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 G_service (1 historical appearances) to 4.4 expected mins (appearance prob 0.11); FBref playing time empirical prior: 0.0 sub appearances, 0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost G_service raw output over 3 target models",
              "stats": {
                "saves": 2.8738,
                "goals_prevented": 0.0234,
                "rating": 7.0766,
                "minutes": 28.5,
                "total_pass": 31.0,
                "accurate_pass": 11.0,
                "total_long_balls": 27.0,
                "accurate_long_balls": 8.0,
                "touches": 42.0,
                "clearances": 0.0,
                "ball_recovery": 7.0,
                "high_claims": 1.0,
                "aerial_won": 0.0,
                "sweeper_actions": 0.0,
                "sweeper_accurate": 0.0,
                "saves_inside_box": 2.0,
                "possession_lost": 21.0,
                "duels_won": 0.0,
                "duels_lost": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.0,
                "total_own_half_passes": 5.0,
                "accurate_own_half_passes": 3.0
              },
              "trace": {
                "model": {
                  "position_service": "G",
                  "schema_version": 5,
                  "trained_at": "2026-11-01T11:25:22.869020+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 201,
                    "rows": 7418
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-05-23",
                    "opponent": "Real Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 1.0,
                    "rating": 5.1
                  }
                ],
                "feature_row": {
                  "history_matches": 1.0,
                  "is_starting_11": 0.0,
                  "accurateOwnHalfPasses": 3.0,
                  "accurateLongBalls": 8.0,
                  "possessionLostCtrl": 21.0,
                  "goalkeeperValueNormalized": -0.8,
                  "sweeper_accuracy": 0.0,
                  "accurateKeeperSweeper": 0.0
                },
                "per_target": [
                  {
                    "target": "saves",
                    "predicted": 2.8738391399383545,
                    "model_output": 2.8738,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "save_contribution",
                        "importance": 0.0391
                      },
                      {
                        "name": "goalsPrevented",
                        "importance": 0.0375
                      },
                      {
                        "name": "savedShotsFromInsideTheBox",
                        "importance": 0.0373
                      },
                      {
                        "name": "accurateLongBalls",
                        "importance": 0.0364
                      },
                      {
                        "name": "rating",
                        "importance": 0.0359
                      }
                    ],
                    "decomposition": {
                      "base": 2.922,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1736
                        },
                        {
                          "name": "goalkeeperValueNormalized",
                          "contribution": 0.0468
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.046
                        },
                        {
                          "name": "distribution_accuracy",
                          "contribution": 0.0432
                        },
                        {
                          "name": "aerialWon",
                          "contribution": 0.0247
                        }
                      ],
                      "others": -0.0353,
                      "total": 2.8738,
                      "log_link": true,
                      "margin_base": 1.072276,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.061257
                        },
                        {
                          "name": "goalkeeperValueNormalized",
                          "margin": 0.016876
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.016336
                        },
                        {
                          "name": "distribution_accuracy",
                          "margin": 0.015082
                        },
                        {
                          "name": "aerialWon",
                          "margin": 0.008522
                        }
                      ],
                      "others_margin": -0.012186
                    }
                  },
                  {
                    "target": "goalsPrevented",
                    "predicted": 0.023359384387731552,
                    "model_output": 0.0234,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0381
                      },
                      {
                        "name": "totalOwnHalfPasses",
                        "importance": 0.0373
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0364
                      },
                      {
                        "name": "sweeper_actions_p90",
                        "importance": 0.0359
                      },
                      {
                        "name": "accurateOwnHalfPasses",
                        "importance": 0.0355
                      }
                    ],
                    "decomposition": {
                      "base": -0.0283,
                      "items": [
                        {
                          "name": "goalkeeperValueNormalized",
                          "contribution": 0.038
                        },
                        {
                          "name": "accurateKeeperSweeper",
                          "contribution": -0.0344
                        },
                        {
                          "name": "goalsPrevented",
                          "contribution": 0.0326
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": -0.0238
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.0204
                        }
                      ],
                      "others": 0.0597,
                      "total": 0.0234,
                      "log_link": false,
                      "margin_base": -0.028288,
                      "item_margins": [
                        {
                          "name": "goalkeeperValueNormalized",
                          "margin": 0.03801
                        },
                        {
                          "name": "accurateKeeperSweeper",
                          "margin": -0.034448
                        },
                        {
                          "name": "goalsPrevented",
                          "margin": 0.032649
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": -0.023839
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": -0.020409
                        }
                      ],
                      "others_margin": 0.059684
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 7.076589584350586,
                    "model_output": 7.0766,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0399
                      },
                      {
                        "name": "accurateKeeperSweeper",
                        "importance": 0.0395
                      },
                      {
                        "name": "goalkeeperValueNormalized",
                        "importance": 0.0383
                      },
                      {
                        "name": "accurateOwnHalfPasses",
                        "importance": 0.0383
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0363
                      }
                    ],
                    "decomposition": {
                      "base": 6.9871,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": 0.0313
                        },
                        {
                          "name": "goalkeeperValueNormalized",
                          "contribution": 0.0259
                        },
                        {
                          "name": "distribution_accuracy",
                          "contribution": 0.0232
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0185
                        },
                        {
                          "name": "totalOwnHalfPasses",
                          "contribution": -0.0164
                        }
                      ],
                      "others": 0.007,
                      "total": 7.0766,
                      "log_link": false,
                      "margin_base": 6.987111,
                      "item_margins": [
                        {
                          "name": "aerialWon",
                          "margin": 0.031265
                        },
                        {
                          "name": "goalkeeperValueNormalized",
                          "margin": 0.025919
                        },
                        {
                          "name": "distribution_accuracy",
                          "margin": 0.023184
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.018467
                        },
                        {
                          "name": "totalOwnHalfPasses",
                          "margin": -0.016399
                        }
                      ],
                      "others_margin": 0.007042
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "substitute",
                  "history_matches": 1,
                  "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.9834, quality 0.439)",
              "stats": {
                "saves": 2.8261,
                "goals_prevented": 0.023,
                "rating": 7.0766,
                "minutes": 28.5,
                "total_pass": 30.4854,
                "accurate_pass": 10.8174,
                "total_long_balls": 26.5518,
                "accurate_long_balls": 7.8672,
                "touches": 41.3028,
                "clearances": 0.0,
                "ball_recovery": 6.8838,
                "high_claims": 0.9834,
                "aerial_won": 0.0,
                "sweeper_actions": 0.0,
                "sweeper_accurate": 0.0,
                "saves_inside_box": 1.9668,
                "possession_lost": 20.6514,
                "duels_won": 0.0,
                "duels_lost": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.0,
                "total_own_half_passes": 4.917,
                "accurate_own_half_passes": 2.9502
              },
              "params": {
                "market_value_eur": 3100000,
                "quality_factor": 0.4387,
                "boost_factor": 0.9834,
                "reference_quality": 0.505,
                "history_matches": 1,
                "history_shrink": 0.8333,
                "market_value_known": true
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 28.5 to 4.4 expected minutes (appearance prob 0.11)",
              "stats": {
                "saves": 0.436,
                "goals_prevented": 0.0035,
                "rating": 7.0766,
                "minutes": 4.4,
                "total_pass": 4.7035,
                "accurate_pass": 1.669,
                "total_long_balls": 4.0966,
                "accurate_long_balls": 1.2138,
                "touches": 6.3724,
                "clearances": 0.0,
                "ball_recovery": 1.0621,
                "high_claims": 0.1517,
                "aerial_won": 0.0,
                "sweeper_actions": 0.0,
                "sweeper_accurate": 0.0,
                "saves_inside_box": 0.3034,
                "possession_lost": 3.1862,
                "duels_won": 0.0,
                "duels_lost": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.0,
                "total_own_half_passes": 0.7586,
                "accurate_own_half_passes": 0.4552,
                "bench_appearance_probability": 0.109,
                "bench_expected_minutes": 4.4
              },
              "params": {
                "expected_minutes": 4.4,
                "projection_minutes": 28.5,
                "minutes_scale": 0.1543,
                "appearance_probability": 0.109
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "saves": 0.436,
                "goals_prevented": 0.0035,
                "rating": 7.0766,
                "minutes": 4.4,
                "total_pass": 4.7035,
                "accurate_pass": 1.669,
                "total_long_balls": 4.0966,
                "accurate_long_balls": 1.2138,
                "touches": 6.3724,
                "clearances": 0.0,
                "ball_recovery": 1.0621,
                "high_claims": 0.1517,
                "aerial_won": 0.0,
                "sweeper_actions": 0.0,
                "sweeper_accurate": 0.0,
                "saves_inside_box": 0.3034,
                "possession_lost": 3.1862,
                "duels_won": 0.0,
                "duels_lost": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.0,
                "total_own_half_passes": 0.7586,
                "accurate_own_half_passes": 0.4552,
                "bench_appearance_probability": 0.109,
                "bench_expected_minutes": 4.4
              },
              "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.436,
                "goals_prevented": 0.0035,
                "rating": 7.0766,
                "minutes": 4.4,
                "total_pass": 4.7035,
                "accurate_pass": 1.669,
                "total_long_balls": 4.0966,
                "accurate_long_balls": 1.2138,
                "touches": 6.3724,
                "clearances": 0.0,
                "ball_recovery": 1.0621,
                "high_claims": 0.1517,
                "aerial_won": 0.0,
                "sweeper_actions": 0.0,
                "sweeper_accurate": 0.0,
                "saves_inside_box": 0.3034,
                "possession_lost": 3.1862,
                "duels_won": 0.0,
                "duels_lost": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.0,
                "total_own_half_passes": 0.7586,
                "accurate_own_half_passes": 0.4552,
                "bench_appearance_probability": 0.109,
                "bench_expected_minutes": 4.4,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.105,
                "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": 2,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 69.0)",
              "stats": {
                "saves": 0.436,
                "goals_prevented": 0.0035,
                "rating": 7.0766,
                "minutes": 4.4,
                "total_pass": 4.7035,
                "accurate_pass": 1.669,
                "total_long_balls": 4.0966,
                "accurate_long_balls": 1.2138,
                "touches": 6.3724,
                "clearances": 0.0,
                "ball_recovery": 1.0621,
                "high_claims": 0.1517,
                "aerial_won": 0.0,
                "sweeper_actions": 0.0,
                "sweeper_accurate": 0.0,
                "saves_inside_box": 0.3034,
                "possession_lost": 3.1862,
                "duels_won": 0.0,
                "duels_lost": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.0,
                "total_own_half_passes": 0.7586,
                "accurate_own_half_passes": 0.4552,
                "bench_appearance_probability": 0.109,
                "bench_expected_minutes": 4.4,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.105,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "available_bench_not_projected_used",
                "goals": 0,
                "projected_goals": 0,
                "goal_probability": 0.0,
                "assists": 0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 69.0
              },
              "params": {
                "match_squad_rank": 1,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 5722,
                "fifa_rank": 6972.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 69.0
              }
            }
          ]
        },
        "Aitor Paredes": {
          "player_id": 959872,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 4,
          "height": 186,
          "market_value": 7100000,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 1,
            "aerial_won": 0,
            "total_shots": 0,
            "rating": 6.8616,
            "minutes": 14,
            "total_pass": 9,
            "accurate_pass": 9,
            "duels_won": 1,
            "total_long_balls": 2,
            "accurate_long_balls": 1,
            "total_own_half_passes": 6,
            "accurate_own_half_passes": 6,
            "total_opp_half_passes": 3,
            "accurate_opp_half_passes": 2,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 12,
            "possession_lost": 0.5013,
            "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.001,
            "goals": 0,
            "assist_rate": 0.0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0006,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 3,
            "total_progression": 6,
            "progressive_carries": 0,
            "key_pass": 0,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.221,
            "bench_expected_minutes": 13.77,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.105,
            "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": 16421081.0,
              "match_date": "2026-10-25",
              "home_team": "Athletic Club",
              "away_team": "Getafe",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Getafe",
              "stats": {
                "minutes": 48,
                "rating": 7.0,
                "expected_assists": 0.0108,
                "total_shots": 0,
                "total_pass": 43,
                "accurate_pass": 41,
                "key_pass": 1,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 17122851.0,
              "match_date": "2026-10-21",
              "home_team": "Levante UD",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 9,
                "rating": 6.4,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0011,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "total_pass": 13,
                "accurate_pass": 12,
                "tackles": 0,
                "tackles_won": 0,
                "interceptions": 0,
                "clearances": 1,
                "aerial_won": 0,
                "duels_won": 0,
                "ball_recovery": 2,
                "saves": 0
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421074.0,
              "match_date": "2026-10-17",
              "home_team": "Valencia",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Valencia",
              "stats": {
                "minutes": 90,
                "rating": 7.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0174,
                "total_shots": 0,
                "total_pass": 79,
                "accurate_pass": 73,
                "tackles": 1,
                "interceptions": 2,
                "clearances": 2,
                "aerial_won": 3,
                "duels_won": 4,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416337.0,
              "match_date": "2026-09-19",
              "home_team": "Athletic Club",
              "away_team": "Deportivo Alavés",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 90,
                "rating": 8.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0264,
                "total_shots": 0,
                "total_pass": 96,
                "accurate_pass": 96,
                "key_pass": 1,
                "tackles": 1,
                "interceptions": 1,
                "clearances": 7,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 8
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416317.0,
              "match_date": "2026-09-05",
              "home_team": "Athletic Club",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 45,
                "rating": 7.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0012,
                "total_shots": 0,
                "total_pass": 22,
                "accurate_pass": 21,
                "tackles": 2,
                "clearances": 4,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416308.0,
              "match_date": "2026-08-30",
              "home_team": "Celta Vigo",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 90,
                "rating": 7.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0084,
                "total_shots": 0,
                "total_pass": 58,
                "accurate_pass": 49,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 7,
                "aerial_won": 3,
                "duels_won": 4,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416301.0,
              "match_date": "2026-08-22",
              "home_team": "Athletic Club",
              "away_team": "Sevilla",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 74,
                "rating": 7.5,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.2616,
                "expected_assists": 0.0216,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 70,
                "accurate_pass": 61,
                "key_pass": 1,
                "tackles": 3,
                "tackles_won": 2,
                "clearances": 5,
                "aerial_won": 3,
                "duels_won": 7,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083731.0,
              "match_date": "2026-05-23",
              "home_team": "Real Madrid",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 90,
                "rating": 5.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0009,
                "total_shots": 0,
                "total_pass": 27,
                "accurate_pass": 23,
                "interceptions": 2,
                "clearances": 4,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083242.0,
              "match_date": "2026-04-25",
              "home_team": "Atlético Madrid",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 90,
                "rating": 7.3,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0921,
                "expected_assists": 0.0096,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 71,
                "accurate_pass": 67,
                "key_pass": 1,
                "clearances": 2,
                "aerial_won": 2,
                "duels_won": 3,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083454.0,
              "match_date": "2026-02-15",
              "home_team": "Real Oviedo",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Real Oviedo",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.096,
                "expected_assists": 0.0026,
                "total_shots": 2,
                "shots_off_target": 2,
                "total_pass": 32,
                "accurate_pass": 27,
                "tackles": 1,
                "interceptions": 1,
                "clearances": 4,
                "aerial_won": 2,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 1702,
            "combined_rank_score": 690.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 138.0,
            "sofascore_rating": 7.35,
            "sofascore_appearances": 2.0,
            "fifa_rank": 1243.0,
            "fifa_overall": 78.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 7,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.8616,
            "source_file": "data/player_rankings.csv",
            "player_name": "Aitor Paredes",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Vicente Álvarez",
                  "ranking": 1697
                },
                {
                  "player_name": "Matías Cavalleri",
                  "ranking": 1698
                },
                {
                  "player_name": "Arthur Theate",
                  "ranking": 1699
                },
                {
                  "player_name": "Javokhir Kakhramonov",
                  "ranking": 1700
                },
                {
                  "player_name": "Wilson Odobert",
                  "ranking": 1701
                }
              ],
              "lower": [
                {
                  "player_name": "Danny Welbeck",
                  "ranking": 1703
                },
                {
                  "player_name": "Angeliño",
                  "ranking": 1704
                },
                {
                  "player_name": "Park Kyu-Min",
                  "ranking": 1705
                },
                {
                  "player_name": "Valentín Vidal",
                  "ranking": 1706
                },
                {
                  "player_name": "Tyler Adams",
                  "ranking": 1707
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.768,
          "history_matches": 26,
          "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": 26,
            "data_confidence": 0.768,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 13.771804972390745,
            "bench_appearance_prob": 0.221,
            "market_value_adjustment": 0.9992,
            "fbref_prior_metrics": {
              "squad": "Athletic Club",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 2.0,
              "sub_appearances": 0.0,
              "goals_per90": 0.5555555555555556,
              "assists_per90": 0.0,
              "prior_reliability": 0.12
            },
            "rationale": "Bench projection scaled from XGBoost D_service (26 historical appearances) to 13.8 expected mins (appearance prob 0.22); FBref playing time empirical prior: 0.0 sub appearances, 0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 7 target models",
              "stats": {
                "interceptions": 0.3437,
                "tackles": 0.4035,
                "tackles_won": 0.2542,
                "clearances": 1.7135,
                "aerial_won": 0.6728,
                "total_shots": 0.2231,
                "rating": 6.8616,
                "minutes": 19.74,
                "total_pass": 13.1652,
                "accurate_pass": 12.4461,
                "duels_won": 0.9417,
                "total_long_balls": 2.7104,
                "accurate_long_balls": 1.9913,
                "total_own_half_passes": 9.2303,
                "accurate_own_half_passes": 8.8999,
                "total_opp_half_passes": 3.9349,
                "accurate_opp_half_passes": 3.5462,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 16.8173,
                "possession_lost": 0.7191,
                "dispossessed": 0.0,
                "duels_lost": 0.0,
                "aerial_lost": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 1.3887,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0009,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 3.7687,
                "total_progression": 9.0051,
                "progressive_carries": 0.0,
                "key_pass": 0.0,
                "shots_off_target": 0.2231
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 6,
                  "trained_at": "2026-11-01T11:26:13.602980+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 631,
                    "rows": 22117
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-25",
                    "opponent": "Getafe",
                    "minutes": 48.0,
                    "is_starting": true,
                    "weight": 0.1522,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-10-21",
                    "opponent": "Levante UD",
                    "minutes": 9.0,
                    "is_starting": false,
                    "weight": 0.1294,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-10-17",
                    "opponent": "Valencia",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.11,
                    "rating": 7.4
                  },
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Deportivo Alavés",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0935,
                    "rating": 8.0
                  },
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Atlético Madrid",
                    "minutes": 45.0,
                    "is_starting": false,
                    "weight": 0.0795,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Celta Vigo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0675,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Sevilla",
                    "minutes": 74.0,
                    "is_starting": true,
                    "weight": 0.0574,
                    "rating": 7.5
                  },
                  {
                    "match_date": "2026-05-23",
                    "opponent": "Real Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0488,
                    "rating": 5.6
                  },
                  {
                    "match_date": "2026-04-25",
                    "opponent": "Atlético Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0415,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-02-15",
                    "opponent": "Real Oviedo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0353,
                    "rating": 6.4
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 0.0,
                  "totalClearance": 3.5577,
                  "aerialWon": 1.4425,
                  "totalClearance_p90": 5.2978,
                  "totalTackle": 0.8373,
                  "totalTackle_p90": 1.0959
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.34365859627723694,
                    "model_output": 0.3437,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2892
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0467
                      },
                      {
                        "name": "touches",
                        "importance": 0.0285
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0256
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0216
                      }
                    ],
                    "decomposition": {
                      "base": 0.8711,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.4886
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.0119
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0103
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": 0.0089
                        },
                        {
                          "name": "interceptionWon_p90",
                          "contribution": -0.0066
                        }
                      ],
                      "others": -0.0189,
                      "total": 0.3437,
                      "log_link": true,
                      "margin_base": -0.137969,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.823007
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": -0.031582
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.0282
                        },
                        {
                          "name": "ballRecovery_p90",
                          "margin": 0.024468
                        },
                        {
                          "name": "interceptionWon_p90",
                          "margin": -0.018151
                        }
                      ],
                      "others_margin": -0.053666
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 0.4034891426563263,
                    "model_output": 0.4035,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2446
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0686
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0555
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0437
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0249
                      }
                    ],
                    "decomposition": {
                      "base": 1.3875,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.7334
                        },
                        {
                          "name": "challengeLost",
                          "contribution": -0.0392
                        },
                        {
                          "name": "totalTackle",
                          "contribution": -0.035
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": -0.0307
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.0278
                        }
                      ],
                      "others": -0.1179,
                      "total": 0.4035,
                      "log_link": true,
                      "margin_base": 0.327503,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.752022
                        },
                        {
                          "name": "challengeLost",
                          "margin": -0.061733
                        },
                        {
                          "name": "totalTackle",
                          "margin": -0.058542
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": -0.054389
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": -0.052034
                        }
                      ],
                      "others_margin": -0.256389
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.2542358934879303,
                    "model_output": 0.2542,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1951
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0637
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0498
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0427
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0237
                      }
                    ],
                    "decomposition": {
                      "base": 0.8482,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.4604
                        },
                        {
                          "name": "challengeLost",
                          "contribution": -0.0257
                        },
                        {
                          "name": "totalTackle",
                          "contribution": -0.0238
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0137
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": -0.011
                        }
                      ],
                      "others": -0.0594,
                      "total": 0.2542,
                      "log_link": true,
                      "margin_base": -0.164613,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.782599
                        },
                        {
                          "name": "challengeLost",
                          "margin": -0.068595
                        },
                        {
                          "name": "totalTackle",
                          "margin": -0.068111
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.041358
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": -0.034356
                        }
                      ],
                      "others_margin": -0.20986
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 1.713509440422058,
                    "model_output": 1.7135,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2927
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.1441
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.033
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0239
                      }
                    ],
                    "decomposition": {
                      "base": 3.4157,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -2.0673
                        },
                        {
                          "name": "totalClearance",
                          "contribution": 0.1251
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": 0.1327
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.075
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.076
                        }
                      ],
                      "others": -0.0437,
                      "total": 1.7135,
                      "log_link": true,
                      "margin_base": 1.228383,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.929432
                        },
                        {
                          "name": "totalClearance",
                          "margin": 0.088688
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": 0.086255
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.04561
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.044189
                        }
                      ],
                      "others_margin": -0.025149
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.6728231310844421,
                    "model_output": 0.6728,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1566
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.1557
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0794
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0422
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.027
                      }
                    ],
                    "decomposition": {
                      "base": 1.3697,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.7308
                        },
                        {
                          "name": "aerialWon",
                          "contribution": 0.0278
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0266
                        },
                        {
                          "name": "aerialLost",
                          "contribution": -0.0202
                        },
                        {
                          "name": "press_vulnerability",
                          "contribution": 0.0141
                        }
                      ],
                      "others": -0.0144,
                      "total": 0.6728,
                      "log_link": true,
                      "margin_base": 0.314594,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.762597
                        },
                        {
                          "name": "aerialWon",
                          "margin": 0.042569
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.03919
                        },
                        {
                          "name": "aerialLost",
                          "margin": -0.029599
                        },
                        {
                          "name": "press_vulnerability",
                          "margin": 0.020662
                        }
                      ],
                      "others_margin": -0.021092
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.22308962047100067,
                    "model_output": 0.2231,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0952
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0683
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.0339
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0311
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.4812,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1951
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0812
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": 0.0247
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0152
                        },
                        {
                          "name": "rating",
                          "contribution": 0.0103
                        }
                      ],
                      "others": -0.0016,
                      "total": 0.2231,
                      "log_link": false,
                      "margin_base": 0.481248,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.19508
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.081195
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": 0.024682
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.015196
                        },
                        {
                          "name": "rating",
                          "margin": 0.010342
                        }
                      ],
                      "others_margin": -0.001711
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.861647129058838,
                    "model_output": 6.8616,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "accuratePass",
                        "importance": 0.0681
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.063
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.057
                      },
                      {
                        "name": "rating",
                        "importance": 0.0377
                      },
                      {
                        "name": "touches",
                        "importance": 0.0302
                      }
                    ],
                    "decomposition": {
                      "base": 6.7988,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0402
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.027
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0191
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0188
                        },
                        {
                          "name": "rating",
                          "contribution": 0.0119
                        }
                      ],
                      "others": 0.0262,
                      "total": 6.8616,
                      "log_link": false,
                      "margin_base": 6.798781,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.040243
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.027016
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.019135
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.018781
                        },
                        {
                          "name": "rating",
                          "margin": 0.011872
                        }
                      ],
                      "others_margin": 0.026304
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "substitute",
                  "history_matches": 26,
                  "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.9992, quality 0.488)",
              "stats": {
                "interceptions": 0.3434,
                "tackles": 0.4032,
                "tackles_won": 0.254,
                "clearances": 1.7121,
                "aerial_won": 0.6723,
                "total_shots": 0.2229,
                "rating": 6.8616,
                "minutes": 19.74,
                "total_pass": 13.1547,
                "accurate_pass": 12.4361,
                "duels_won": 0.9409,
                "total_long_balls": 2.7082,
                "accurate_long_balls": 1.9897,
                "total_own_half_passes": 9.2229,
                "accurate_own_half_passes": 8.8928,
                "total_opp_half_passes": 3.9318,
                "accurate_opp_half_passes": 3.5434,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 16.8038,
                "possession_lost": 0.7185,
                "dispossessed": 0.0,
                "duels_lost": 0.0,
                "aerial_lost": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 1.3876,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0009,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 3.7657,
                "total_progression": 8.9979,
                "progressive_carries": 0.0,
                "key_pass": 0.0,
                "shots_off_target": 0.2229
              },
              "params": {
                "market_value_eur": 7100000,
                "quality_factor": 0.4878,
                "boost_factor": 0.9992,
                "reference_quality": 0.505,
                "history_matches": 26,
                "history_shrink": 0.1613,
                "market_value_known": true
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0126)",
              "stats": {
                "interceptions": 0.3406,
                "tackles": 0.4032,
                "tackles_won": 0.2539,
                "clearances": 1.7121,
                "aerial_won": 0.6723,
                "total_shots": 0.2216,
                "rating": 6.8616,
                "minutes": 19.74,
                "total_pass": 13.1547,
                "accurate_pass": 12.4361,
                "duels_won": 0.9409,
                "total_long_balls": 2.7082,
                "accurate_long_balls": 1.9897,
                "total_own_half_passes": 9.2229,
                "accurate_own_half_passes": 8.8928,
                "total_opp_half_passes": 3.9318,
                "accurate_opp_half_passes": 3.5434,
                "crosses_total": 0.0031,
                "crosses_accurate": 0.0,
                "touches": 16.8038,
                "possession_lost": 0.7185,
                "dispossessed": 0.0,
                "duels_lost": 0.0,
                "aerial_lost": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 1.3876,
                "challenges_lost": 0.0,
                "fouls": 0.0046,
                "fouls_drawn": 0.0015,
                "blocks": 0.0,
                "goals": 0.0015,
                "goal_rate": 0.0015,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0009,
                "shots_on_target": 0.0015,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 3.7657,
                "total_progression": 8.9979,
                "progressive_carries": 0.0,
                "key_pass": 0.0,
                "shots_off_target": 0.2229
              },
              "params": {
                "blend_weight": 0.0126,
                "history_matches": 26,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.2193,
                "prior_reliability": 0.12,
                "competition": "La Liga",
                "squad": "Athletic Club"
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 19.7 to 13.8 expected minutes (appearance prob 0.22)",
              "stats": {
                "interceptions": 0.2376,
                "tackles": 0.2813,
                "tackles_won": 0.1771,
                "clearances": 1.1945,
                "aerial_won": 0.469,
                "total_shots": 0.1566,
                "rating": 6.8616,
                "minutes": 13.77,
                "total_pass": 9.1775,
                "accurate_pass": 8.6762,
                "duels_won": 0.6564,
                "total_long_balls": 1.8894,
                "accurate_long_balls": 1.3881,
                "total_own_half_passes": 6.4344,
                "accurate_own_half_passes": 6.2041,
                "total_opp_half_passes": 2.7431,
                "accurate_opp_half_passes": 2.4721,
                "crosses_total": 0.0022,
                "crosses_accurate": 0.0,
                "touches": 11.7233,
                "possession_lost": 0.5013,
                "dispossessed": 0.0,
                "duels_lost": 0.0,
                "aerial_lost": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 0.9681,
                "challenges_lost": 0.0,
                "fouls": 0.0032,
                "fouls_drawn": 0.001,
                "blocks": 0.0,
                "goals": 0.001,
                "goal_rate": 0.001,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0006,
                "shots_on_target": 0.001,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 2.6272,
                "total_progression": 6.2775,
                "progressive_carries": 0.0,
                "key_pass": 0.0,
                "shots_off_target": 0.1555,
                "bench_appearance_probability": 0.221,
                "bench_expected_minutes": 13.77
              },
              "params": {
                "expected_minutes": 13.77,
                "projection_minutes": 19.74,
                "minutes_scale": 0.6977,
                "appearance_probability": 0.221
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 0.2376,
                "tackles": 0.2813,
                "tackles_won": 0.1771,
                "clearances": 1.1945,
                "aerial_won": 0.469,
                "total_shots": 0.1566,
                "rating": 6.8616,
                "minutes": 13.77,
                "total_pass": 9.1775,
                "accurate_pass": 8.6762,
                "duels_won": 0.6564,
                "total_long_balls": 1.8894,
                "accurate_long_balls": 1.3881,
                "total_own_half_passes": 6.4344,
                "accurate_own_half_passes": 6.2041,
                "total_opp_half_passes": 2.7431,
                "accurate_opp_half_passes": 2.4721,
                "crosses_total": 0.0022,
                "crosses_accurate": 0.0,
                "touches": 11.7233,
                "possession_lost": 0.5013,
                "dispossessed": 0.0,
                "duels_lost": 0.0,
                "aerial_lost": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 0.9681,
                "challenges_lost": 0.0,
                "fouls": 0.0032,
                "fouls_drawn": 0.001,
                "blocks": 0.0,
                "goals": 0.001,
                "goal_rate": 0.001,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0006,
                "shots_on_target": 0.001,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 2.6272,
                "total_progression": 6.2775,
                "progressive_carries": 0.0,
                "key_pass": 0.0,
                "shots_off_target": 0.1555,
                "bench_appearance_probability": 0.221,
                "bench_expected_minutes": 13.77
              },
              "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.2376,
                "tackles": 0.2813,
                "tackles_won": 0.1771,
                "clearances": 1.1945,
                "aerial_won": 0.469,
                "total_shots": 0.1566,
                "rating": 6.8616,
                "minutes": 13.77,
                "total_pass": 9.1775,
                "accurate_pass": 8.6762,
                "duels_won": 0.6564,
                "total_long_balls": 1.8894,
                "accurate_long_balls": 1.3881,
                "total_own_half_passes": 6.4344,
                "accurate_own_half_passes": 6.2041,
                "total_opp_half_passes": 2.7431,
                "accurate_opp_half_passes": 2.4721,
                "crosses_total": 0.0022,
                "crosses_accurate": 0.0,
                "touches": 11.7233,
                "possession_lost": 0.5013,
                "dispossessed": 0.0,
                "duels_lost": 0.0,
                "aerial_lost": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 0.9681,
                "challenges_lost": 0.0,
                "fouls": 0.0032,
                "fouls_drawn": 0.001,
                "blocks": 0.0,
                "goal_rate": 0.001,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0006,
                "shots_on_target": 0.001,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 2.6272,
                "total_progression": 6.2775,
                "progressive_carries": 0.0,
                "key_pass": 0.0,
                "shots_off_target": 0.1555,
                "bench_appearance_probability": 0.221,
                "bench_expected_minutes": 13.77,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.105,
                "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.221,
                "projected_substitutes": 2,
                "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 78.0)",
              "stats": {
                "interceptions": 0.2376,
                "tackles": 0.2813,
                "tackles_won": 0.1771,
                "clearances": 1.1945,
                "aerial_won": 0.469,
                "total_shots": 0.1566,
                "rating": 6.8616,
                "minutes": 13.77,
                "total_pass": 9.1775,
                "accurate_pass": 8.6762,
                "duels_won": 0.6564,
                "total_long_balls": 1.8894,
                "accurate_long_balls": 1.3881,
                "total_own_half_passes": 6.4344,
                "accurate_own_half_passes": 6.2041,
                "total_opp_half_passes": 2.7431,
                "accurate_opp_half_passes": 2.4721,
                "crosses_total": 0.0022,
                "crosses_accurate": 0.0,
                "touches": 11.7233,
                "possession_lost": 0.5013,
                "dispossessed": 0.0,
                "duels_lost": 0.0,
                "aerial_lost": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 0.9681,
                "challenges_lost": 0.0,
                "fouls": 0.0032,
                "fouls_drawn": 0.001,
                "blocks": 0.0,
                "goal_rate": 0.001,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0006,
                "shots_on_target": 0.001,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 2.6272,
                "total_progression": 6.2775,
                "progressive_carries": 0.0,
                "key_pass": 0.0,
                "shots_off_target": 0.1555,
                "bench_appearance_probability": 0.221,
                "bench_expected_minutes": 13.77,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.105,
                "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": 7,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 1702,
                "fifa_rank": 1243.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 78.0
              }
            }
          ]
        },
        "Jesús Areso": {
          "player_id": 910267,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 12,
          "height": 183,
          "market_value": 5500000,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 0,
            "aerial_won": 0,
            "total_shots": 0,
            "rating": 6.7002,
            "minutes": 14,
            "total_pass": 9,
            "accurate_pass": 8,
            "duels_won": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 3,
            "accurate_own_half_passes": 3,
            "total_opp_half_passes": 6,
            "accurate_opp_half_passes": 5,
            "crosses_total": 1,
            "crosses_accurate": 0,
            "touches": 14,
            "possession_lost": 2.9989,
            "dispossessed": 0.2242,
            "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.0013,
            "expected_assists": 0.022,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0008,
            "ball_carries": 5,
            "total_progression": 28,
            "progressive_carries": 0,
            "key_pass": 0,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.219,
            "bench_expected_minutes": 13.69,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.105,
            "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": 80.0
          },
          "latest_10_games": [
            {
              "match_id": 16421074.0,
              "match_date": "2026-10-17",
              "home_team": "Valencia",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Valencia",
              "stats": {
                "minutes": 27,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.031,
                "total_shots": 0,
                "total_pass": 22,
                "accurate_pass": 20,
                "interceptions": 1,
                "aerial_won": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416337.0,
              "match_date": "2026-09-19",
              "home_team": "Athletic Club",
              "away_team": "Deportivo Alavés",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 45,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0149,
                "expected_assists": 0.1023,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 40,
                "accurate_pass": 37,
                "key_pass": 1,
                "interceptions": 1,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416322.0,
              "match_date": "2026-09-12",
              "home_team": "Athletic Club",
              "away_team": "Elche",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Elche",
              "stats": {
                "minutes": 65,
                "rating": 5.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0189,
                "total_shots": 0,
                "total_pass": 31,
                "accurate_pass": 25,
                "tackles": 3,
                "tackles_won": 1,
                "interceptions": 3,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416317.0,
              "match_date": "2026-09-05",
              "home_team": "Athletic Club",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 90,
                "rating": 7.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0227,
                "total_shots": 0,
                "total_pass": 34,
                "accurate_pass": 21,
                "key_pass": 1,
                "tackles": 4,
                "tackles_won": 3,
                "interceptions": 2,
                "clearances": 4,
                "aerial_won": 5,
                "duels_won": 9,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416308.0,
              "match_date": "2026-08-30",
              "home_team": "Celta Vigo",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 86,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.1085,
                "total_shots": 0,
                "total_pass": 29,
                "accurate_pass": 24,
                "key_pass": 2,
                "clearances": 2,
                "duels_won": 2,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416301.0,
              "match_date": "2026-08-22",
              "home_team": "Athletic Club",
              "away_team": "Sevilla",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 58,
                "rating": 5.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0696,
                "expected_assists": 0.0773,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 22,
                "accurate_pass": 19,
                "key_pass": 2,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083629.0,
              "match_date": "2026-05-13",
              "home_team": "Espanyol",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 71,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0463,
                "total_shots": 0,
                "total_pass": 20,
                "accurate_pass": 17,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 7,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083364.0,
              "match_date": "2026-05-02",
              "home_team": "Deportivo Alavés",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 17,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0029,
                "total_shots": 0,
                "total_pass": 4,
                "accurate_pass": 3,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14081813.0,
              "match_date": "2026-04-05",
              "home_team": "Getafe",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Getafe",
              "stats": {
                "minutes": 26,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0424,
                "total_shots": 0,
                "total_pass": 26,
                "accurate_pass": 18,
                "key_pass": 1,
                "interceptions": 1,
                "clearances": 1,
                "aerial_won": 2,
                "duels_won": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083632.0,
              "match_date": "2026-03-14",
              "home_team": "Girona FC",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Girona FC",
              "stats": {
                "minutes": 45,
                "rating": 5.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0406,
                "total_shots": 0,
                "total_pass": 25,
                "accurate_pass": 23,
                "key_pass": 1,
                "interceptions": 1,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 1711,
            "combined_rank_score": 696.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 698.0,
            "sofascore_rating": 6.7,
            "sofascore_appearances": 26.0,
            "fifa_rank": 694.0,
            "fifa_overall": 80.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 16,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.7002,
            "source_file": "data/player_rankings.csv",
            "player_name": "Jesús Areso",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Valentín Vidal",
                  "ranking": 1706
                },
                {
                  "player_name": "Tyler Adams",
                  "ranking": 1707
                },
                {
                  "player_name": "Ryu Jun-sun",
                  "ranking": 1708
                },
                {
                  "player_name": "Dan Burn",
                  "ranking": 1709
                },
                {
                  "player_name": "Mingueza",
                  "ranking": 1710
                }
              ],
              "lower": [
                {
                  "player_name": "Si-heon Lee",
                  "ranking": 1712
                },
                {
                  "player_name": "Ignacio Jeraldino",
                  "ranking": 1713
                },
                {
                  "player_name": "Augusto Aguirre",
                  "ranking": 1714
                },
                {
                  "player_name": "Adnan Januzaj",
                  "ranking": 1715
                },
                {
                  "player_name": "Cho Jin-hyuk",
                  "ranking": 1716
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.766,
          "history_matches": 32,
          "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": 32,
            "data_confidence": 0.766,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 13.694547134573863,
            "bench_appearance_prob": 0.219,
            "market_value_adjustment": 0.9985,
            "fbref_prior_metrics": {
              "squad": "Athletic Club",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 2.0,
              "sub_appearances": 0.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "prior_reliability": 0.1067
            },
            "rationale": "Bench projection scaled from XGBoost D_service (32 historical appearances) to 13.7 expected mins (appearance prob 0.22); FBref playing time empirical prior: 0.0 sub appearances, 0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 7 target models",
              "stats": {
                "interceptions": 0.4941,
                "tackles": 0.6492,
                "tackles_won": 0.3739,
                "clearances": 0.723,
                "aerial_won": 0.545,
                "total_shots": 0.1882,
                "rating": 6.7002,
                "minutes": 27.56,
                "total_pass": 18.9148,
                "accurate_pass": 16.4745,
                "duels_won": 1.8142,
                "total_long_balls": 0.5427,
                "accurate_long_balls": 0.276,
                "total_own_half_passes": 6.3805,
                "accurate_own_half_passes": 5.8517,
                "total_opp_half_passes": 12.5343,
                "accurate_opp_half_passes": 10.6228,
                "crosses_total": 1.7942,
                "crosses_accurate": 0.3029,
                "touches": 28.5126,
                "possession_lost": 6.0444,
                "dispossessed": 0.2245,
                "duels_lost": 1.1031,
                "aerial_lost": 0.1544,
                "total_contest": 0.7444,
                "won_contest": 0.2223,
                "ball_recovery": 0.7696,
                "challenges_lost": 0.1027,
                "fouls": 0.0994,
                "fouls_drawn": 0.1208,
                "blocks": 0.028,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0027,
                "expected_assists": 0.0444,
                "shots_on_target": 0.1421,
                "big_chances_created": 0.0467,
                "xgot": 0.0017,
                "ball_carries": 9.0937,
                "total_progression": 56.1797,
                "progressive_carries": 0.9513,
                "key_pass": 0.6017,
                "shots_off_target": 0.0461
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 6,
                  "trained_at": "2026-11-01T11:26:13.602980+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 631,
                    "rows": 22117
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-17",
                    "opponent": "Valencia",
                    "minutes": 27.0,
                    "is_starting": false,
                    "weight": 0.1508,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Deportivo Alavés",
                    "minutes": 45.0,
                    "is_starting": false,
                    "weight": 0.1282,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Elche",
                    "minutes": 65.0,
                    "is_starting": true,
                    "weight": 0.109,
                    "rating": 5.6
                  },
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Atlético Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0926,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Celta Vigo",
                    "minutes": 86.0,
                    "is_starting": true,
                    "weight": 0.0787,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Sevilla",
                    "minutes": 58.0,
                    "is_starting": true,
                    "weight": 0.0669,
                    "rating": 5.6
                  },
                  {
                    "match_date": "2026-05-13",
                    "opponent": "Espanyol",
                    "minutes": 71.0,
                    "is_starting": true,
                    "weight": 0.0569,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-05-02",
                    "opponent": "Deportivo Alavés",
                    "minutes": 17.0,
                    "is_starting": false,
                    "weight": 0.0484,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-04-05",
                    "opponent": "Getafe",
                    "minutes": 26.0,
                    "is_starting": false,
                    "weight": 0.0411,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-03-14",
                    "opponent": "Girona FC",
                    "minutes": 45.0,
                    "is_starting": false,
                    "weight": 0.0349,
                    "rating": 5.9
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 0.0,
                  "totalClearance": 1.404,
                  "aerialWon": 1.2736,
                  "totalClearance_p90": 2.1406,
                  "totalTackle": 1.0296,
                  "totalTackle_p90": 1.5536
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.4940817058086395,
                    "model_output": 0.4941,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2892
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0467
                      },
                      {
                        "name": "touches",
                        "importance": 0.0285
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0256
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0216
                      }
                    ],
                    "decomposition": {
                      "base": 0.8711,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.4684
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": 0.0349
                        },
                        {
                          "name": "interceptionWon_p90",
                          "contribution": 0.025
                        },
                        {
                          "name": "aerial_dominance",
                          "contribution": 0.0234
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": 0.0182
                        }
                      ],
                      "others": -0.0101,
                      "total": 0.4941,
                      "log_link": true,
                      "margin_base": -0.137969,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.771639
                        },
                        {
                          "name": "interceptionWon",
                          "margin": 0.083162
                        },
                        {
                          "name": "interceptionWon_p90",
                          "margin": 0.055476
                        },
                        {
                          "name": "aerial_dominance",
                          "margin": 0.049363
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": 0.036741
                        }
                      ],
                      "others_margin": -0.020188
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 0.6492387056350708,
                    "model_output": 0.6492,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2446
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0686
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0555
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0437
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0249
                      }
                    ],
                    "decomposition": {
                      "base": 1.3875,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.7599
                        },
                        {
                          "name": "challengeLost",
                          "contribution": -0.038
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": 0.0309
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": 0.022
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0203
                        }
                      ],
                      "others": 0.027,
                      "total": 0.6492,
                      "log_link": true,
                      "margin_base": 0.327503,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.793289
                        },
                        {
                          "name": "challengeLost",
                          "margin": -0.06239
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": 0.051135
                        },
                        {
                          "name": "ballRecovery_p90",
                          "margin": 0.034777
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.032063
                        }
                      ],
                      "others_margin": 0.042373
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.37392768263816833,
                    "model_output": 0.3739,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1951
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0637
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0498
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0427
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0237
                      }
                    ],
                    "decomposition": {
                      "base": 0.8482,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.475
                        },
                        {
                          "name": "challengeLost",
                          "contribution": -0.0246
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0127
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0125
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": 0.0118
                        }
                      ],
                      "others": 0.0133,
                      "total": 0.3739,
                      "log_link": true,
                      "margin_base": -0.164613,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.820929
                        },
                        {
                          "name": "challengeLost",
                          "margin": -0.06806
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.035784
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.035338
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": 0.033157
                        }
                      ],
                      "others_margin": 0.036307
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 0.722974419593811,
                    "model_output": 0.723,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2927
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.1441
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.033
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0239
                      }
                    ],
                    "decomposition": {
                      "base": 3.4157,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -2.1644
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.2852
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.0909
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0583
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0508
                        }
                      ],
                      "others": -0.0431,
                      "total": 0.723,
                      "log_link": true,
                      "margin_base": 1.228383,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -1.004233
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.258668
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": -0.098786
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.068875
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.064258
                        }
                      ],
                      "others_margin": -0.057943
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.5450448393821716,
                    "model_output": 0.545,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1566
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.1557
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0794
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0422
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.027
                      }
                    ],
                    "decomposition": {
                      "base": 1.3697,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.7173
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0668
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0462
                        },
                        {
                          "name": "aerialLost",
                          "contribution": -0.0377
                        },
                        {
                          "name": "aerialWon",
                          "contribution": 0.0261
                        }
                      ],
                      "others": 0.0172,
                      "total": 0.545,
                      "log_link": true,
                      "margin_base": 0.314594,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.741701
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.108079
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.082095
                        },
                        {
                          "name": "aerialLost",
                          "margin": -0.072412
                        },
                        {
                          "name": "aerialWon",
                          "margin": 0.050692
                        }
                      ],
                      "others_margin": 0.032114
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.18818002939224243,
                    "model_output": 0.1882,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0952
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0683
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.0339
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0311
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.4812,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1803
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0956
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0164
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": 0.0139
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": 0.0104
                        }
                      ],
                      "others": -0.025,
                      "total": 0.1882,
                      "log_link": false,
                      "margin_base": 0.481248,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.180343
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.095634
                        },
                        {
                          "name": "rating",
                          "margin": -0.016363
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": 0.013902
                        },
                        {
                          "name": "progressive_carries_p90",
                          "margin": 0.010355
                        }
                      ],
                      "others_margin": -0.024986
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.700150012969971,
                    "model_output": 6.7002,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "accuratePass",
                        "importance": 0.0681
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.063
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.057
                      },
                      {
                        "name": "rating",
                        "importance": 0.0377
                      },
                      {
                        "name": "touches",
                        "importance": 0.0302
                      }
                    ],
                    "decomposition": {
                      "base": 6.7988,
                      "items": [
                        {
                          "name": "rating",
                          "contribution": -0.0231
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0211
                        },
                        {
                          "name": "errorLeadToAGoal",
                          "contribution": -0.0166
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0162
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0141
                        }
                      ],
                      "others": -0.0076,
                      "total": 6.7001,
                      "log_link": false,
                      "margin_base": 6.798781,
                      "item_margins": [
                        {
                          "name": "rating",
                          "margin": -0.023093
                        },
                        {
                          "name": "is_starting_11",
                          "margin": -0.021149
                        },
                        {
                          "name": "errorLeadToAGoal",
                          "margin": -0.016587
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.016242
                        },
                        {
                          "name": "totalPass",
                          "margin": -0.014077
                        }
                      ],
                      "others_margin": -0.007484
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "substitute",
                  "history_matches": 32,
                  "role_matches": 14,
                  "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.9985, quality 0.468)",
              "stats": {
                "interceptions": 0.4933,
                "tackles": 0.6483,
                "tackles_won": 0.3734,
                "clearances": 0.7219,
                "aerial_won": 0.5442,
                "total_shots": 0.1879,
                "rating": 6.7002,
                "minutes": 27.56,
                "total_pass": 18.8864,
                "accurate_pass": 16.4498,
                "duels_won": 1.8115,
                "total_long_balls": 0.5419,
                "accurate_long_balls": 0.2756,
                "total_own_half_passes": 6.3709,
                "accurate_own_half_passes": 5.8429,
                "total_opp_half_passes": 12.5155,
                "accurate_opp_half_passes": 10.6069,
                "crosses_total": 1.7915,
                "crosses_accurate": 0.3024,
                "touches": 28.4698,
                "possession_lost": 6.0353,
                "dispossessed": 0.2242,
                "duels_lost": 1.1014,
                "aerial_lost": 0.1542,
                "total_contest": 0.7433,
                "won_contest": 0.222,
                "ball_recovery": 0.7684,
                "challenges_lost": 0.1025,
                "fouls": 0.0993,
                "fouls_drawn": 0.1206,
                "blocks": 0.028,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0027,
                "expected_assists": 0.0443,
                "shots_on_target": 0.1419,
                "big_chances_created": 0.0466,
                "xgot": 0.0017,
                "ball_carries": 9.0801,
                "total_progression": 56.0954,
                "progressive_carries": 0.9499,
                "key_pass": 0.6008,
                "shots_off_target": 0.046
              },
              "params": {
                "market_value_eur": 5500000,
                "quality_factor": 0.4683,
                "boost_factor": 0.9985,
                "reference_quality": 0.505,
                "history_matches": 32,
                "history_shrink": 0.1351,
                "market_value_known": true
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0094)",
              "stats": {
                "interceptions": 0.4905,
                "tackles": 0.6483,
                "tackles_won": 0.3717,
                "clearances": 0.7219,
                "aerial_won": 0.5442,
                "total_shots": 0.1879,
                "rating": 6.7002,
                "minutes": 27.56,
                "total_pass": 18.8864,
                "accurate_pass": 16.4498,
                "duels_won": 1.8115,
                "total_long_balls": 0.5419,
                "accurate_long_balls": 0.2756,
                "total_own_half_passes": 6.3709,
                "accurate_own_half_passes": 5.8429,
                "total_opp_half_passes": 12.5155,
                "accurate_opp_half_passes": 10.6069,
                "crosses_total": 1.7855,
                "crosses_accurate": 0.3024,
                "touches": 28.4698,
                "possession_lost": 6.0353,
                "dispossessed": 0.2242,
                "duels_lost": 1.1014,
                "aerial_lost": 0.1542,
                "total_contest": 0.7433,
                "won_contest": 0.222,
                "ball_recovery": 0.7684,
                "challenges_lost": 0.1025,
                "fouls": 0.102,
                "fouls_drawn": 0.1249,
                "blocks": 0.028,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0027,
                "expected_assists": 0.0443,
                "shots_on_target": 0.1406,
                "big_chances_created": 0.0466,
                "xgot": 0.0017,
                "ball_carries": 9.0801,
                "total_progression": 56.0954,
                "progressive_carries": 0.9499,
                "key_pass": 0.6008,
                "shots_off_target": 0.046
              },
              "params": {
                "blend_weight": 0.0094,
                "history_matches": 32,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.3062,
                "prior_reliability": 0.1067,
                "competition": "La Liga",
                "squad": "Athletic Club"
              },
              "changes": [
                {
                  "stat": "totalCross",
                  "before": 1.7915,
                  "after": 1.7855
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 27.6 to 13.7 expected minutes (appearance prob 0.22)",
              "stats": {
                "interceptions": 0.2437,
                "tackles": 0.3221,
                "tackles_won": 0.1847,
                "clearances": 0.3587,
                "aerial_won": 0.2704,
                "total_shots": 0.0934,
                "rating": 6.7002,
                "minutes": 13.69,
                "total_pass": 9.3846,
                "accurate_pass": 8.1739,
                "duels_won": 0.9001,
                "total_long_balls": 0.2693,
                "accurate_long_balls": 0.1369,
                "total_own_half_passes": 3.1657,
                "accurate_own_half_passes": 2.9033,
                "total_opp_half_passes": 6.2189,
                "accurate_opp_half_passes": 5.2706,
                "crosses_total": 0.8872,
                "crosses_accurate": 0.1503,
                "touches": 14.1466,
                "possession_lost": 2.9989,
                "dispossessed": 0.2242,
                "duels_lost": 0.5473,
                "aerial_lost": 0.1542,
                "total_contest": 0.3693,
                "won_contest": 0.1103,
                "ball_recovery": 0.3818,
                "challenges_lost": 0.1025,
                "fouls": 0.0507,
                "fouls_drawn": 0.0621,
                "blocks": 0.0139,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0013,
                "expected_assists": 0.022,
                "shots_on_target": 0.0699,
                "big_chances_created": 0.0232,
                "xgot": 0.0008,
                "ball_carries": 4.5119,
                "total_progression": 27.8738,
                "progressive_carries": 0.472,
                "key_pass": 0.2985,
                "shots_off_target": 0.0229,
                "bench_appearance_probability": 0.219,
                "bench_expected_minutes": 13.69
              },
              "params": {
                "expected_minutes": 13.69,
                "projection_minutes": 27.56,
                "minutes_scale": 0.4969,
                "appearance_probability": 0.219
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 0.2437,
                "tackles": 0.3221,
                "tackles_won": 0.1847,
                "clearances": 0.3587,
                "aerial_won": 0.2704,
                "total_shots": 0.0934,
                "rating": 6.7002,
                "minutes": 13.69,
                "total_pass": 9.3846,
                "accurate_pass": 8.1739,
                "duels_won": 0.9001,
                "total_long_balls": 0.2693,
                "accurate_long_balls": 0.1369,
                "total_own_half_passes": 3.1657,
                "accurate_own_half_passes": 2.9033,
                "total_opp_half_passes": 6.2189,
                "accurate_opp_half_passes": 5.2706,
                "crosses_total": 0.8872,
                "crosses_accurate": 0.1503,
                "touches": 14.1466,
                "possession_lost": 2.9989,
                "dispossessed": 0.2242,
                "duels_lost": 0.5473,
                "aerial_lost": 0.1542,
                "total_contest": 0.3693,
                "won_contest": 0.1103,
                "ball_recovery": 0.3818,
                "challenges_lost": 0.1025,
                "fouls": 0.0507,
                "fouls_drawn": 0.0621,
                "blocks": 0.0139,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0013,
                "expected_assists": 0.022,
                "shots_on_target": 0.0699,
                "big_chances_created": 0.0232,
                "xgot": 0.0008,
                "ball_carries": 4.5119,
                "total_progression": 27.8738,
                "progressive_carries": 0.472,
                "key_pass": 0.2985,
                "shots_off_target": 0.0229,
                "bench_appearance_probability": 0.219,
                "bench_expected_minutes": 13.69
              },
              "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.2437,
                "tackles": 0.3221,
                "tackles_won": 0.1847,
                "clearances": 0.3587,
                "aerial_won": 0.2704,
                "total_shots": 0.0934,
                "rating": 6.7002,
                "minutes": 13.69,
                "total_pass": 9.3846,
                "accurate_pass": 8.1739,
                "duels_won": 0.9001,
                "total_long_balls": 0.2693,
                "accurate_long_balls": 0.1369,
                "total_own_half_passes": 3.1657,
                "accurate_own_half_passes": 2.9033,
                "total_opp_half_passes": 6.2189,
                "accurate_opp_half_passes": 5.2706,
                "crosses_total": 0.8872,
                "crosses_accurate": 0.1503,
                "touches": 14.1466,
                "possession_lost": 2.9989,
                "dispossessed": 0.2242,
                "duels_lost": 0.5473,
                "aerial_lost": 0.1542,
                "total_contest": 0.3693,
                "won_contest": 0.1103,
                "ball_recovery": 0.3818,
                "challenges_lost": 0.1025,
                "fouls": 0.0507,
                "fouls_drawn": 0.0621,
                "blocks": 0.0139,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0013,
                "expected_assists": 0.022,
                "shots_on_target": 0.0699,
                "big_chances_created": 0.0232,
                "xgot": 0.0008,
                "ball_carries": 4.5119,
                "total_progression": 27.8738,
                "progressive_carries": 0.472,
                "key_pass": 0.2985,
                "shots_off_target": 0.0229,
                "bench_appearance_probability": 0.219,
                "bench_expected_minutes": 13.69,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.105,
                "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.219,
                "projected_substitutes": 2,
                "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 80.0)",
              "stats": {
                "interceptions": 0.2437,
                "tackles": 0.3221,
                "tackles_won": 0.1847,
                "clearances": 0.3587,
                "aerial_won": 0.2704,
                "total_shots": 0.0934,
                "rating": 6.7002,
                "minutes": 13.69,
                "total_pass": 9.3846,
                "accurate_pass": 8.1739,
                "duels_won": 0.9001,
                "total_long_balls": 0.2693,
                "accurate_long_balls": 0.1369,
                "total_own_half_passes": 3.1657,
                "accurate_own_half_passes": 2.9033,
                "total_opp_half_passes": 6.2189,
                "accurate_opp_half_passes": 5.2706,
                "crosses_total": 0.8872,
                "crosses_accurate": 0.1503,
                "touches": 14.1466,
                "possession_lost": 2.9989,
                "dispossessed": 0.2242,
                "duels_lost": 0.5473,
                "aerial_lost": 0.1542,
                "total_contest": 0.3693,
                "won_contest": 0.1103,
                "ball_recovery": 0.3818,
                "challenges_lost": 0.1025,
                "fouls": 0.0507,
                "fouls_drawn": 0.0621,
                "blocks": 0.0139,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0013,
                "expected_assists": 0.022,
                "shots_on_target": 0.0699,
                "big_chances_created": 0.0232,
                "xgot": 0.0008,
                "ball_carries": 4.5119,
                "total_progression": 27.8738,
                "progressive_carries": 0.472,
                "key_pass": 0.2985,
                "shots_off_target": 0.0229,
                "bench_appearance_probability": 0.219,
                "bench_expected_minutes": 13.69,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.105,
                "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": 80.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": 1711,
                "fifa_rank": 694.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 80.0
              }
            }
          ]
        },
        "Oihan Sancet": {
          "player_id": 966801,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 8,
          "height": 188,
          "market_value": 24000000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.0616,
            "assist_rate": 0.0882,
            "assists": 0,
            "expected_goals": 0.0627,
            "goal_rate": 0.0901,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "rating": 6.7935,
            "minutes": 23,
            "total_pass": 8,
            "accurate_pass": 7,
            "duels_won": 2,
            "total_long_balls": 1,
            "accurate_long_balls": 1,
            "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": 15,
            "possession_lost": 3.6454,
            "dispossessed": 0.9315,
            "duels_lost": 3,
            "aerial_won": 1,
            "aerial_lost": 1,
            "interceptions": 0,
            "tackles_won": 1,
            "tackles": 1,
            "clearances": 0,
            "total_contest": 1,
            "won_contest": 0,
            "challenges_lost": 1,
            "fouls": 1,
            "fouls_drawn": 1,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.1555,
            "ball_carries": 5,
            "total_progression": 21,
            "progressive_carries": 1,
            "shots_off_target": 1,
            "bench_appearance_probability": 0.326,
            "bench_expected_minutes": 22.89,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.105,
            "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": 16416337.0,
              "match_date": "2026-09-19",
              "home_team": "Athletic Club",
              "away_team": "Deportivo Alavés",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 90,
                "rating": 6.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.8114,
                "expected_assists": 0.0161,
                "total_shots": 2,
                "shots_on_target": 1,
                "total_pass": 25,
                "accurate_pass": 20,
                "key_pass": 1,
                "tackles": 1,
                "duels_won": 4,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416322.0,
              "match_date": "2026-09-12",
              "home_team": "Athletic Club",
              "away_team": "Elche",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Elche",
              "stats": {
                "minutes": 90,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.2131,
                "expected_assists": 0.9174,
                "total_shots": 4,
                "shots_off_target": 4,
                "total_pass": 30,
                "accurate_pass": 27,
                "key_pass": 3,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416317.0,
              "match_date": "2026-09-05",
              "home_team": "Athletic Club",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 90,
                "rating": 7.8,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.5786,
                "expected_assists": 0.0169,
                "total_shots": 3,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 23,
                "accurate_pass": 16,
                "key_pass": 1,
                "duels_won": 6,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416308.0,
              "match_date": "2026-08-30",
              "home_team": "Celta Vigo",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 65,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.4254,
                "expected_assists": 0.0529,
                "total_shots": 3,
                "shots_on_target": 2,
                "shots_off_target": 1,
                "total_pass": 24,
                "accurate_pass": 19,
                "duels_won": 1,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421059.0,
              "match_date": "2026-08-27",
              "home_team": "FC Barcelona",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "FC Barcelona",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1759,
                "expected_assists": 0.0188,
                "total_shots": 2,
                "shots_off_target": 2,
                "total_pass": 19,
                "accurate_pass": 12,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "aerial_won": 4,
                "duels_won": 8,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416301.0,
              "match_date": "2026-08-22",
              "home_team": "Athletic Club",
              "away_team": "Sevilla",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.3757,
                "expected_assists": 0.1728,
                "total_shots": 3,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 36,
                "accurate_pass": 31,
                "key_pass": 3,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "aerial_won": 2,
                "duels_won": 10,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083539.0,
              "match_date": "2026-05-10",
              "home_team": "Athletic Club",
              "away_team": "Valencia",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Valencia",
              "stats": {
                "minutes": 65,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.2265,
                "expected_assists": 0.1649,
                "total_shots": 3,
                "shots_off_target": 1,
                "total_pass": 16,
                "accurate_pass": 9,
                "key_pass": 1,
                "tackles": 3,
                "tackles_won": 3,
                "interceptions": 1,
                "aerial_won": 1,
                "duels_won": 6,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083364.0,
              "match_date": "2026-05-02",
              "home_team": "Deportivo Alavés",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 45,
                "rating": 8.0,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0684,
                "expected_assists": 0.0246,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 19,
                "accurate_pass": 19,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 1,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083242.0,
              "match_date": "2026-04-25",
              "home_team": "Atlético Madrid",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 27,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0256,
                "expected_assists": 0.0078,
                "total_shots": 1,
                "total_pass": 9,
                "accurate_pass": 8,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083258.0,
              "match_date": "2026-04-21",
              "home_team": "Athletic Club",
              "away_team": "Osasuna",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 25,
                "rating": 7.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0153,
                "total_shots": 0,
                "total_pass": 6,
                "accurate_pass": 6,
                "tackles": 3,
                "tackles_won": 1,
                "aerial_won": 1,
                "duels_won": 7,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 2326,
            "combined_rank_score": 1044.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 845.0,
            "sofascore_rating": 6.5786,
            "sofascore_appearances": 28.0,
            "fifa_rank": 1244.0,
            "fifa_overall": 78.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 11,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.7935,
            "source_file": "data/player_rankings.csv",
            "player_name": "Oihan Sancet",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Sunnatilla Poyonov",
                  "ranking": 2321
                },
                {
                  "player_name": "Claudio Torres",
                  "ranking": 2322
                },
                {
                  "player_name": "Lars Traber",
                  "ranking": 2323
                },
                {
                  "player_name": "Adem Zorgane",
                  "ranking": 2324
                },
                {
                  "player_name": "Matteo Ruggeri",
                  "ranking": 2325
                }
              ],
              "lower": [
                {
                  "player_name": "Dušan Tadić",
                  "ranking": 2327
                },
                {
                  "player_name": "Christian Eriksen",
                  "ranking": 2328
                },
                {
                  "player_name": "Yerko Leiva",
                  "ranking": 2329
                },
                {
                  "player_name": "Sergiño Dest",
                  "ranking": 2330
                },
                {
                  "player_name": "Kosta Barbarouses",
                  "ranking": 2331
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.777,
          "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.777,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 22.88735814265611,
            "bench_appearance_prob": 0.326,
            "market_value_adjustment": 1.0063,
            "fbref_prior_metrics": {
              "squad": "Athletic Club",
              "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.18
            },
            "rationale": "Bench projection scaled from XGBoost M_service (34 historical appearances) to 22.9 expected mins (appearance prob 0.33); FBref playing time empirical prior: 0.0 sub appearances, 0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 0.7096,
                "expected_assists": 0.085,
                "assists": 0.1238,
                "assist_rate": 0.1238,
                "expected_goals": 0.0866,
                "goals": 0.1263,
                "goal_rate": 0.1263,
                "shots_on_target": 0.2857,
                "total_shots": 1.0599,
                "rating": 6.7935,
                "minutes": 31.81,
                "total_pass": 11.1377,
                "accurate_pass": 10.0685,
                "duels_won": 3.4141,
                "total_long_balls": 1.0996,
                "accurate_long_balls": 0.8482,
                "total_own_half_passes": 3.2733,
                "accurate_own_half_passes": 2.915,
                "total_opp_half_passes": 7.8644,
                "accurate_opp_half_passes": 7.1535,
                "crosses_total": 1.1546,
                "crosses_accurate": 0.2958,
                "touches": 20.0851,
                "possession_lost": 5.0349,
                "dispossessed": 0.9257,
                "duels_lost": 3.5348,
                "aerial_won": 0.792,
                "aerial_lost": 0.6319,
                "interceptions": 0.0,
                "tackles_won": 0.7264,
                "tackles": 1.3152,
                "clearances": 0.2137,
                "total_contest": 0.9811,
                "won_contest": 0.4148,
                "challenges_lost": 0.5627,
                "fouls": 0.8482,
                "fouls_drawn": 0.8921,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.1479,
                "xgot": 0.2147,
                "ball_carries": 7.2443,
                "total_progression": 29.5319,
                "progressive_carries": 0.7049,
                "shots_off_target": 0.7742
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 7,
                  "trained_at": "2026-11-01T11:27:07.750726+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 905,
                    "rows": 25067
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Deportivo Alavés",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1506,
                    "rating": 6.0
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Elche",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.128,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Atlético Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1088,
                    "rating": 7.8
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Celta Vigo",
                    "minutes": 65.0,
                    "is_starting": true,
                    "weight": 0.0925,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "FC Barcelona",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0786,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Sevilla",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0668,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-05-10",
                    "opponent": "Valencia",
                    "minutes": 65.0,
                    "is_starting": true,
                    "weight": 0.0568,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-05-02",
                    "opponent": "Deportivo Alavés",
                    "minutes": 45.0,
                    "is_starting": false,
                    "weight": 0.0483,
                    "rating": 8.0
                  },
                  {
                    "match_date": "2026-04-25",
                    "opponent": "Atlético Madrid",
                    "minutes": 27.0,
                    "is_starting": false,
                    "weight": 0.041,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-04-21",
                    "opponent": "Osasuna",
                    "minutes": 25.0,
                    "is_starting": false,
                    "weight": 0.0349,
                    "rating": 7.2
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 0.0,
                  "totalShots": 2.3505,
                  "creative_index": 0.5838,
                  "expectedGoals": 0.3555,
                  "expectedAssists": 0.1651,
                  "keyPass": 1.2118
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.7096068859100342,
                    "model_output": 0.7096,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1578
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1373
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0712
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0516
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0289
                      }
                    ],
                    "decomposition": {
                      "base": 0.8902,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.3877
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0633
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0498
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0412
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0418
                        }
                      ],
                      "others": 0.011,
                      "total": 0.7096,
                      "log_link": true,
                      "margin_base": -0.116298,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.57179
                        },
                        {
                          "name": "creative_index",
                          "margin": 0.118606
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.084371
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.064851
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.061679
                        }
                      ],
                      "others_margin": 0.015537
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.08502861112356186,
                    "model_output": 0.085,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1181
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.1136
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.1034
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0572
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0473
                      }
                    ],
                    "decomposition": {
                      "base": 0.0847,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0346
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0091
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.009
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.007
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0059
                        }
                      ],
                      "others": 0.0157,
                      "total": 0.085,
                      "log_link": true,
                      "margin_base": -2.468924,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.525179
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.166597
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.142193
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.097801
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.081229
                        }
                      ],
                      "others_margin": 0.203972
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.12376569956541061,
                    "model_output": 0.1238,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0627
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0445
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0417
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0324
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0293
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0139
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0112
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0123
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": 0.0114
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0096
                        }
                      ],
                      "others": 0.0273,
                      "total": 0.1238,
                      "log_link": true,
                      "margin_base": -2.463472,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.17863
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.145638
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.1389
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": 0.113563
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.094791
                        }
                      ],
                      "others_margin": 0.249428
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.08659824728965759,
                    "model_output": 0.0866,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedGoals",
                        "importance": 0.1255
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0756
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0438
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0265
                      }
                    ],
                    "decomposition": {
                      "base": 0.0918,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0462
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0193
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0134
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.005
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0045
                        }
                      ],
                      "others": 0.0078,
                      "total": 0.0866,
                      "log_link": true,
                      "margin_base": -2.387963,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.698827
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.352671
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.187777
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.061758
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": -0.055467
                        }
                      ],
                      "others_margin": 0.093574
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.1263412982225418,
                    "model_output": 0.1263,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0923
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.067
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.041
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0334
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.0946,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0435
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0235
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0166
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.0115
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0063
                        }
                      ],
                      "others": 0.0173,
                      "total": 0.1263,
                      "log_link": true,
                      "margin_base": -2.358385,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.615973
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.378001
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.200813
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": 0.119031
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.059401
                        }
                      ],
                      "others_margin": 0.148343
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.2857159376144409,
                    "model_output": 0.2857,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.117
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0884
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0772
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0315
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0258
                      }
                    ],
                    "decomposition": {
                      "base": 0.3179,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.161
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.04
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0385
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0222
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": 0.0135
                        }
                      ],
                      "others": 0.0146,
                      "total": 0.2857,
                      "log_link": true,
                      "margin_base": -1.146086,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.706322
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.226898
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.178759
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.09018
                        },
                        {
                          "name": "interceptionWon",
                          "margin": 0.050979
                        }
                      ],
                      "others_margin": 0.052836
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.0598746538162231,
                    "model_output": 1.0599,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1349
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1208
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0462
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.044
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0312
                      }
                    ],
                    "decomposition": {
                      "base": 0.9849,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.6229
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.5001
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.07
                        },
                        {
                          "name": "goalAssist",
                          "contribution": -0.0564
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0463
                        }
                      ],
                      "others": 0.1379,
                      "total": 1.0599,
                      "log_link": false,
                      "margin_base": 0.984935,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.622857
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.50006
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.069977
                        },
                        {
                          "name": "goalAssist",
                          "margin": -0.056397
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.046259
                        }
                      ],
                      "others_margin": 0.137897
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.793503284454346,
                    "model_output": 6.7935,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "rating",
                        "importance": 0.0864
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0749
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0486
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0482
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 6.8574,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0977
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0402
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0227
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0219
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0131
                        }
                      ],
                      "others": -0.0203,
                      "total": 6.7935,
                      "log_link": false,
                      "margin_base": 6.857404,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.097749
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.040245
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.02266
                        },
                        {
                          "name": "rating",
                          "margin": -0.021944
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.013056
                        }
                      ],
                      "others_margin": -0.020168
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "substitute",
                  "history_matches": 34,
                  "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 1.0063, quality 0.669)",
              "stats": {
                "key_pass": 0.7141,
                "expected_assists": 0.0856,
                "assists": 0.1245,
                "assist_rate": 0.1245,
                "expected_goals": 0.0871,
                "goals": 0.1271,
                "goal_rate": 0.1271,
                "shots_on_target": 0.2875,
                "total_shots": 1.0666,
                "rating": 6.7935,
                "minutes": 31.81,
                "total_pass": 11.2079,
                "accurate_pass": 10.1319,
                "duels_won": 3.4356,
                "total_long_balls": 1.1065,
                "accurate_long_balls": 0.8535,
                "total_own_half_passes": 3.2939,
                "accurate_own_half_passes": 2.9334,
                "total_opp_half_passes": 7.9139,
                "accurate_opp_half_passes": 7.1986,
                "crosses_total": 1.1619,
                "crosses_accurate": 0.2977,
                "touches": 20.2116,
                "possession_lost": 5.0666,
                "dispossessed": 0.9315,
                "duels_lost": 3.5571,
                "aerial_won": 0.797,
                "aerial_lost": 0.6359,
                "interceptions": 0.0,
                "tackles_won": 0.731,
                "tackles": 1.3235,
                "clearances": 0.215,
                "total_contest": 0.9873,
                "won_contest": 0.4174,
                "challenges_lost": 0.5662,
                "fouls": 0.8535,
                "fouls_drawn": 0.8977,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.1488,
                "xgot": 0.2161,
                "ball_carries": 7.2899,
                "total_progression": 29.718,
                "progressive_carries": 0.7093,
                "shots_off_target": 0.7791
              },
              "params": {
                "market_value_eur": 24000000,
                "quality_factor": 0.6685,
                "boost_factor": 1.0063,
                "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.0150)",
              "stats": {
                "key_pass": 0.7141,
                "expected_assists": 0.0856,
                "assists": 0.1226,
                "assist_rate": 0.1226,
                "expected_goals": 0.0871,
                "goals": 0.1252,
                "goal_rate": 0.1252,
                "shots_on_target": 0.2891,
                "total_shots": 1.0662,
                "rating": 6.7935,
                "minutes": 31.81,
                "total_pass": 11.2079,
                "accurate_pass": 10.1319,
                "duels_won": 3.4356,
                "total_long_balls": 1.1065,
                "accurate_long_balls": 0.8535,
                "total_own_half_passes": 3.2939,
                "accurate_own_half_passes": 2.9334,
                "total_opp_half_passes": 7.9139,
                "accurate_opp_half_passes": 7.1986,
                "crosses_total": 1.1484,
                "crosses_accurate": 0.2977,
                "touches": 20.2116,
                "possession_lost": 5.0666,
                "dispossessed": 0.9315,
                "duels_lost": 3.5571,
                "aerial_won": 0.797,
                "aerial_lost": 0.6359,
                "interceptions": 0.0039,
                "tackles_won": 0.722,
                "tackles": 1.3235,
                "clearances": 0.215,
                "total_contest": 0.9873,
                "won_contest": 0.4174,
                "challenges_lost": 0.5662,
                "fouls": 0.8427,
                "fouls_drawn": 0.8921,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.1488,
                "xgot": 0.2161,
                "ball_carries": 7.2899,
                "total_progression": 29.718,
                "progressive_carries": 0.7093,
                "shots_off_target": 0.7791
              },
              "params": {
                "blend_weight": 0.015,
                "history_matches": 34,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.3534,
                "prior_reliability": 0.18,
                "competition": "La Liga",
                "squad": "Athletic Club"
              },
              "changes": [
                {
                  "stat": "totalCross",
                  "before": 1.1619,
                  "after": 1.1484
                },
                {
                  "stat": "fouls",
                  "before": 0.8535,
                  "after": 0.8427
                },
                {
                  "stat": "wonTackle",
                  "before": 0.731,
                  "after": 0.722
                },
                {
                  "stat": "wasFouled",
                  "before": 0.8977,
                  "after": 0.8921
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 31.8 to 22.9 expected minutes (appearance prob 0.33)",
              "stats": {
                "key_pass": 0.5138,
                "expected_assists": 0.0616,
                "assists": 0.0882,
                "assist_rate": 0.0882,
                "expected_goals": 0.0627,
                "goals": 0.0901,
                "goal_rate": 0.0901,
                "shots_on_target": 0.208,
                "total_shots": 0.7686,
                "rating": 6.7935,
                "minutes": 22.89,
                "total_pass": 8.0641,
                "accurate_pass": 7.2899,
                "duels_won": 2.4719,
                "total_long_balls": 0.7961,
                "accurate_long_balls": 0.6141,
                "total_own_half_passes": 2.37,
                "accurate_own_half_passes": 2.1106,
                "total_opp_half_passes": 5.6941,
                "accurate_opp_half_passes": 5.1794,
                "crosses_total": 0.8263,
                "crosses_accurate": 0.2142,
                "touches": 14.5423,
                "possession_lost": 3.6454,
                "dispossessed": 0.9315,
                "duels_lost": 2.5593,
                "aerial_won": 0.5734,
                "aerial_lost": 0.6359,
                "interceptions": 0.0028,
                "tackles_won": 0.5195,
                "tackles": 0.9523,
                "clearances": 0.1547,
                "total_contest": 0.7104,
                "won_contest": 0.3003,
                "challenges_lost": 0.5662,
                "fouls": 0.6063,
                "fouls_drawn": 0.6419,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.1071,
                "xgot": 0.1555,
                "ball_carries": 5.2451,
                "total_progression": 21.3822,
                "progressive_carries": 0.5103,
                "shots_off_target": 0.5606,
                "bench_appearance_probability": 0.326,
                "bench_expected_minutes": 22.89
              },
              "params": {
                "expected_minutes": 22.89,
                "projection_minutes": 31.81,
                "minutes_scale": 0.7195,
                "appearance_probability": 0.326
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0.5138,
                "expected_assists": 0.0616,
                "assists": 0.0882,
                "assist_rate": 0.0882,
                "expected_goals": 0.0627,
                "goals": 0.0901,
                "goal_rate": 0.0901,
                "shots_on_target": 0.208,
                "total_shots": 0.7686,
                "rating": 6.7935,
                "minutes": 22.89,
                "total_pass": 8.0641,
                "accurate_pass": 7.2899,
                "duels_won": 2.4719,
                "total_long_balls": 0.7961,
                "accurate_long_balls": 0.6141,
                "total_own_half_passes": 2.37,
                "accurate_own_half_passes": 2.1106,
                "total_opp_half_passes": 5.6941,
                "accurate_opp_half_passes": 5.1794,
                "crosses_total": 0.8263,
                "crosses_accurate": 0.2142,
                "touches": 14.5423,
                "possession_lost": 3.6454,
                "dispossessed": 0.9315,
                "duels_lost": 2.5593,
                "aerial_won": 0.5734,
                "aerial_lost": 0.6359,
                "interceptions": 0.0028,
                "tackles_won": 0.5195,
                "tackles": 0.9523,
                "clearances": 0.1547,
                "total_contest": 0.7104,
                "won_contest": 0.3003,
                "challenges_lost": 0.5662,
                "fouls": 0.6063,
                "fouls_drawn": 0.6419,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.1071,
                "xgot": 0.1555,
                "ball_carries": 5.2451,
                "total_progression": 21.3822,
                "progressive_carries": 0.5103,
                "shots_off_target": 0.5606,
                "bench_appearance_probability": 0.326,
                "bench_expected_minutes": 22.89
              },
              "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.5138,
                "expected_assists": 0.0616,
                "assist_rate": 0.0882,
                "assists": 0,
                "expected_goals": 0.0627,
                "goal_rate": 0.0901,
                "goals": 0,
                "shots_on_target": 0.208,
                "total_shots": 0.7686,
                "rating": 6.7935,
                "minutes": 22.89,
                "total_pass": 8.0641,
                "accurate_pass": 7.2899,
                "duels_won": 2.4719,
                "total_long_balls": 0.7961,
                "accurate_long_balls": 0.6141,
                "total_own_half_passes": 2.37,
                "accurate_own_half_passes": 2.1106,
                "total_opp_half_passes": 5.6941,
                "accurate_opp_half_passes": 5.1794,
                "crosses_total": 0.8263,
                "crosses_accurate": 0.2142,
                "touches": 14.5423,
                "possession_lost": 3.6454,
                "dispossessed": 0.9315,
                "duels_lost": 2.5593,
                "aerial_won": 0.5734,
                "aerial_lost": 0.6359,
                "interceptions": 0.0028,
                "tackles_won": 0.5195,
                "tackles": 0.9523,
                "clearances": 0.1547,
                "total_contest": 0.7104,
                "won_contest": 0.3003,
                "challenges_lost": 0.5662,
                "fouls": 0.6063,
                "fouls_drawn": 0.6419,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.1071,
                "xgot": 0.1555,
                "ball_carries": 5.2451,
                "total_progression": 21.3822,
                "progressive_carries": 0.5103,
                "shots_off_target": 0.5606,
                "bench_appearance_probability": 0.326,
                "bench_expected_minutes": 22.89,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.105,
                "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.326,
                "projected_substitutes": 2,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 78.0)",
              "stats": {
                "key_pass": 0.5138,
                "expected_assists": 0.0616,
                "assist_rate": 0.0882,
                "assists": 0,
                "expected_goals": 0.0627,
                "goal_rate": 0.0901,
                "goals": 0,
                "shots_on_target": 0.208,
                "total_shots": 0.7686,
                "rating": 6.7935,
                "minutes": 22.89,
                "total_pass": 8.0641,
                "accurate_pass": 7.2899,
                "duels_won": 2.4719,
                "total_long_balls": 0.7961,
                "accurate_long_balls": 0.6141,
                "total_own_half_passes": 2.37,
                "accurate_own_half_passes": 2.1106,
                "total_opp_half_passes": 5.6941,
                "accurate_opp_half_passes": 5.1794,
                "crosses_total": 0.8263,
                "crosses_accurate": 0.2142,
                "touches": 14.5423,
                "possession_lost": 3.6454,
                "dispossessed": 0.9315,
                "duels_lost": 2.5593,
                "aerial_won": 0.5734,
                "aerial_lost": 0.6359,
                "interceptions": 0.0028,
                "tackles_won": 0.5195,
                "tackles": 0.9523,
                "clearances": 0.1547,
                "total_contest": 0.7104,
                "won_contest": 0.3003,
                "challenges_lost": 0.5662,
                "fouls": 0.6063,
                "fouls_drawn": 0.6419,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.1071,
                "xgot": 0.1555,
                "ball_carries": 5.2451,
                "total_progression": 21.3822,
                "progressive_carries": 0.5103,
                "shots_off_target": 0.5606,
                "bench_appearance_probability": 0.326,
                "bench_expected_minutes": 22.89,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.105,
                "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": 11,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 2326,
                "fifa_rank": 1244.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 78.0
              }
            }
          ]
        },
        "Beñat Prados": {
          "player_id": 1012409,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 6,
          "height": 179,
          "market_value": 15500000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0182,
            "assist_rate": 0.0446,
            "assists": 0,
            "expected_goals": 0.0208,
            "goal_rate": 0.0368,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 0,
            "rating": 6.7008,
            "minutes": 23,
            "total_pass": 29,
            "accurate_pass": 22,
            "duels_won": 4,
            "total_long_balls": 1,
            "accurate_long_balls": 1,
            "total_own_half_passes": 12,
            "accurate_own_half_passes": 9,
            "total_opp_half_passes": 17,
            "accurate_opp_half_passes": 12,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 38,
            "possession_lost": 9.3932,
            "dispossessed": 0.5497,
            "duels_lost": 5,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 1,
            "tackles_won": 1,
            "tackles": 2,
            "clearances": 0,
            "total_contest": 1,
            "won_contest": 1,
            "challenges_lost": 1,
            "fouls": 3,
            "fouls_drawn": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.525,
            "bench_expected_minutes": 22.56,
            "projected_substitution_order": 2,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.105,
            "projected_substitution_game_state_adjustment": 0,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0204,
            "projected_assists": 0,
            "assist_probability": 0.0179,
            "finishing_factor": 1.189,
            "creation_factor": 1.25,
            "fifa_overall": 77.0
          },
          "latest_10_games": [
            {
              "match_id": 14083167.0,
              "match_date": "2025-08-31",
              "home_team": "Real Betis",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 62,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0269,
                "expected_assists": 0.0104,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 37,
                "accurate_pass": 28,
                "key_pass": 1,
                "tackles": 3,
                "tackles_won": 2,
                "interceptions": 2,
                "aerial_won": 2,
                "duels_won": 6,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14082859.0,
              "match_date": "2025-08-25",
              "home_team": "Athletic Club",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 23,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0027,
                "total_shots": 0,
                "total_pass": 12,
                "accurate_pass": 9,
                "key_pass": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 3281,
            "combined_rank_score": 1223.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 873.0,
            "sofascore_rating": 6.55,
            "sofascore_appearances": 2.0,
            "fifa_rank": 1573.0,
            "fifa_overall": 77.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 15,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.7008,
            "source_file": "data/player_rankings.csv",
            "player_name": "Beñat Prados",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Alfonso Herrero",
                  "ranking": 3276
                },
                {
                  "player_name": "Tim Iroegbunam",
                  "ranking": 3277
                },
                {
                  "player_name": "Jaminton Campaz",
                  "ranking": 3278
                },
                {
                  "player_name": "Miguel Merentiel",
                  "ranking": 3279
                },
                {
                  "player_name": "Pep Biel",
                  "ranking": 3280
                }
              ],
              "lower": [
                {
                  "player_name": "Zlatko Tripić",
                  "ranking": 3282
                },
                {
                  "player_name": "Omari Hutchinson",
                  "ranking": 3283
                },
                {
                  "player_name": "Fabian Rieder",
                  "ranking": 3284
                },
                {
                  "player_name": "Brian Rodríguez",
                  "ranking": 3285
                },
                {
                  "player_name": "Gorrotxa",
                  "ranking": 3286
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.375,
          "history_matches": 2,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "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": 2,
            "data_confidence": 0.375,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 22.555021941280785,
            "bench_appearance_prob": 0.5252282700582175,
            "market_value_adjustment": 1.0171,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost M_service (2 historical appearances) to 22.6 expected mins (appearance prob 0.53)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 0.2445,
                "expected_assists": 0.0178,
                "assists": 0.0395,
                "assist_rate": 0.0395,
                "expected_goals": 0.0203,
                "goals": 0.0326,
                "goal_rate": 0.0326,
                "shots_on_target": 0.0738,
                "total_shots": 0.2432,
                "rating": 6.7008,
                "minutes": 20.33,
                "total_pass": 25.5135,
                "accurate_pass": 19.2703,
                "duels_won": 3.2432,
                "total_long_balls": 1.0,
                "accurate_long_balls": 0.4595,
                "total_own_half_passes": 10.8649,
                "accurate_own_half_passes": 8.3244,
                "total_opp_half_passes": 14.6486,
                "accurate_opp_half_passes": 10.9459,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 33.9189,
                "possession_lost": 8.3243,
                "dispossessed": 0.5405,
                "duels_lost": 4.1622,
                "aerial_won": 1.0811,
                "aerial_lost": 0.0,
                "interceptions": 1.0811,
                "tackles_won": 1.0811,
                "tackles": 1.6216,
                "clearances": 0.0,
                "total_contest": 1.0811,
                "won_contest": 0.5405,
                "challenges_lost": 0.5405,
                "fouls": 2.5405,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "shots_off_target": 0.1693
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 7,
                  "trained_at": "2026-11-01T11:27:07.750726+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 905,
                    "rows": 25067
                  }
                },
                "player_history": [
                  {
                    "match_date": "2025-08-31",
                    "opponent": "Real Betis",
                    "minutes": 62.0,
                    "is_starting": true,
                    "weight": 0.5405,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2025-08-25",
                    "opponent": "Rayo Vallecano",
                    "minutes": 23.0,
                    "is_starting": false,
                    "weight": 0.4595,
                    "rating": 6.5
                  }
                ],
                "feature_row": {
                  "history_matches": 2.0,
                  "is_starting_11": 0.0,
                  "totalShots": 0.5405,
                  "creative_index": 0.4041,
                  "expectedGoals": 0.0145,
                  "expectedAssists": 0.0069,
                  "keyPass": 1.0
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.24449951946735382,
                    "model_output": 0.2445,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1578
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1373
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0712
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0516
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0289
                      }
                    ],
                    "decomposition": {
                      "base": 0.8902,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.4173
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0692
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0471
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0157
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0146
                        }
                      ],
                      "others": -0.0818,
                      "total": 0.2445,
                      "log_link": true,
                      "margin_base": -0.116298,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.632469
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.158312
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.124026
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": -0.04515
                        },
                        {
                          "name": "cross_creative_contribution",
                          "margin": -0.043727
                        }
                      ],
                      "others_margin": -0.28856
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.017819957807660103,
                    "model_output": 0.0178,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1181
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.1136
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.1034
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0572
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0473
                      }
                    ],
                    "decomposition": {
                      "base": 0.0847,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0394
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.013
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0061
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0013
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0012
                        }
                      ],
                      "others": -0.0059,
                      "total": 0.0178,
                      "log_link": true,
                      "margin_base": -2.468924,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.625649
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.336747
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.210816
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.05193
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.051275
                        }
                      ],
                      "others_margin": -0.282097
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.03950326889753342,
                    "model_output": 0.0395,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0627
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0445
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0417
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0324
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0293
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.025
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0057
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0051
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0037
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.003
                        }
                      ],
                      "others": -0.0105,
                      "total": 0.0395,
                      "log_link": true,
                      "margin_base": -2.463472,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.347548
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.099371
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.098952
                        },
                        {
                          "name": "creative_index",
                          "margin": 0.071989
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.058854
                        }
                      ],
                      "others_margin": -0.235163
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.020315762609243393,
                    "model_output": 0.0203,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedGoals",
                        "importance": 0.1255
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0756
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0438
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0265
                      }
                    ],
                    "decomposition": {
                      "base": 0.0918,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0407
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0199
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0045
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0021
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0017
                        }
                      ],
                      "others": -0.0026,
                      "total": 0.0203,
                      "log_link": true,
                      "margin_base": -2.387963,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.584907
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.492127
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.156298
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.081331
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.071849
                        }
                      ],
                      "others_margin": -0.121885
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.032642096281051636,
                    "model_output": 0.0326,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0923
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.067
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.041
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0334
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.0946,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.033
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0117
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0087
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0041
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0021
                        }
                      ],
                      "others": -0.0024,
                      "total": 0.0326,
                      "log_link": true,
                      "margin_base": -2.358385,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.428547
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.210213
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.192159
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.105423
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.058373
                        }
                      ],
                      "others_margin": -0.069053
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.07382828742265701,
                    "model_output": 0.0738,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.117
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0884
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0772
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0315
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0258
                      }
                    ],
                    "decomposition": {
                      "base": 0.3179,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1428
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0417
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0194
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0114
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0094
                        }
                      ],
                      "others": -0.0194,
                      "total": 0.0738,
                      "log_link": true,
                      "margin_base": -1.146086,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.596248
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.272072
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.157222
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.104936
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.095835
                        }
                      ],
                      "others_margin": -0.233612
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.24316270649433136,
                    "model_output": 0.2432,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1349
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1208
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0462
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.044
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0312
                      }
                    ],
                    "decomposition": {
                      "base": 0.9849,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.3363
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.198
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0385
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0378
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0262
                        }
                      ],
                      "others": -0.1049,
                      "total": 0.2432,
                      "log_link": false,
                      "margin_base": 0.984935,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.336254
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.198024
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.038514
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.037847
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.026179
                        }
                      ],
                      "others_margin": -0.104955
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.7008185386657715,
                    "model_output": 6.7008,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "rating",
                        "importance": 0.0864
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0749
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0486
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0482
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 6.8574,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0924
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0325
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.009
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": -0.0056
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0052
                        }
                      ],
                      "others": -0.0119,
                      "total": 6.7008,
                      "log_link": false,
                      "margin_base": 6.857404,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.09244
                        },
                        {
                          "name": "rating",
                          "margin": -0.032527
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.009029
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": -0.005571
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.005245
                        }
                      ],
                      "others_margin": -0.011773
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "substitute",
                  "history_matches": 2,
                  "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 1.0171, quality 0.585)",
              "stats": {
                "key_pass": 0.2487,
                "expected_assists": 0.0181,
                "assists": 0.0402,
                "assist_rate": 0.0402,
                "expected_goals": 0.0207,
                "goals": 0.0332,
                "goal_rate": 0.0332,
                "shots_on_target": 0.0751,
                "total_shots": 0.2473,
                "rating": 6.7008,
                "minutes": 20.33,
                "total_pass": 25.9498,
                "accurate_pass": 19.5998,
                "duels_won": 3.2987,
                "total_long_balls": 1.0171,
                "accurate_long_balls": 0.4674,
                "total_own_half_passes": 11.0507,
                "accurate_own_half_passes": 8.4667,
                "total_opp_half_passes": 14.8991,
                "accurate_opp_half_passes": 11.1331,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 34.4989,
                "possession_lost": 8.4666,
                "dispossessed": 0.5497,
                "duels_lost": 4.2334,
                "aerial_won": 1.0996,
                "aerial_lost": 0.0,
                "interceptions": 1.0996,
                "tackles_won": 1.0996,
                "tackles": 1.6493,
                "clearances": 0.0,
                "total_contest": 1.0996,
                "won_contest": 0.5497,
                "challenges_lost": 0.5497,
                "fouls": 2.5839,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "shots_off_target": 0.1722
              },
              "params": {
                "market_value_eur": 15500000,
                "quality_factor": 0.5846,
                "boost_factor": 1.0171,
                "reference_quality": 0.505,
                "history_matches": 2,
                "history_shrink": 0.7143,
                "market_value_known": true
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 20.3 to 22.6 expected minutes (appearance prob 0.53)",
              "stats": {
                "key_pass": 0.2759,
                "expected_assists": 0.0201,
                "assists": 0.0446,
                "assist_rate": 0.0446,
                "expected_goals": 0.023,
                "goals": 0.0368,
                "goal_rate": 0.0368,
                "shots_on_target": 0.0833,
                "total_shots": 0.2744,
                "rating": 6.7008,
                "minutes": 22.56,
                "total_pass": 28.7899,
                "accurate_pass": 21.7449,
                "duels_won": 3.6597,
                "total_long_balls": 1.1284,
                "accurate_long_balls": 0.5186,
                "total_own_half_passes": 12.2601,
                "accurate_own_half_passes": 9.3933,
                "total_opp_half_passes": 16.5297,
                "accurate_opp_half_passes": 12.3516,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 38.2746,
                "possession_lost": 9.3932,
                "dispossessed": 0.5497,
                "duels_lost": 4.6967,
                "aerial_won": 1.2199,
                "aerial_lost": 0.0,
                "interceptions": 1.2199,
                "tackles_won": 1.2199,
                "tackles": 1.8298,
                "clearances": 0.0,
                "total_contest": 1.2199,
                "won_contest": 0.6099,
                "challenges_lost": 0.5497,
                "fouls": 2.8667,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "shots_off_target": 0.191,
                "bench_appearance_probability": 0.525,
                "bench_expected_minutes": 22.56
              },
              "params": {
                "expected_minutes": 22.56,
                "projection_minutes": 20.33,
                "minutes_scale": 1.1094,
                "appearance_probability": 0.525
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0.2759,
                "expected_assists": 0.0201,
                "assists": 0.0446,
                "assist_rate": 0.0446,
                "expected_goals": 0.023,
                "goals": 0.0368,
                "goal_rate": 0.0368,
                "shots_on_target": 0.0833,
                "total_shots": 0.2744,
                "rating": 6.7008,
                "minutes": 22.56,
                "total_pass": 28.7899,
                "accurate_pass": 21.7449,
                "duels_won": 3.6597,
                "total_long_balls": 1.1284,
                "accurate_long_balls": 0.5186,
                "total_own_half_passes": 12.2601,
                "accurate_own_half_passes": 9.3933,
                "total_opp_half_passes": 16.5297,
                "accurate_opp_half_passes": 12.3516,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 38.2746,
                "possession_lost": 9.3932,
                "dispossessed": 0.5497,
                "duels_lost": 4.6967,
                "aerial_won": 1.2199,
                "aerial_lost": 0.0,
                "interceptions": 1.2199,
                "tackles_won": 1.2199,
                "tackles": 1.8298,
                "clearances": 0.0,
                "total_contest": 1.2199,
                "won_contest": 0.6099,
                "challenges_lost": 0.5497,
                "fouls": 2.8667,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "shots_off_target": 0.191,
                "bench_appearance_probability": 0.525,
                "bench_expected_minutes": 22.56
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "key_pass": 0.2759,
                "expected_assists": 0.0201,
                "assist_rate": 0.0446,
                "assists": 0,
                "expected_goals": 0.023,
                "goal_rate": 0.0368,
                "goals": 0,
                "shots_on_target": 0.0833,
                "total_shots": 0.2744,
                "rating": 6.7008,
                "minutes": 22.56,
                "total_pass": 28.7899,
                "accurate_pass": 21.7449,
                "duels_won": 3.6597,
                "total_long_balls": 1.1284,
                "accurate_long_balls": 0.5186,
                "total_own_half_passes": 12.2601,
                "accurate_own_half_passes": 9.3933,
                "total_opp_half_passes": 16.5297,
                "accurate_opp_half_passes": 12.3516,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 38.2746,
                "possession_lost": 9.3932,
                "dispossessed": 0.5497,
                "duels_lost": 4.6967,
                "aerial_won": 1.2199,
                "aerial_lost": 0.0,
                "interceptions": 1.2199,
                "tackles_won": 1.2199,
                "tackles": 1.8298,
                "clearances": 0.0,
                "total_contest": 1.2199,
                "won_contest": 0.6099,
                "challenges_lost": 0.5497,
                "fouls": 2.8667,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "shots_off_target": 0.191,
                "bench_appearance_probability": 0.525,
                "bench_expected_minutes": 22.56,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.105,
                "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": 2
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.73 (squad xG sum 1.0016, xG scale 1.7263, xA scale 1.7263, team xA 1.22 = 0.71 x lambda)",
              "stats": {
                "key_pass": 0.2759,
                "expected_assists": 0.0182,
                "assist_rate": 0.0446,
                "assists": 0,
                "expected_goals": 0.0208,
                "goal_rate": 0.0368,
                "goals": 0,
                "shots_on_target": 0.0833,
                "total_shots": 0.2744,
                "rating": 6.7008,
                "minutes": 22.56,
                "total_pass": 28.7899,
                "accurate_pass": 21.7449,
                "duels_won": 3.6597,
                "total_long_balls": 1.1284,
                "accurate_long_balls": 0.5186,
                "total_own_half_passes": 12.2601,
                "accurate_own_half_passes": 9.3933,
                "total_opp_half_passes": 16.5297,
                "accurate_opp_half_passes": 12.3516,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 38.2746,
                "possession_lost": 9.3932,
                "dispossessed": 0.5497,
                "duels_lost": 4.6967,
                "aerial_won": 1.2199,
                "aerial_lost": 0.0,
                "interceptions": 1.2199,
                "tackles_won": 1.2199,
                "tackles": 1.8298,
                "clearances": 0.0,
                "total_contest": 1.2199,
                "won_contest": 0.6099,
                "challenges_lost": 0.5497,
                "fouls": 2.8667,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "shots_off_target": 0.191,
                "bench_appearance_probability": 0.525,
                "bench_expected_minutes": 22.56,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.105,
                "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.189,
                "creation_factor": 1.25
              },
              "params": {
                "team_lambda": 1.729,
                "squad_xg_sum": 1.0016,
                "squad_xa_sum": 0.7085,
                "team_expected_assists": 1.2231,
                "team_xa_to_xg_ratio": 0.7074,
                "bench_appearance_weighted": true,
                "xg_scale": 1.7263,
                "xa_scale": 1.7263,
                "opponent_lambda": 1.255,
                "scoreline_reset": true,
                "appearance_weight": 0.525
              }
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 77.0)",
              "stats": {
                "key_pass": 0.2759,
                "expected_assists": 0.0182,
                "assist_rate": 0.0446,
                "assists": 0,
                "expected_goals": 0.0208,
                "goal_rate": 0.0368,
                "goals": 0,
                "shots_on_target": 0.0833,
                "total_shots": 0.2744,
                "rating": 6.7008,
                "minutes": 22.56,
                "total_pass": 28.7899,
                "accurate_pass": 21.7449,
                "duels_won": 3.6597,
                "total_long_balls": 1.1284,
                "accurate_long_balls": 0.5186,
                "total_own_half_passes": 12.2601,
                "accurate_own_half_passes": 9.3933,
                "total_opp_half_passes": 16.5297,
                "accurate_opp_half_passes": 12.3516,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 38.2746,
                "possession_lost": 9.3932,
                "dispossessed": 0.5497,
                "duels_lost": 4.6967,
                "aerial_won": 1.2199,
                "aerial_lost": 0.0,
                "interceptions": 1.2199,
                "tackles_won": 1.2199,
                "tackles": 1.8298,
                "clearances": 0.0,
                "total_contest": 1.2199,
                "won_contest": 0.6099,
                "challenges_lost": 0.5497,
                "fouls": 2.8667,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "shots_off_target": 0.191,
                "bench_appearance_probability": 0.525,
                "bench_expected_minutes": 22.56,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.105,
                "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.189,
                "creation_factor": 1.25,
                "fifa_overall": 77.0
              },
              "params": {
                "match_squad_rank": 15,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3281,
                "fifa_rank": 1573.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 77.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "key_pass": 0.2759,
                "expected_assists": 0.0182,
                "assist_rate": 0.0446,
                "assists": 0,
                "expected_goals": 0.0208,
                "goal_rate": 0.0368,
                "goals": 0,
                "shots_on_target": 0.0833,
                "total_shots": 0.2744,
                "rating": 6.7008,
                "minutes": 22.56,
                "total_pass": 28.7899,
                "accurate_pass": 21.7449,
                "duels_won": 3.6597,
                "total_long_balls": 1.1284,
                "accurate_long_balls": 0.5186,
                "total_own_half_passes": 12.2601,
                "accurate_own_half_passes": 9.3933,
                "total_opp_half_passes": 16.5297,
                "accurate_opp_half_passes": 12.3516,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 38.2746,
                "possession_lost": 9.3932,
                "dispossessed": 0.5497,
                "duels_lost": 4.6967,
                "aerial_won": 1.2199,
                "aerial_lost": 0.0,
                "interceptions": 1.2199,
                "tackles_won": 1.2199,
                "tackles": 1.8298,
                "clearances": 0.0,
                "total_contest": 1.2199,
                "won_contest": 0.6099,
                "challenges_lost": 0.5497,
                "fouls": 2.8667,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "shots_off_target": 0.191,
                "bench_appearance_probability": 0.525,
                "bench_expected_minutes": 22.56,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.105,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0204,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.189,
                "creation_factor": 1.25,
                "fifa_overall": 77.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 2,
                "goals_allocated": 0,
                "goal_probability": 0.0204,
                "goal_rate": 0.0368,
                "scorer_weight": 0.0247,
                "squad_weight_total": 1.9109,
                "weight_share": 0.0129,
                "finishing_factor": 1.189,
                "appearance_weight": 0.525,
                "weight_rank": 12,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Iñaki Williams",
                    "weight": 0.5576,
                    "already": 0,
                    "effective_weight": 0.5576,
                    "runner_up": "Nico Williams",
                    "runner_up_effective_weight": 0.305
                  },
                  {
                    "n": 2,
                    "player": "Nico Williams",
                    "weight": 0.305,
                    "already": 0,
                    "effective_weight": 0.305,
                    "runner_up": "Álex Berenguer",
                    "runner_up_effective_weight": 0.2692
                  }
                ]
              }
            },
            {
              "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.2759,
                "expected_assists": 0.0182,
                "assist_rate": 0.0446,
                "assists": 0,
                "expected_goals": 0.0208,
                "goal_rate": 0.0368,
                "goals": 0,
                "shots_on_target": 0.0833,
                "total_shots": 0.2744,
                "rating": 6.7008,
                "minutes": 22.56,
                "total_pass": 28.7899,
                "accurate_pass": 21.7449,
                "duels_won": 3.6597,
                "total_long_balls": 1.1284,
                "accurate_long_balls": 0.5186,
                "total_own_half_passes": 12.2601,
                "accurate_own_half_passes": 9.3933,
                "total_opp_half_passes": 16.5297,
                "accurate_opp_half_passes": 12.3516,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 38.2746,
                "possession_lost": 9.3932,
                "dispossessed": 0.5497,
                "duels_lost": 4.6967,
                "aerial_won": 1.2199,
                "aerial_lost": 0.0,
                "interceptions": 1.2199,
                "tackles_won": 1.2199,
                "tackles": 1.8298,
                "clearances": 0.0,
                "total_contest": 1.2199,
                "won_contest": 0.6099,
                "challenges_lost": 0.5497,
                "fouls": 2.8667,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "shots_off_target": 0.191,
                "bench_appearance_probability": 0.525,
                "bench_expected_minutes": 22.56,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.105,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0204,
                "projected_assists": 0,
                "assist_probability": 0.0179,
                "finishing_factor": 1.189,
                "creation_factor": 1.25,
                "fifa_overall": 77.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0179,
                "assist_rate": 0.0446,
                "provider_weight": 0.0227,
                "squad_weight_total": 1.1843,
                "weight_share": 0.0192,
                "creation_factor": 1.25,
                "appearance_weight": 0.525,
                "weight_rank": 11,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Álex Berenguer",
                    "weight": 0.2673,
                    "already": 0,
                    "effective_weight": 0.2673,
                    "runner_up": "Yuri Berchiche",
                    "runner_up_effective_weight": 0.2271
                  }
                ]
              }
            }
          ]
        },
        "Robert Navarro": {
          "player_id": 944165,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 23,
          "height": 178,
          "market_value": 7500000,
          "stats": {
            "expected_goals": 0.062,
            "goal_rate": 0.0894,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "expected_assists": 0.0739,
            "key_pass": 1,
            "rating": 6.7921,
            "minutes": 26,
            "total_pass": 10,
            "accurate_pass": 8,
            "duels_won": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 9,
            "accurate_opp_half_passes": 7,
            "crosses_total": 2,
            "crosses_accurate": 0,
            "touches": 19,
            "possession_lost": 6.8147,
            "dispossessed": 0.866,
            "duels_lost": 3,
            "aerial_lost": 1,
            "total_contest": 2,
            "won_contest": 1,
            "ball_recovery": 1,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assist_rate": 0.0153,
            "assists": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.1337,
            "offsides": 0,
            "ball_carries": 7,
            "total_progression": 51,
            "progressive_carries": 2,
            "shots_off_target": 1,
            "bench_appearance_probability": 0.569,
            "bench_expected_minutes": 25.51,
            "projected_substitution_order": 1,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.105,
            "projected_substitution_game_state_adjustment": 0,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0587,
            "projected_assists": 0,
            "assist_probability": 0.0693,
            "finishing_factor": 1.2325,
            "creation_factor": 0.8,
            "fifa_overall": 76.0
          },
          "latest_10_games": [
            {
              "match_id": 17122851.0,
              "match_date": "2026-10-21",
              "home_team": "Levante UD",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 81,
                "rating": 7.0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0437,
                "expected_assists": 0.1402,
                "total_shots": 1,
                "shots_on_target": 1,
                "shots_off_target": 0,
                "total_pass": 28,
                "accurate_pass": 25,
                "key_pass": 3,
                "tackles": 1,
                "tackles_won": 0,
                "interceptions": 0,
                "clearances": 1,
                "aerial_won": 0,
                "duels_won": 4,
                "ball_recovery": 0,
                "saves": 0
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421074.0,
              "match_date": "2026-10-17",
              "home_team": "Valencia",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Valencia",
              "stats": {
                "minutes": 90,
                "rating": 7.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.088,
                "expected_assists": 0.2563,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 33,
                "accurate_pass": 26,
                "key_pass": 1,
                "tackles": 1,
                "clearances": 1,
                "duels_won": 3,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416337.0,
              "match_date": "2026-09-19",
              "home_team": "Athletic Club",
              "away_team": "Deportivo Alavés",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 75,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1533,
                "expected_assists": 0.1992,
                "total_shots": 4,
                "shots_on_target": 2,
                "total_pass": 30,
                "accurate_pass": 24,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 4,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416322.0,
              "match_date": "2026-09-12",
              "home_team": "Athletic Club",
              "away_team": "Elche",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Elche",
              "stats": {
                "minutes": 72,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.2942,
                "expected_assists": 0.1134,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 22,
                "accurate_pass": 19,
                "key_pass": 4,
                "tackles": 1,
                "interceptions": 3,
                "duels_won": 2,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416317.0,
              "match_date": "2026-09-05",
              "home_team": "Athletic Club",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 66,
                "rating": 8.2,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1954,
                "expected_assists": 0.0827,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 21,
                "accurate_pass": 17,
                "key_pass": 1,
                "tackles": 4,
                "tackles_won": 2,
                "interceptions": 2,
                "duels_won": 5,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416308.0,
              "match_date": "2026-08-30",
              "home_team": "Celta Vigo",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 74,
                "rating": 7.8,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.7256,
                "expected_assists": 0.0381,
                "total_shots": 2,
                "shots_on_target": 2,
                "total_pass": 34,
                "accurate_pass": 31,
                "duels_won": 2,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421059.0,
              "match_date": "2026-08-27",
              "home_team": "FC Barcelona",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "FC Barcelona",
              "stats": {
                "minutes": 30,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0384,
                "total_shots": 0,
                "total_pass": 6,
                "accurate_pass": 4,
                "interceptions": 1,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083731.0,
              "match_date": "2026-05-23",
              "home_team": "Real Madrid",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0325,
                "expected_assists": 0.1948,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 25,
                "accurate_pass": 20,
                "key_pass": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083656.0,
              "match_date": "2026-05-17",
              "home_team": "Athletic Club",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 45,
                "rating": 7.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.3792,
                "total_shots": 0,
                "total_pass": 29,
                "accurate_pass": 26,
                "key_pass": 2,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083629.0,
              "match_date": "2026-05-13",
              "home_team": "Espanyol",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 90,
                "rating": 6.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0329,
                "total_shots": 0,
                "total_pass": 15,
                "accurate_pass": 12,
                "key_pass": 1,
                "clearances": 1,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 3133,
            "combined_rank_score": 1100.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 229.0,
            "sofascore_rating": 7.15,
            "sofascore_appearances": 2.0,
            "fifa_rank": 1972.0,
            "fifa_overall": 76.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 12,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.7921,
            "source_file": "data/player_rankings.csv",
            "player_name": "Robert Navarro",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Diego Conde",
                  "ranking": 3128
                },
                {
                  "player_name": "Lawrence Shankland",
                  "ranking": 3129
                },
                {
                  "player_name": "Cameron Carter-Vickers",
                  "ranking": 3130
                },
                {
                  "player_name": "Patrick Wimmer",
                  "ranking": 3131
                },
                {
                  "player_name": "Thomas Lemar",
                  "ranking": 3132
                }
              ],
              "lower": [
                {
                  "player_name": "Luka Sučić",
                  "ranking": 3134
                },
                {
                  "player_name": "Che Adams",
                  "ranking": 3135
                },
                {
                  "player_name": "Carlos Vicente",
                  "ranking": 3136
                },
                {
                  "player_name": "Lautaro Di Lollo",
                  "ranking": 3137
                },
                {
                  "player_name": "Hugo Larsson",
                  "ranking": 3138
                }
              ]
            }
          },
          "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"
            ],
            "bench_expected_minutes": 25.51095973581812,
            "bench_appearance_prob": 0.5686799879917326,
            "market_value_adjustment": 0.9996,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost F_service (39 historical appearances) to 25.5 expected mins (appearance prob 0.57)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.0769,
                "goals": 0.1091,
                "goal_rate": 0.1091,
                "shots_on_target": 0.2454,
                "total_shots": 0.858,
                "expected_assists": 0.0918,
                "key_pass": 0.7518,
                "rating": 6.7921,
                "minutes": 31.11,
                "total_pass": 11.8961,
                "accurate_pass": 9.6953,
                "duels_won": 1.8195,
                "total_long_balls": 0.5439,
                "accurate_long_balls": 0.1014,
                "total_opp_half_passes": 10.4244,
                "accurate_opp_half_passes": 8.4322,
                "crosses_total": 2.7996,
                "crosses_accurate": 0.5447,
                "touches": 22.9627,
                "possession_lost": 8.3137,
                "dispossessed": 0.8663,
                "duels_lost": 3.4815,
                "aerial_lost": 0.6225,
                "total_contest": 2.3526,
                "won_contest": 0.8305,
                "ball_recovery": 1.4136,
                "challenges_lost": 0.1296,
                "fouls": 0.341,
                "fouls_drawn": 0.2748,
                "assists": 0.0186,
                "assist_rate": 0.0186,
                "interceptions": 0.268,
                "tackles_won": 0.3294,
                "tackles": 0.4856,
                "clearances": 0.006,
                "blocks": 0.0097,
                "big_chances_created": 0.0323,
                "big_chances_missed": 0.0,
                "xgot": 0.1661,
                "offsides": 0.127,
                "ball_carries": 8.7847,
                "total_progression": 62.1423,
                "progressive_carries": 2.9269,
                "shots_off_target": 0.6126
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 6,
                  "trained_at": "2026-11-01T11:27:41.685145+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 612,
                    "rows": 17180
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-21",
                    "opponent": "Levante UD",
                    "minutes": 81.0,
                    "is_starting": true,
                    "weight": 0.1503,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-10-17",
                    "opponent": "Valencia",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1277,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Deportivo Alavés",
                    "minutes": 75.0,
                    "is_starting": true,
                    "weight": 0.1086,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Elche",
                    "minutes": 72.0,
                    "is_starting": true,
                    "weight": 0.0923,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Atlético Madrid",
                    "minutes": 66.0,
                    "is_starting": true,
                    "weight": 0.0784,
                    "rating": 8.2
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Celta Vigo",
                    "minutes": 74.0,
                    "is_starting": true,
                    "weight": 0.0667,
                    "rating": 7.8
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "FC Barcelona",
                    "minutes": 30.0,
                    "is_starting": false,
                    "weight": 0.0567,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-05-23",
                    "opponent": "Real Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0482,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-05-17",
                    "opponent": "Celta Vigo",
                    "minutes": 45.0,
                    "is_starting": false,
                    "weight": 0.0409,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-05-13",
                    "opponent": "Espanyol",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0348,
                    "rating": 6.1
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 0.0,
                  "accuratePass": 19.2776,
                  "expectedGoals": 0.1475,
                  "accurateOppositionHalfPasses": 14.8931,
                  "totalShots": 1.3196,
                  "totalOppositionHalfPasses": 18.4169
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.07688683271408081,
                    "model_output": 0.0769,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2767
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0987
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.036
                      },
                      {
                        "name": "goals",
                        "importance": 0.0336
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0236
                      }
                    ],
                    "decomposition": {
                      "base": 0.1929,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0866
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0095
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0048
                        },
                        {
                          "name": "aerialLost",
                          "contribution": -0.0036
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0032
                        }
                      ],
                      "others": -0.0083,
                      "total": 0.0769,
                      "log_link": true,
                      "margin_base": -1.645586,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.595457
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.093752
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": -0.050782
                        },
                        {
                          "name": "aerialLost",
                          "margin": -0.039453
                        },
                        {
                          "name": "totalProgression",
                          "margin": -0.037184
                        }
                      ],
                      "others_margin": -0.103206
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.10905153304338455,
                    "model_output": 0.1091,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1491
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0805
                      },
                      {
                        "name": "goals",
                        "importance": 0.056
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0343
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 0.1972,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0814
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0133
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0043
                        },
                        {
                          "name": "touches",
                          "contribution": 0.0041
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0041
                        }
                      ],
                      "others": 0.0023,
                      "total": 0.1091,
                      "log_link": true,
                      "margin_base": -1.623746,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.532357
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.122338
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": 0.041414
                        },
                        {
                          "name": "touches",
                          "margin": 0.03742
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.037228
                        }
                      ],
                      "others_margin": 0.020901
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.24537168443202972,
                    "model_output": 0.2454,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2173
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0637
                      },
                      {
                        "name": "goals",
                        "importance": 0.0596
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0393
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 0.5269,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2336
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0228
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": -0.0176
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0161
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.0142
                        }
                      ],
                      "others": -0.0056,
                      "total": 0.2454,
                      "log_link": true,
                      "margin_base": -0.640773,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.585905
                        },
                        {
                          "name": "ballRecovery",
                          "margin": -0.080894
                        },
                        {
                          "name": "totalShots_p90",
                          "margin": -0.067285
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.065582
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": 0.058065
                        }
                      ],
                      "others_margin": -0.022608
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.8579987287521362,
                    "model_output": 0.858,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.3005
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0627
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0526
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0309
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0307
                      }
                    ],
                    "decomposition": {
                      "base": 1.3756,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.4724
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.073
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.0575
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0326
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0307
                        }
                      ],
                      "others": -0.093,
                      "total": 0.858,
                      "log_link": false,
                      "margin_base": 1.375643,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.472436
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.072981
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": 0.057538
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.032552
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.030721
                        }
                      ],
                      "others_margin": -0.093038
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.09177331626415253,
                    "model_output": 0.0918,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.1287
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1119
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0634
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0522
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.051
                      }
                    ],
                    "decomposition": {
                      "base": 0.065,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0199
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": 0.008
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0082
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0035
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.0033
                        }
                      ],
                      "others": 0.0237,
                      "total": 0.0918,
                      "log_link": true,
                      "margin_base": -2.733324,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.365411
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": 0.163369
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.144248
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.055412
                        },
                        {
                          "name": "keyPass",
                          "margin": 0.049275
                        }
                      ],
                      "others_margin": 0.297997
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.7518256902694702,
                    "model_output": 0.7518,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1579
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1341
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0953
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.069
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0295
                      }
                    ],
                    "decomposition": {
                      "base": 0.6917,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2718
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": 0.0621
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0472
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0421
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.0319
                        }
                      ],
                      "others": 0.1486,
                      "total": 0.7518,
                      "log_link": true,
                      "margin_base": -0.368585,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.499039
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": 0.137963
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.093424
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.07655
                        },
                        {
                          "name": "keyPass",
                          "margin": 0.054248
                        }
                      ],
                      "others_margin": 0.220188
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.79209566116333,
                    "model_output": 6.7921,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0495
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.048
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0462
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0455
                      },
                      {
                        "name": "rating",
                        "importance": 0.0455
                      }
                    ],
                    "decomposition": {
                      "base": 6.7733,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0856
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0323
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0234
                        },
                        {
                          "name": "touches",
                          "contribution": 0.0208
                        },
                        {
                          "name": "bigChanceMissed",
                          "contribution": -0.0151
                        }
                      ],
                      "others": 0.043,
                      "total": 6.7921,
                      "log_link": false,
                      "margin_base": 6.773334,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.08559
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.032259
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.023384
                        },
                        {
                          "name": "touches",
                          "margin": 0.020803
                        },
                        {
                          "name": "bigChanceMissed",
                          "margin": -0.015096
                        }
                      ],
                      "others_margin": 0.043003
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "substitute",
                  "history_matches": 39,
                  "role_matches": 23,
                  "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.493)",
              "stats": {
                "expected_goals": 0.0769,
                "goals": 0.109,
                "goal_rate": 0.109,
                "shots_on_target": 0.2453,
                "total_shots": 0.8577,
                "expected_assists": 0.0917,
                "key_pass": 0.7515,
                "rating": 6.7921,
                "minutes": 31.11,
                "total_pass": 11.8913,
                "accurate_pass": 9.6914,
                "duels_won": 1.8188,
                "total_long_balls": 0.5437,
                "accurate_long_balls": 0.1014,
                "total_opp_half_passes": 10.4202,
                "accurate_opp_half_passes": 8.4288,
                "crosses_total": 2.7985,
                "crosses_accurate": 0.5445,
                "touches": 22.9535,
                "possession_lost": 8.3104,
                "dispossessed": 0.866,
                "duels_lost": 3.4801,
                "aerial_lost": 0.6223,
                "total_contest": 2.3517,
                "won_contest": 0.8302,
                "ball_recovery": 1.413,
                "challenges_lost": 0.1295,
                "fouls": 0.3409,
                "fouls_drawn": 0.2747,
                "assists": 0.0186,
                "assist_rate": 0.0186,
                "interceptions": 0.2679,
                "tackles_won": 0.3293,
                "tackles": 0.4854,
                "clearances": 0.006,
                "blocks": 0.0097,
                "big_chances_created": 0.0323,
                "big_chances_missed": 0.0,
                "xgot": 0.166,
                "offsides": 0.1269,
                "ball_carries": 8.7812,
                "total_progression": 62.1174,
                "progressive_carries": 2.9257,
                "shots_off_target": 0.6124
              },
              "params": {
                "market_value_eur": 7500000,
                "quality_factor": 0.4927,
                "boost_factor": 0.9996,
                "reference_quality": 0.505,
                "history_matches": 39,
                "history_shrink": 0.1136,
                "market_value_known": true
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 31.1 to 25.5 expected minutes (appearance prob 0.57)",
              "stats": {
                "expected_goals": 0.0631,
                "goals": 0.0894,
                "goal_rate": 0.0894,
                "shots_on_target": 0.2012,
                "total_shots": 0.7034,
                "expected_assists": 0.0752,
                "key_pass": 0.6162,
                "rating": 6.7921,
                "minutes": 25.51,
                "total_pass": 9.7512,
                "accurate_pass": 7.9472,
                "duels_won": 1.4915,
                "total_long_balls": 0.4458,
                "accurate_long_balls": 0.0832,
                "total_opp_half_passes": 8.5448,
                "accurate_opp_half_passes": 6.9118,
                "crosses_total": 2.2948,
                "crosses_accurate": 0.4465,
                "touches": 18.8224,
                "possession_lost": 6.8147,
                "dispossessed": 0.866,
                "duels_lost": 2.8538,
                "aerial_lost": 0.6223,
                "total_contest": 1.9285,
                "won_contest": 0.6808,
                "ball_recovery": 1.1587,
                "challenges_lost": 0.1295,
                "fouls": 0.2795,
                "fouls_drawn": 0.2253,
                "assists": 0.0153,
                "assist_rate": 0.0153,
                "interceptions": 0.2197,
                "tackles_won": 0.27,
                "tackles": 0.398,
                "clearances": 0.0049,
                "blocks": 0.008,
                "big_chances_created": 0.0265,
                "big_chances_missed": 0.0,
                "xgot": 0.1361,
                "offsides": 0.1269,
                "ball_carries": 7.2008,
                "total_progression": 50.9378,
                "progressive_carries": 2.3991,
                "shots_off_target": 0.5022,
                "bench_appearance_probability": 0.569,
                "bench_expected_minutes": 25.51
              },
              "params": {
                "expected_minutes": 25.51,
                "projection_minutes": 31.11,
                "minutes_scale": 0.82,
                "appearance_probability": 0.569
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0631,
                "goals": 0.0894,
                "goal_rate": 0.0894,
                "shots_on_target": 0.2012,
                "total_shots": 0.7034,
                "expected_assists": 0.0752,
                "key_pass": 0.6162,
                "rating": 6.7921,
                "minutes": 25.51,
                "total_pass": 9.7512,
                "accurate_pass": 7.9472,
                "duels_won": 1.4915,
                "total_long_balls": 0.4458,
                "accurate_long_balls": 0.0832,
                "total_opp_half_passes": 8.5448,
                "accurate_opp_half_passes": 6.9118,
                "crosses_total": 2.2948,
                "crosses_accurate": 0.4465,
                "touches": 18.8224,
                "possession_lost": 6.8147,
                "dispossessed": 0.866,
                "duels_lost": 2.8538,
                "aerial_lost": 0.6223,
                "total_contest": 1.9285,
                "won_contest": 0.6808,
                "ball_recovery": 1.1587,
                "challenges_lost": 0.1295,
                "fouls": 0.2795,
                "fouls_drawn": 0.2253,
                "assists": 0.0153,
                "assist_rate": 0.0153,
                "interceptions": 0.2197,
                "tackles_won": 0.27,
                "tackles": 0.398,
                "clearances": 0.0049,
                "blocks": 0.008,
                "big_chances_created": 0.0265,
                "big_chances_missed": 0.0,
                "xgot": 0.1361,
                "offsides": 0.1269,
                "ball_carries": 7.2008,
                "total_progression": 50.9378,
                "progressive_carries": 2.3991,
                "shots_off_target": 0.5022,
                "bench_appearance_probability": 0.569,
                "bench_expected_minutes": 25.51
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "expected_goals": 0.0631,
                "goal_rate": 0.0894,
                "goals": 0,
                "shots_on_target": 0.2012,
                "total_shots": 0.7034,
                "expected_assists": 0.0752,
                "key_pass": 0.6162,
                "rating": 6.7921,
                "minutes": 25.51,
                "total_pass": 9.7512,
                "accurate_pass": 7.9472,
                "duels_won": 1.4915,
                "total_long_balls": 0.4458,
                "accurate_long_balls": 0.0832,
                "total_opp_half_passes": 8.5448,
                "accurate_opp_half_passes": 6.9118,
                "crosses_total": 2.2948,
                "crosses_accurate": 0.4465,
                "touches": 18.8224,
                "possession_lost": 6.8147,
                "dispossessed": 0.866,
                "duels_lost": 2.8538,
                "aerial_lost": 0.6223,
                "total_contest": 1.9285,
                "won_contest": 0.6808,
                "ball_recovery": 1.1587,
                "challenges_lost": 0.1295,
                "fouls": 0.2795,
                "fouls_drawn": 0.2253,
                "assist_rate": 0.0153,
                "assists": 0,
                "interceptions": 0.2197,
                "tackles_won": 0.27,
                "tackles": 0.398,
                "clearances": 0.0049,
                "blocks": 0.008,
                "big_chances_created": 0.0265,
                "big_chances_missed": 0.0,
                "xgot": 0.1361,
                "offsides": 0.1269,
                "ball_carries": 7.2008,
                "total_progression": 50.9378,
                "progressive_carries": 2.3991,
                "shots_off_target": 0.5022,
                "bench_appearance_probability": 0.569,
                "bench_expected_minutes": 25.51,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.105,
                "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": 2
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.73 (squad xG sum 1.0016, xG scale 1.7263, xA scale 1.7263, team xA 1.22 = 0.71 x lambda)",
              "stats": {
                "expected_goals": 0.062,
                "goal_rate": 0.0894,
                "goals": 0,
                "shots_on_target": 0.2012,
                "total_shots": 0.7034,
                "expected_assists": 0.0739,
                "key_pass": 0.6162,
                "rating": 6.7921,
                "minutes": 25.51,
                "total_pass": 9.7512,
                "accurate_pass": 7.9472,
                "duels_won": 1.4915,
                "total_long_balls": 0.4458,
                "accurate_long_balls": 0.0832,
                "total_opp_half_passes": 8.5448,
                "accurate_opp_half_passes": 6.9118,
                "crosses_total": 2.2948,
                "crosses_accurate": 0.4465,
                "touches": 18.8224,
                "possession_lost": 6.8147,
                "dispossessed": 0.866,
                "duels_lost": 2.8538,
                "aerial_lost": 0.6223,
                "total_contest": 1.9285,
                "won_contest": 0.6808,
                "ball_recovery": 1.1587,
                "challenges_lost": 0.1295,
                "fouls": 0.2795,
                "fouls_drawn": 0.2253,
                "assist_rate": 0.0153,
                "assists": 0,
                "interceptions": 0.2197,
                "tackles_won": 0.27,
                "tackles": 0.398,
                "clearances": 0.0049,
                "blocks": 0.008,
                "big_chances_created": 0.0265,
                "big_chances_missed": 0.0,
                "xgot": 0.1337,
                "offsides": 0.1269,
                "ball_carries": 7.2008,
                "total_progression": 50.9378,
                "progressive_carries": 2.3991,
                "shots_off_target": 0.5022,
                "bench_appearance_probability": 0.569,
                "bench_expected_minutes": 25.51,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.105,
                "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.2325,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 1.729,
                "squad_xg_sum": 1.0016,
                "squad_xa_sum": 0.7085,
                "team_expected_assists": 1.2231,
                "team_xa_to_xg_ratio": 0.7074,
                "bench_appearance_weighted": true,
                "xg_scale": 1.7263,
                "xa_scale": 1.7263,
                "opponent_lambda": 1.255,
                "scoreline_reset": true,
                "appearance_weight": 0.569
              }
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 76.0)",
              "stats": {
                "expected_goals": 0.062,
                "goal_rate": 0.0894,
                "goals": 0,
                "shots_on_target": 0.2012,
                "total_shots": 0.7034,
                "expected_assists": 0.0739,
                "key_pass": 0.6162,
                "rating": 6.7921,
                "minutes": 25.51,
                "total_pass": 9.7512,
                "accurate_pass": 7.9472,
                "duels_won": 1.4915,
                "total_long_balls": 0.4458,
                "accurate_long_balls": 0.0832,
                "total_opp_half_passes": 8.5448,
                "accurate_opp_half_passes": 6.9118,
                "crosses_total": 2.2948,
                "crosses_accurate": 0.4465,
                "touches": 18.8224,
                "possession_lost": 6.8147,
                "dispossessed": 0.866,
                "duels_lost": 2.8538,
                "aerial_lost": 0.6223,
                "total_contest": 1.9285,
                "won_contest": 0.6808,
                "ball_recovery": 1.1587,
                "challenges_lost": 0.1295,
                "fouls": 0.2795,
                "fouls_drawn": 0.2253,
                "assist_rate": 0.0153,
                "assists": 0,
                "interceptions": 0.2197,
                "tackles_won": 0.27,
                "tackles": 0.398,
                "clearances": 0.0049,
                "blocks": 0.008,
                "big_chances_created": 0.0265,
                "big_chances_missed": 0.0,
                "xgot": 0.1337,
                "offsides": 0.1269,
                "ball_carries": 7.2008,
                "total_progression": 50.9378,
                "progressive_carries": 2.3991,
                "shots_off_target": 0.5022,
                "bench_appearance_probability": 0.569,
                "bench_expected_minutes": 25.51,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.105,
                "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.2325,
                "creation_factor": 0.8,
                "fifa_overall": 76.0
              },
              "params": {
                "match_squad_rank": 12,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3133,
                "fifa_rank": 1972.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 76.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "expected_goals": 0.062,
                "goal_rate": 0.0894,
                "goals": 0,
                "shots_on_target": 0.2012,
                "total_shots": 0.7034,
                "expected_assists": 0.0739,
                "key_pass": 0.6162,
                "rating": 6.7921,
                "minutes": 25.51,
                "total_pass": 9.7512,
                "accurate_pass": 7.9472,
                "duels_won": 1.4915,
                "total_long_balls": 0.4458,
                "accurate_long_balls": 0.0832,
                "total_opp_half_passes": 8.5448,
                "accurate_opp_half_passes": 6.9118,
                "crosses_total": 2.2948,
                "crosses_accurate": 0.4465,
                "touches": 18.8224,
                "possession_lost": 6.8147,
                "dispossessed": 0.866,
                "duels_lost": 2.8538,
                "aerial_lost": 0.6223,
                "total_contest": 1.9285,
                "won_contest": 0.6808,
                "ball_recovery": 1.1587,
                "challenges_lost": 0.1295,
                "fouls": 0.2795,
                "fouls_drawn": 0.2253,
                "assist_rate": 0.0153,
                "assists": 0,
                "interceptions": 0.2197,
                "tackles_won": 0.27,
                "tackles": 0.398,
                "clearances": 0.0049,
                "blocks": 0.008,
                "big_chances_created": 0.0265,
                "big_chances_missed": 0.0,
                "xgot": 0.1337,
                "offsides": 0.1269,
                "ball_carries": 7.2008,
                "total_progression": 50.9378,
                "progressive_carries": 2.3991,
                "shots_off_target": 0.5022,
                "bench_appearance_probability": 0.569,
                "bench_expected_minutes": 25.51,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.105,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0587,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.2325,
                "creation_factor": 0.8,
                "fifa_overall": 76.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 2,
                "goals_allocated": 0,
                "goal_probability": 0.0587,
                "goal_rate": 0.0894,
                "scorer_weight": 0.0764,
                "squad_weight_total": 1.9109,
                "weight_share": 0.04,
                "finishing_factor": 1.2325,
                "appearance_weight": 0.569,
                "weight_rank": 6,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Iñaki Williams",
                    "weight": 0.5576,
                    "already": 0,
                    "effective_weight": 0.5576,
                    "runner_up": "Nico Williams",
                    "runner_up_effective_weight": 0.305
                  },
                  {
                    "n": 2,
                    "player": "Nico Williams",
                    "weight": 0.305,
                    "already": 0,
                    "effective_weight": 0.305,
                    "runner_up": "Álex Berenguer",
                    "runner_up_effective_weight": 0.2692
                  }
                ]
              }
            },
            {
              "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.062,
                "goal_rate": 0.0894,
                "goals": 0,
                "shots_on_target": 0.2012,
                "total_shots": 0.7034,
                "expected_assists": 0.0739,
                "key_pass": 0.6162,
                "rating": 6.7921,
                "minutes": 25.51,
                "total_pass": 9.7512,
                "accurate_pass": 7.9472,
                "duels_won": 1.4915,
                "total_long_balls": 0.4458,
                "accurate_long_balls": 0.0832,
                "total_opp_half_passes": 8.5448,
                "accurate_opp_half_passes": 6.9118,
                "crosses_total": 2.2948,
                "crosses_accurate": 0.4465,
                "touches": 18.8224,
                "possession_lost": 6.8147,
                "dispossessed": 0.866,
                "duels_lost": 2.8538,
                "aerial_lost": 0.6223,
                "total_contest": 1.9285,
                "won_contest": 0.6808,
                "ball_recovery": 1.1587,
                "challenges_lost": 0.1295,
                "fouls": 0.2795,
                "fouls_drawn": 0.2253,
                "assist_rate": 0.0153,
                "assists": 0,
                "interceptions": 0.2197,
                "tackles_won": 0.27,
                "tackles": 0.398,
                "clearances": 0.0049,
                "blocks": 0.008,
                "big_chances_created": 0.0265,
                "big_chances_missed": 0.0,
                "xgot": 0.1337,
                "offsides": 0.1269,
                "ball_carries": 7.2008,
                "total_progression": 50.9378,
                "progressive_carries": 2.3991,
                "shots_off_target": 0.5022,
                "bench_appearance_probability": 0.569,
                "bench_expected_minutes": 25.51,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.105,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0587,
                "projected_assists": 0,
                "assist_probability": 0.0693,
                "finishing_factor": 1.2325,
                "creation_factor": 0.8,
                "fifa_overall": 76.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0693,
                "assist_rate": 0.0153,
                "provider_weight": 0.0591,
                "squad_weight_total": 1.1843,
                "weight_share": 0.0499,
                "creation_factor": 0.8,
                "appearance_weight": 0.569,
                "weight_rank": 8,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Álex Berenguer",
                    "weight": 0.2673,
                    "already": 0,
                    "effective_weight": 0.2673,
                    "runner_up": "Yuri Berchiche",
                    "runner_up_effective_weight": 0.2271
                  }
                ]
              }
            }
          ]
        },
        "Gorka Guruzeta": {
          "player_id": 605672,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 11,
          "height": 188,
          "market_value": 4600000,
          "stats": {
            "expected_goals": 0.1404,
            "goal_rate": 0.1464,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "expected_assists": 0.0191,
            "key_pass": 0,
            "rating": 6.6038,
            "minutes": 26,
            "total_pass": 5,
            "accurate_pass": 4,
            "duels_won": 2,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 4,
            "accurate_opp_half_passes": 3,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 11,
            "possession_lost": 2.7941,
            "dispossessed": 0.3713,
            "duels_lost": 4,
            "aerial_lost": 1,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 1,
            "fouls": 1,
            "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.0969,
            "offsides": 0,
            "ball_carries": 1,
            "total_progression": 0,
            "progressive_carries": 0,
            "shots_off_target": 1,
            "bench_appearance_probability": 0.464,
            "bench_expected_minutes": 25.72,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.105,
            "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": 16421074.0,
              "match_date": "2026-10-17",
              "home_team": "Valencia",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Valencia",
              "stats": {
                "minutes": 5,
                "assist_rate": 0.0,
                "assists": 0,
                "total_shots": 0,
                "clearances": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416317.0,
              "match_date": "2026-09-05",
              "home_team": "Athletic Club",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 14,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0047,
                "total_shots": 0,
                "total_pass": 3,
                "accurate_pass": 3,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416308.0,
              "match_date": "2026-08-30",
              "home_team": "Celta Vigo",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 25,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.2164,
                "total_shots": 0,
                "total_pass": 5,
                "accurate_pass": 3,
                "key_pass": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421059.0,
              "match_date": "2026-08-27",
              "home_team": "FC Barcelona",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "FC Barcelona",
              "stats": {
                "minutes": 81,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0016,
                "total_shots": 0,
                "total_pass": 10,
                "accurate_pass": 7,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416301.0,
              "match_date": "2026-08-22",
              "home_team": "Athletic Club",
              "away_team": "Sevilla",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 58,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.046,
                "expected_assists": 0.0127,
                "total_shots": 2,
                "shots_off_target": 2,
                "total_pass": 13,
                "accurate_pass": 6,
                "clearances": 2,
                "aerial_won": 3,
                "duels_won": 5,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083731.0,
              "match_date": "2026-05-23",
              "home_team": "Real Madrid",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 74,
                "rating": 7.3,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.3371,
                "expected_assists": 0.013,
                "total_shots": 4,
                "shots_on_target": 1,
                "shots_off_target": 3,
                "total_pass": 21,
                "accurate_pass": 13,
                "key_pass": 1,
                "interceptions": 1,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083656.0,
              "match_date": "2026-05-17",
              "home_team": "Athletic Club",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 82,
                "rating": 5.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.2874,
                "expected_assists": 0.0279,
                "total_shots": 4,
                "shots_off_target": 2,
                "total_pass": 19,
                "accurate_pass": 10,
                "key_pass": 1,
                "aerial_won": 4,
                "duels_won": 4,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083629.0,
              "match_date": "2026-05-13",
              "home_team": "Espanyol",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 27,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0277,
                "expected_assists": 0.0096,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 7,
                "accurate_pass": 5,
                "clearances": 1,
                "aerial_won": 3,
                "duels_won": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083539.0,
              "match_date": "2026-05-10",
              "home_team": "Athletic Club",
              "away_team": "Valencia",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Valencia",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.3076,
                "expected_assists": 0.0103,
                "total_shots": 4,
                "shots_on_target": 2,
                "shots_off_target": 1,
                "total_pass": 17,
                "accurate_pass": 12,
                "tackles": 4,
                "tackles_won": 2,
                "clearances": 1,
                "aerial_won": 5,
                "duels_won": 9,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083364.0,
              "match_date": "2026-05-02",
              "home_team": "Deportivo Alavés",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assist_rate": 2.0,
                "assists": 2,
                "expected_goals": 0.0223,
                "expected_assists": 0.0564,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 27,
                "accurate_pass": 20,
                "key_pass": 2,
                "tackles": 3,
                "tackles_won": 1,
                "aerial_won": 1,
                "duels_won": 5,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 2383,
            "combined_rank_score": 1054.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 864.0,
            "sofascore_rating": 6.56,
            "sofascore_appearances": 35.0,
            "fifa_rank": 1245.0,
            "fifa_overall": 78.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 18,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.6038,
            "source_file": "data/player_rankings.csv",
            "player_name": "Gorka Guruzeta",
            "ranking_neighbors": {
              "upper": [
                {
                  "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
                },
                {
                  "player_name": "Antonio Blanco",
                  "ranking": 2382
                }
              ],
              "lower": [
                {
                  "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
                },
                {
                  "player_name": "Daniel Londoño",
                  "ranking": 2388
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.768,
          "history_matches": 40,
          "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": 40,
            "data_confidence": 0.768,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 25.72,
            "bench_appearance_prob": 0.464,
            "market_value_adjustment": 0.9984,
            "fbref_prior_metrics": {
              "squad": "Athletic Club",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 2.0,
              "sub_appearances": 1.0,
              "minutes_per_sub": 26.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "prior_reliability": 0.12
            },
            "rationale": "Bench projection scaled from XGBoost F_service (40 historical appearances) to 25.7 expected mins (appearance prob 0.46); FBref playing time empirical prior: 1.0 sub appearances, 26.0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.1172,
                "goals": 0.1233,
                "goal_rate": 0.1233,
                "shots_on_target": 0.2808,
                "total_shots": 0.7415,
                "expected_assists": 0.0159,
                "key_pass": 0.2644,
                "rating": 6.6038,
                "minutes": 21.44,
                "total_pass": 4.0237,
                "accurate_pass": 3.1321,
                "duels_won": 1.396,
                "total_long_balls": 0.4345,
                "accurate_long_balls": 0.2995,
                "total_opp_half_passes": 3.0207,
                "accurate_opp_half_passes": 2.1291,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 8.8634,
                "possession_lost": 2.3328,
                "dispossessed": 0.3719,
                "duels_lost": 3.0153,
                "aerial_lost": 0.7653,
                "total_contest": 0.3912,
                "won_contest": 0.0,
                "ball_recovery": 0.0433,
                "challenges_lost": 0.5029,
                "fouls": 0.984,
                "fouls_drawn": 0.2981,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.1408,
                "tackles_won": 0.2292,
                "tackles": 0.4152,
                "clearances": 0.4122,
                "blocks": 0.0975,
                "big_chances_created": 0.1349,
                "big_chances_missed": 0.1159,
                "xgot": 0.0809,
                "offsides": 0.1427,
                "ball_carries": 0.9998,
                "total_progression": 0.0,
                "progressive_carries": 0.0,
                "shots_off_target": 0.4607
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 6,
                  "trained_at": "2026-11-01T11:27:41.685145+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 612,
                    "rows": 17180
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-17",
                    "opponent": "Valencia",
                    "minutes": 5.0,
                    "is_starting": false,
                    "weight": 0.1502,
                    "rating": 0.0
                  },
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Atlético Madrid",
                    "minutes": 14.0,
                    "is_starting": false,
                    "weight": 0.1277,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Celta Vigo",
                    "minutes": 25.0,
                    "is_starting": false,
                    "weight": 0.1085,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "FC Barcelona",
                    "minutes": 81.0,
                    "is_starting": true,
                    "weight": 0.0923,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Sevilla",
                    "minutes": 58.0,
                    "is_starting": true,
                    "weight": 0.0784,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-05-23",
                    "opponent": "Real Madrid",
                    "minutes": 74.0,
                    "is_starting": true,
                    "weight": 0.0667,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-05-17",
                    "opponent": "Celta Vigo",
                    "minutes": 82.0,
                    "is_starting": true,
                    "weight": 0.0567,
                    "rating": 5.9
                  },
                  {
                    "match_date": "2026-05-13",
                    "opponent": "Espanyol",
                    "minutes": 27.0,
                    "is_starting": false,
                    "weight": 0.0482,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-05-10",
                    "opponent": "Valencia",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0409,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-05-02",
                    "opponent": "Deportivo Alavés",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0348,
                    "rating": 6.4
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 0.0,
                  "accuratePass": 6.4516,
                  "expectedGoals": 0.122,
                  "accurateOppositionHalfPasses": 4.5076,
                  "totalShots": 1.4048,
                  "totalOppositionHalfPasses": 7.6695
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.11717577278614044,
                    "model_output": 0.1172,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2767
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0987
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.036
                      },
                      {
                        "name": "goals",
                        "importance": 0.0336
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0236
                      }
                    ],
                    "decomposition": {
                      "base": 0.1929,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.084
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": 0.0148
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0116
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": -0.007
                        },
                        {
                          "name": "aerialLost",
                          "contribution": 0.0036
                        }
                      ],
                      "others": 0.0085,
                      "total": 0.1172,
                      "log_link": true,
                      "margin_base": -1.645586,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.571952
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": 0.127549
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.098182
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": -0.06403
                        },
                        {
                          "name": "aerialLost",
                          "margin": 0.033782
                        }
                      ],
                      "others_margin": 0.07434
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.12330390512943268,
                    "model_output": 0.1233,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1491
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0805
                      },
                      {
                        "name": "goals",
                        "importance": 0.056
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0343
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 0.1972,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0794
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0123
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0056
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": 0.0058
                        },
                        {
                          "name": "dispossessed",
                          "contribution": -0.0045
                        }
                      ],
                      "others": 0.0109,
                      "total": 0.1233,
                      "log_link": true,
                      "margin_base": -1.623746,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.514972
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.109934
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.051368
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": 0.050516
                        },
                        {
                          "name": "dispossessed",
                          "margin": -0.03944
                        }
                      ],
                      "others_margin": 0.093106
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.28078606724739075,
                    "model_output": 0.2808,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2173
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0637
                      },
                      {
                        "name": "goals",
                        "importance": 0.0596
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0393
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 0.5269,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2335
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": 0.0124
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0117
                        },
                        {
                          "name": "shot_accuracy",
                          "contribution": -0.01
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": 0.01
                        }
                      ],
                      "others": -0.0133,
                      "total": 0.2808,
                      "log_link": true,
                      "margin_base": -0.640773,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.585486
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": 0.041359
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.039143
                        },
                        {
                          "name": "shot_accuracy",
                          "margin": -0.034711
                        },
                        {
                          "name": "ballRecovery",
                          "margin": 0.034613
                        }
                      ],
                      "others_margin": -0.046021
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.7414869070053101,
                    "model_output": 0.7415,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.3005
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0627
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0526
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0309
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0307
                      }
                    ],
                    "decomposition": {
                      "base": 1.3756,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.5729
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0474
                        },
                        {
                          "name": "aerialLost",
                          "contribution": 0.0313
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0278
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.025
                        }
                      ],
                      "others": -0.0423,
                      "total": 0.7415,
                      "log_link": false,
                      "margin_base": 1.375643,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.572858
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.047353
                        },
                        {
                          "name": "aerialLost",
                          "margin": 0.03128
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.027835
                        },
                        {
                          "name": "duelLost",
                          "margin": 0.025049
                        }
                      ],
                      "others_margin": -0.04244
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.01592266373336315,
                    "model_output": 0.0159,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.1287
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1119
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0634
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0522
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.051
                      }
                    ],
                    "decomposition": {
                      "base": 0.065,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0219
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.0067
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0038
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0026
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0024
                        }
                      ],
                      "others": -0.0117,
                      "total": 0.0159,
                      "log_link": true,
                      "margin_base": -2.733324,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.411493
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.169887
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.11104
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.08256
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.082083
                        }
                      ],
                      "others_margin": -0.549624
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.2643936276435852,
                    "model_output": 0.2644,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1579
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1341
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0953
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.069
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0295
                      }
                    ],
                    "decomposition": {
                      "base": 0.6917,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.257
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.0395
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0235
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.019
                        },
                        {
                          "name": "aerialLost",
                          "contribution": -0.0133
                        }
                      ],
                      "others": -0.075,
                      "total": 0.2644,
                      "log_link": true,
                      "margin_base": -0.368585,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.464533
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.095234
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": -0.061342
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.052595
                        },
                        {
                          "name": "aerialLost",
                          "margin": -0.038373
                        }
                      ],
                      "others_margin": -0.249655
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.6038126945495605,
                    "model_output": 6.6038,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0495
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.048
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0462
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0455
                      },
                      {
                        "name": "rating",
                        "importance": 0.0455
                      }
                    ],
                    "decomposition": {
                      "base": 6.7733,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0524
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0306
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0114
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0105
                        },
                        {
                          "name": "touches",
                          "contribution": -0.0103
                        }
                      ],
                      "others": -0.0543,
                      "total": 6.6038,
                      "log_link": false,
                      "margin_base": 6.773334,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.052358
                        },
                        {
                          "name": "rating",
                          "margin": -0.030562
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.011372
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.010487
                        },
                        {
                          "name": "touches",
                          "margin": -0.010314
                        }
                      ],
                      "others_margin": -0.054429
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "substitute",
                  "history_matches": 40,
                  "role_matches": 10,
                  "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.457)",
              "stats": {
                "expected_goals": 0.117,
                "goals": 0.1231,
                "goal_rate": 0.1231,
                "shots_on_target": 0.2803,
                "total_shots": 0.7403,
                "expected_assists": 0.0159,
                "key_pass": 0.264,
                "rating": 6.6038,
                "minutes": 21.44,
                "total_pass": 4.0173,
                "accurate_pass": 3.1271,
                "duels_won": 1.3938,
                "total_long_balls": 0.4338,
                "accurate_long_balls": 0.299,
                "total_opp_half_passes": 3.0159,
                "accurate_opp_half_passes": 2.1257,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 8.8492,
                "possession_lost": 2.3291,
                "dispossessed": 0.3713,
                "duels_lost": 3.0105,
                "aerial_lost": 0.7641,
                "total_contest": 0.3906,
                "won_contest": 0.0,
                "ball_recovery": 0.0432,
                "challenges_lost": 0.5021,
                "fouls": 0.9824,
                "fouls_drawn": 0.2976,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.1406,
                "tackles_won": 0.2288,
                "tackles": 0.4145,
                "clearances": 0.4115,
                "blocks": 0.0973,
                "big_chances_created": 0.1347,
                "big_chances_missed": 0.1157,
                "xgot": 0.0808,
                "offsides": 0.1425,
                "ball_carries": 0.9982,
                "total_progression": 0.0,
                "progressive_carries": 0.0,
                "shots_off_target": 0.46
              },
              "params": {
                "market_value_eur": 4600000,
                "quality_factor": 0.4572,
                "boost_factor": 0.9984,
                "reference_quality": 0.505,
                "history_matches": 40,
                "history_shrink": 0.1111,
                "market_value_known": true
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0087)",
              "stats": {
                "expected_goals": 0.117,
                "goals": 0.122,
                "goal_rate": 0.122,
                "shots_on_target": 0.2779,
                "total_shots": 0.7362,
                "expected_assists": 0.0159,
                "key_pass": 0.264,
                "rating": 6.6038,
                "minutes": 21.44,
                "total_pass": 4.0173,
                "accurate_pass": 3.1271,
                "duels_won": 1.3938,
                "total_long_balls": 0.4338,
                "accurate_long_balls": 0.299,
                "total_opp_half_passes": 3.0159,
                "accurate_opp_half_passes": 2.1257,
                "crosses_total": 0.0011,
                "crosses_accurate": 0.0,
                "touches": 8.8492,
                "possession_lost": 2.3291,
                "dispossessed": 0.3713,
                "duels_lost": 3.0105,
                "aerial_lost": 0.7641,
                "total_contest": 0.3906,
                "won_contest": 0.0,
                "ball_recovery": 0.0432,
                "challenges_lost": 0.5021,
                "fouls": 0.9785,
                "fouls_drawn": 0.2985,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.1405,
                "tackles_won": 0.228,
                "tackles": 0.4145,
                "clearances": 0.4115,
                "blocks": 0.0973,
                "big_chances_created": 0.1347,
                "big_chances_missed": 0.1157,
                "xgot": 0.0808,
                "offsides": 0.1413,
                "ball_carries": 0.9982,
                "total_progression": 0.0,
                "progressive_carries": 0.0,
                "shots_off_target": 0.46
              },
              "params": {
                "blend_weight": 0.0087,
                "history_matches": 40,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.2382,
                "prior_reliability": 0.12,
                "competition": "La Liga",
                "squad": "Athletic Club"
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 21.4 to 25.7 expected minutes (appearance prob 0.46)",
              "stats": {
                "expected_goals": 0.1404,
                "goals": 0.1464,
                "goal_rate": 0.1464,
                "shots_on_target": 0.3334,
                "total_shots": 0.8852,
                "expected_assists": 0.0191,
                "key_pass": 0.3167,
                "rating": 6.6038,
                "minutes": 25.72,
                "total_pass": 4.8193,
                "accurate_pass": 3.7514,
                "duels_won": 1.672,
                "total_long_balls": 0.5204,
                "accurate_long_balls": 0.3587,
                "total_opp_half_passes": 3.618,
                "accurate_opp_half_passes": 2.55,
                "crosses_total": 0.0013,
                "crosses_accurate": 0.0,
                "touches": 10.6157,
                "possession_lost": 2.7941,
                "dispossessed": 0.3713,
                "duels_lost": 3.6115,
                "aerial_lost": 0.7641,
                "total_contest": 0.4686,
                "won_contest": 0.0,
                "ball_recovery": 0.0518,
                "challenges_lost": 0.5021,
                "fouls": 1.1738,
                "fouls_drawn": 0.3581,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.1685,
                "tackles_won": 0.2735,
                "tackles": 0.4972,
                "clearances": 0.4936,
                "blocks": 0.1167,
                "big_chances_created": 0.1616,
                "big_chances_missed": 0.1388,
                "xgot": 0.0969,
                "offsides": 0.1413,
                "ball_carries": 1.1975,
                "total_progression": 0.0,
                "progressive_carries": 0.0,
                "shots_off_target": 0.5518,
                "bench_appearance_probability": 0.464,
                "bench_expected_minutes": 25.72
              },
              "params": {
                "expected_minutes": 25.72,
                "projection_minutes": 21.44,
                "minutes_scale": 1.1996,
                "appearance_probability": 0.464
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.1404,
                "goals": 0.1464,
                "goal_rate": 0.1464,
                "shots_on_target": 0.3334,
                "total_shots": 0.8852,
                "expected_assists": 0.0191,
                "key_pass": 0.3167,
                "rating": 6.6038,
                "minutes": 25.72,
                "total_pass": 4.8193,
                "accurate_pass": 3.7514,
                "duels_won": 1.672,
                "total_long_balls": 0.5204,
                "accurate_long_balls": 0.3587,
                "total_opp_half_passes": 3.618,
                "accurate_opp_half_passes": 2.55,
                "crosses_total": 0.0013,
                "crosses_accurate": 0.0,
                "touches": 10.6157,
                "possession_lost": 2.7941,
                "dispossessed": 0.3713,
                "duels_lost": 3.6115,
                "aerial_lost": 0.7641,
                "total_contest": 0.4686,
                "won_contest": 0.0,
                "ball_recovery": 0.0518,
                "challenges_lost": 0.5021,
                "fouls": 1.1738,
                "fouls_drawn": 0.3581,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.1685,
                "tackles_won": 0.2735,
                "tackles": 0.4972,
                "clearances": 0.4936,
                "blocks": 0.1167,
                "big_chances_created": 0.1616,
                "big_chances_missed": 0.1388,
                "xgot": 0.0969,
                "offsides": 0.1413,
                "ball_carries": 1.1975,
                "total_progression": 0.0,
                "progressive_carries": 0.0,
                "shots_off_target": 0.5518,
                "bench_appearance_probability": 0.464,
                "bench_expected_minutes": 25.72
              },
              "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.1404,
                "goal_rate": 0.1464,
                "goals": 0,
                "shots_on_target": 0.3334,
                "total_shots": 0.8852,
                "expected_assists": 0.0191,
                "key_pass": 0.3167,
                "rating": 6.6038,
                "minutes": 25.72,
                "total_pass": 4.8193,
                "accurate_pass": 3.7514,
                "duels_won": 1.672,
                "total_long_balls": 0.5204,
                "accurate_long_balls": 0.3587,
                "total_opp_half_passes": 3.618,
                "accurate_opp_half_passes": 2.55,
                "crosses_total": 0.0013,
                "crosses_accurate": 0.0,
                "touches": 10.6157,
                "possession_lost": 2.7941,
                "dispossessed": 0.3713,
                "duels_lost": 3.6115,
                "aerial_lost": 0.7641,
                "total_contest": 0.4686,
                "won_contest": 0.0,
                "ball_recovery": 0.0518,
                "challenges_lost": 0.5021,
                "fouls": 1.1738,
                "fouls_drawn": 0.3581,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.1685,
                "tackles_won": 0.2735,
                "tackles": 0.4972,
                "clearances": 0.4936,
                "blocks": 0.1167,
                "big_chances_created": 0.1616,
                "big_chances_missed": 0.1388,
                "xgot": 0.0969,
                "offsides": 0.1413,
                "ball_carries": 1.1975,
                "total_progression": 0.0,
                "progressive_carries": 0.0,
                "shots_off_target": 0.5518,
                "bench_appearance_probability": 0.464,
                "bench_expected_minutes": 25.72,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.105,
                "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.464,
                "projected_substitutes": 2,
                "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 78.0)",
              "stats": {
                "expected_goals": 0.1404,
                "goal_rate": 0.1464,
                "goals": 0,
                "shots_on_target": 0.3334,
                "total_shots": 0.8852,
                "expected_assists": 0.0191,
                "key_pass": 0.3167,
                "rating": 6.6038,
                "minutes": 25.72,
                "total_pass": 4.8193,
                "accurate_pass": 3.7514,
                "duels_won": 1.672,
                "total_long_balls": 0.5204,
                "accurate_long_balls": 0.3587,
                "total_opp_half_passes": 3.618,
                "accurate_opp_half_passes": 2.55,
                "crosses_total": 0.0013,
                "crosses_accurate": 0.0,
                "touches": 10.6157,
                "possession_lost": 2.7941,
                "dispossessed": 0.3713,
                "duels_lost": 3.6115,
                "aerial_lost": 0.7641,
                "total_contest": 0.4686,
                "won_contest": 0.0,
                "ball_recovery": 0.0518,
                "challenges_lost": 0.5021,
                "fouls": 1.1738,
                "fouls_drawn": 0.3581,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.1685,
                "tackles_won": 0.2735,
                "tackles": 0.4972,
                "clearances": 0.4936,
                "blocks": 0.1167,
                "big_chances_created": 0.1616,
                "big_chances_missed": 0.1388,
                "xgot": 0.0969,
                "offsides": 0.1413,
                "ball_carries": 1.1975,
                "total_progression": 0.0,
                "progressive_carries": 0.0,
                "shots_off_target": 0.5518,
                "bench_appearance_probability": 0.464,
                "bench_expected_minutes": 25.72,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.105,
                "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": 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": 2383,
                "fifa_rank": 1245.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 78.0
              }
            }
          ]
        }
      },
      "substitutes": {
        "Robert Navarro": {
          "player_id": 944165,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 23,
          "height": 178,
          "market_value": 7500000,
          "stats": {
            "expected_goals": 0.062,
            "goal_rate": 0.0894,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "expected_assists": 0.0739,
            "key_pass": 1,
            "rating": 6.7921,
            "minutes": 26,
            "total_pass": 10,
            "accurate_pass": 8,
            "duels_won": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 9,
            "accurate_opp_half_passes": 7,
            "crosses_total": 2,
            "crosses_accurate": 0,
            "touches": 19,
            "possession_lost": 6.8147,
            "dispossessed": 0.866,
            "duels_lost": 3,
            "aerial_lost": 1,
            "total_contest": 2,
            "won_contest": 1,
            "ball_recovery": 1,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assist_rate": 0.0153,
            "assists": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.1337,
            "offsides": 0,
            "ball_carries": 7,
            "total_progression": 51,
            "progressive_carries": 2,
            "shots_off_target": 1,
            "bench_appearance_probability": 0.569,
            "bench_expected_minutes": 25.51,
            "projected_substitution_order": 1,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.105,
            "projected_substitution_game_state_adjustment": 0,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0587,
            "projected_assists": 0,
            "assist_probability": 0.0693,
            "finishing_factor": 1.2325,
            "creation_factor": 0.8,
            "fifa_overall": 76.0
          },
          "latest_10_games": [
            {
              "match_id": 17122851.0,
              "match_date": "2026-10-21",
              "home_team": "Levante UD",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 81,
                "rating": 7.0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0437,
                "expected_assists": 0.1402,
                "total_shots": 1,
                "shots_on_target": 1,
                "shots_off_target": 0,
                "total_pass": 28,
                "accurate_pass": 25,
                "key_pass": 3,
                "tackles": 1,
                "tackles_won": 0,
                "interceptions": 0,
                "clearances": 1,
                "aerial_won": 0,
                "duels_won": 4,
                "ball_recovery": 0,
                "saves": 0
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421074.0,
              "match_date": "2026-10-17",
              "home_team": "Valencia",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Valencia",
              "stats": {
                "minutes": 90,
                "rating": 7.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.088,
                "expected_assists": 0.2563,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 33,
                "accurate_pass": 26,
                "key_pass": 1,
                "tackles": 1,
                "clearances": 1,
                "duels_won": 3,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416337.0,
              "match_date": "2026-09-19",
              "home_team": "Athletic Club",
              "away_team": "Deportivo Alavés",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 75,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1533,
                "expected_assists": 0.1992,
                "total_shots": 4,
                "shots_on_target": 2,
                "total_pass": 30,
                "accurate_pass": 24,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 4,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416322.0,
              "match_date": "2026-09-12",
              "home_team": "Athletic Club",
              "away_team": "Elche",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Elche",
              "stats": {
                "minutes": 72,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.2942,
                "expected_assists": 0.1134,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 22,
                "accurate_pass": 19,
                "key_pass": 4,
                "tackles": 1,
                "interceptions": 3,
                "duels_won": 2,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416317.0,
              "match_date": "2026-09-05",
              "home_team": "Athletic Club",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 66,
                "rating": 8.2,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1954,
                "expected_assists": 0.0827,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 21,
                "accurate_pass": 17,
                "key_pass": 1,
                "tackles": 4,
                "tackles_won": 2,
                "interceptions": 2,
                "duels_won": 5,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416308.0,
              "match_date": "2026-08-30",
              "home_team": "Celta Vigo",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 74,
                "rating": 7.8,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.7256,
                "expected_assists": 0.0381,
                "total_shots": 2,
                "shots_on_target": 2,
                "total_pass": 34,
                "accurate_pass": 31,
                "duels_won": 2,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421059.0,
              "match_date": "2026-08-27",
              "home_team": "FC Barcelona",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "FC Barcelona",
              "stats": {
                "minutes": 30,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0384,
                "total_shots": 0,
                "total_pass": 6,
                "accurate_pass": 4,
                "interceptions": 1,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083731.0,
              "match_date": "2026-05-23",
              "home_team": "Real Madrid",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0325,
                "expected_assists": 0.1948,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 25,
                "accurate_pass": 20,
                "key_pass": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083656.0,
              "match_date": "2026-05-17",
              "home_team": "Athletic Club",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 45,
                "rating": 7.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.3792,
                "total_shots": 0,
                "total_pass": 29,
                "accurate_pass": 26,
                "key_pass": 2,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083629.0,
              "match_date": "2026-05-13",
              "home_team": "Espanyol",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 90,
                "rating": 6.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0329,
                "total_shots": 0,
                "total_pass": 15,
                "accurate_pass": 12,
                "key_pass": 1,
                "clearances": 1,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 3133,
            "combined_rank_score": 1100.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 229.0,
            "sofascore_rating": 7.15,
            "sofascore_appearances": 2.0,
            "fifa_rank": 1972.0,
            "fifa_overall": 76.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 12,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.7921,
            "source_file": "data/player_rankings.csv",
            "player_name": "Robert Navarro",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Diego Conde",
                  "ranking": 3128
                },
                {
                  "player_name": "Lawrence Shankland",
                  "ranking": 3129
                },
                {
                  "player_name": "Cameron Carter-Vickers",
                  "ranking": 3130
                },
                {
                  "player_name": "Patrick Wimmer",
                  "ranking": 3131
                },
                {
                  "player_name": "Thomas Lemar",
                  "ranking": 3132
                }
              ],
              "lower": [
                {
                  "player_name": "Luka Sučić",
                  "ranking": 3134
                },
                {
                  "player_name": "Che Adams",
                  "ranking": 3135
                },
                {
                  "player_name": "Carlos Vicente",
                  "ranking": 3136
                },
                {
                  "player_name": "Lautaro Di Lollo",
                  "ranking": 3137
                },
                {
                  "player_name": "Hugo Larsson",
                  "ranking": 3138
                }
              ]
            }
          },
          "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"
            ],
            "bench_expected_minutes": 25.51095973581812,
            "bench_appearance_prob": 0.5686799879917326,
            "market_value_adjustment": 0.9996,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost F_service (39 historical appearances) to 25.5 expected mins (appearance prob 0.57)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.0769,
                "goals": 0.1091,
                "goal_rate": 0.1091,
                "shots_on_target": 0.2454,
                "total_shots": 0.858,
                "expected_assists": 0.0918,
                "key_pass": 0.7518,
                "rating": 6.7921,
                "minutes": 31.11,
                "total_pass": 11.8961,
                "accurate_pass": 9.6953,
                "duels_won": 1.8195,
                "total_long_balls": 0.5439,
                "accurate_long_balls": 0.1014,
                "total_opp_half_passes": 10.4244,
                "accurate_opp_half_passes": 8.4322,
                "crosses_total": 2.7996,
                "crosses_accurate": 0.5447,
                "touches": 22.9627,
                "possession_lost": 8.3137,
                "dispossessed": 0.8663,
                "duels_lost": 3.4815,
                "aerial_lost": 0.6225,
                "total_contest": 2.3526,
                "won_contest": 0.8305,
                "ball_recovery": 1.4136,
                "challenges_lost": 0.1296,
                "fouls": 0.341,
                "fouls_drawn": 0.2748,
                "assists": 0.0186,
                "assist_rate": 0.0186,
                "interceptions": 0.268,
                "tackles_won": 0.3294,
                "tackles": 0.4856,
                "clearances": 0.006,
                "blocks": 0.0097,
                "big_chances_created": 0.0323,
                "big_chances_missed": 0.0,
                "xgot": 0.1661,
                "offsides": 0.127,
                "ball_carries": 8.7847,
                "total_progression": 62.1423,
                "progressive_carries": 2.9269,
                "shots_off_target": 0.6126
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 6,
                  "trained_at": "2026-11-01T11:27:41.685145+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 612,
                    "rows": 17180
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-21",
                    "opponent": "Levante UD",
                    "minutes": 81.0,
                    "is_starting": true,
                    "weight": 0.1503,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-10-17",
                    "opponent": "Valencia",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1277,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Deportivo Alavés",
                    "minutes": 75.0,
                    "is_starting": true,
                    "weight": 0.1086,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Elche",
                    "minutes": 72.0,
                    "is_starting": true,
                    "weight": 0.0923,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Atlético Madrid",
                    "minutes": 66.0,
                    "is_starting": true,
                    "weight": 0.0784,
                    "rating": 8.2
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Celta Vigo",
                    "minutes": 74.0,
                    "is_starting": true,
                    "weight": 0.0667,
                    "rating": 7.8
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "FC Barcelona",
                    "minutes": 30.0,
                    "is_starting": false,
                    "weight": 0.0567,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-05-23",
                    "opponent": "Real Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0482,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-05-17",
                    "opponent": "Celta Vigo",
                    "minutes": 45.0,
                    "is_starting": false,
                    "weight": 0.0409,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-05-13",
                    "opponent": "Espanyol",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0348,
                    "rating": 6.1
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 0.0,
                  "accuratePass": 19.2776,
                  "expectedGoals": 0.1475,
                  "accurateOppositionHalfPasses": 14.8931,
                  "totalShots": 1.3196,
                  "totalOppositionHalfPasses": 18.4169
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.07688683271408081,
                    "model_output": 0.0769,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2767
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0987
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.036
                      },
                      {
                        "name": "goals",
                        "importance": 0.0336
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0236
                      }
                    ],
                    "decomposition": {
                      "base": 0.1929,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0866
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0095
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0048
                        },
                        {
                          "name": "aerialLost",
                          "contribution": -0.0036
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0032
                        }
                      ],
                      "others": -0.0083,
                      "total": 0.0769,
                      "log_link": true,
                      "margin_base": -1.645586,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.595457
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.093752
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": -0.050782
                        },
                        {
                          "name": "aerialLost",
                          "margin": -0.039453
                        },
                        {
                          "name": "totalProgression",
                          "margin": -0.037184
                        }
                      ],
                      "others_margin": -0.103206
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.10905153304338455,
                    "model_output": 0.1091,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1491
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0805
                      },
                      {
                        "name": "goals",
                        "importance": 0.056
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0343
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 0.1972,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0814
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0133
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0043
                        },
                        {
                          "name": "touches",
                          "contribution": 0.0041
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0041
                        }
                      ],
                      "others": 0.0023,
                      "total": 0.1091,
                      "log_link": true,
                      "margin_base": -1.623746,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.532357
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.122338
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": 0.041414
                        },
                        {
                          "name": "touches",
                          "margin": 0.03742
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.037228
                        }
                      ],
                      "others_margin": 0.020901
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.24537168443202972,
                    "model_output": 0.2454,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2173
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0637
                      },
                      {
                        "name": "goals",
                        "importance": 0.0596
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0393
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 0.5269,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2336
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0228
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": -0.0176
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0161
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.0142
                        }
                      ],
                      "others": -0.0056,
                      "total": 0.2454,
                      "log_link": true,
                      "margin_base": -0.640773,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.585905
                        },
                        {
                          "name": "ballRecovery",
                          "margin": -0.080894
                        },
                        {
                          "name": "totalShots_p90",
                          "margin": -0.067285
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.065582
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": 0.058065
                        }
                      ],
                      "others_margin": -0.022608
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.8579987287521362,
                    "model_output": 0.858,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.3005
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0627
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0526
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0309
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0307
                      }
                    ],
                    "decomposition": {
                      "base": 1.3756,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.4724
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.073
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.0575
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0326
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0307
                        }
                      ],
                      "others": -0.093,
                      "total": 0.858,
                      "log_link": false,
                      "margin_base": 1.375643,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.472436
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.072981
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": 0.057538
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.032552
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.030721
                        }
                      ],
                      "others_margin": -0.093038
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.09177331626415253,
                    "model_output": 0.0918,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.1287
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1119
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0634
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0522
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.051
                      }
                    ],
                    "decomposition": {
                      "base": 0.065,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0199
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": 0.008
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0082
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0035
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.0033
                        }
                      ],
                      "others": 0.0237,
                      "total": 0.0918,
                      "log_link": true,
                      "margin_base": -2.733324,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.365411
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": 0.163369
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.144248
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.055412
                        },
                        {
                          "name": "keyPass",
                          "margin": 0.049275
                        }
                      ],
                      "others_margin": 0.297997
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.7518256902694702,
                    "model_output": 0.7518,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1579
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1341
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0953
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.069
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0295
                      }
                    ],
                    "decomposition": {
                      "base": 0.6917,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2718
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": 0.0621
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0472
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0421
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.0319
                        }
                      ],
                      "others": 0.1486,
                      "total": 0.7518,
                      "log_link": true,
                      "margin_base": -0.368585,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.499039
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": 0.137963
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.093424
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.07655
                        },
                        {
                          "name": "keyPass",
                          "margin": 0.054248
                        }
                      ],
                      "others_margin": 0.220188
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.79209566116333,
                    "model_output": 6.7921,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0495
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.048
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0462
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0455
                      },
                      {
                        "name": "rating",
                        "importance": 0.0455
                      }
                    ],
                    "decomposition": {
                      "base": 6.7733,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0856
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0323
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0234
                        },
                        {
                          "name": "touches",
                          "contribution": 0.0208
                        },
                        {
                          "name": "bigChanceMissed",
                          "contribution": -0.0151
                        }
                      ],
                      "others": 0.043,
                      "total": 6.7921,
                      "log_link": false,
                      "margin_base": 6.773334,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.08559
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.032259
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.023384
                        },
                        {
                          "name": "touches",
                          "margin": 0.020803
                        },
                        {
                          "name": "bigChanceMissed",
                          "margin": -0.015096
                        }
                      ],
                      "others_margin": 0.043003
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "substitute",
                  "history_matches": 39,
                  "role_matches": 23,
                  "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.493)",
              "stats": {
                "expected_goals": 0.0769,
                "goals": 0.109,
                "goal_rate": 0.109,
                "shots_on_target": 0.2453,
                "total_shots": 0.8577,
                "expected_assists": 0.0917,
                "key_pass": 0.7515,
                "rating": 6.7921,
                "minutes": 31.11,
                "total_pass": 11.8913,
                "accurate_pass": 9.6914,
                "duels_won": 1.8188,
                "total_long_balls": 0.5437,
                "accurate_long_balls": 0.1014,
                "total_opp_half_passes": 10.4202,
                "accurate_opp_half_passes": 8.4288,
                "crosses_total": 2.7985,
                "crosses_accurate": 0.5445,
                "touches": 22.9535,
                "possession_lost": 8.3104,
                "dispossessed": 0.866,
                "duels_lost": 3.4801,
                "aerial_lost": 0.6223,
                "total_contest": 2.3517,
                "won_contest": 0.8302,
                "ball_recovery": 1.413,
                "challenges_lost": 0.1295,
                "fouls": 0.3409,
                "fouls_drawn": 0.2747,
                "assists": 0.0186,
                "assist_rate": 0.0186,
                "interceptions": 0.2679,
                "tackles_won": 0.3293,
                "tackles": 0.4854,
                "clearances": 0.006,
                "blocks": 0.0097,
                "big_chances_created": 0.0323,
                "big_chances_missed": 0.0,
                "xgot": 0.166,
                "offsides": 0.1269,
                "ball_carries": 8.7812,
                "total_progression": 62.1174,
                "progressive_carries": 2.9257,
                "shots_off_target": 0.6124
              },
              "params": {
                "market_value_eur": 7500000,
                "quality_factor": 0.4927,
                "boost_factor": 0.9996,
                "reference_quality": 0.505,
                "history_matches": 39,
                "history_shrink": 0.1136,
                "market_value_known": true
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 31.1 to 25.5 expected minutes (appearance prob 0.57)",
              "stats": {
                "expected_goals": 0.0631,
                "goals": 0.0894,
                "goal_rate": 0.0894,
                "shots_on_target": 0.2012,
                "total_shots": 0.7034,
                "expected_assists": 0.0752,
                "key_pass": 0.6162,
                "rating": 6.7921,
                "minutes": 25.51,
                "total_pass": 9.7512,
                "accurate_pass": 7.9472,
                "duels_won": 1.4915,
                "total_long_balls": 0.4458,
                "accurate_long_balls": 0.0832,
                "total_opp_half_passes": 8.5448,
                "accurate_opp_half_passes": 6.9118,
                "crosses_total": 2.2948,
                "crosses_accurate": 0.4465,
                "touches": 18.8224,
                "possession_lost": 6.8147,
                "dispossessed": 0.866,
                "duels_lost": 2.8538,
                "aerial_lost": 0.6223,
                "total_contest": 1.9285,
                "won_contest": 0.6808,
                "ball_recovery": 1.1587,
                "challenges_lost": 0.1295,
                "fouls": 0.2795,
                "fouls_drawn": 0.2253,
                "assists": 0.0153,
                "assist_rate": 0.0153,
                "interceptions": 0.2197,
                "tackles_won": 0.27,
                "tackles": 0.398,
                "clearances": 0.0049,
                "blocks": 0.008,
                "big_chances_created": 0.0265,
                "big_chances_missed": 0.0,
                "xgot": 0.1361,
                "offsides": 0.1269,
                "ball_carries": 7.2008,
                "total_progression": 50.9378,
                "progressive_carries": 2.3991,
                "shots_off_target": 0.5022,
                "bench_appearance_probability": 0.569,
                "bench_expected_minutes": 25.51
              },
              "params": {
                "expected_minutes": 25.51,
                "projection_minutes": 31.11,
                "minutes_scale": 0.82,
                "appearance_probability": 0.569
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0631,
                "goals": 0.0894,
                "goal_rate": 0.0894,
                "shots_on_target": 0.2012,
                "total_shots": 0.7034,
                "expected_assists": 0.0752,
                "key_pass": 0.6162,
                "rating": 6.7921,
                "minutes": 25.51,
                "total_pass": 9.7512,
                "accurate_pass": 7.9472,
                "duels_won": 1.4915,
                "total_long_balls": 0.4458,
                "accurate_long_balls": 0.0832,
                "total_opp_half_passes": 8.5448,
                "accurate_opp_half_passes": 6.9118,
                "crosses_total": 2.2948,
                "crosses_accurate": 0.4465,
                "touches": 18.8224,
                "possession_lost": 6.8147,
                "dispossessed": 0.866,
                "duels_lost": 2.8538,
                "aerial_lost": 0.6223,
                "total_contest": 1.9285,
                "won_contest": 0.6808,
                "ball_recovery": 1.1587,
                "challenges_lost": 0.1295,
                "fouls": 0.2795,
                "fouls_drawn": 0.2253,
                "assists": 0.0153,
                "assist_rate": 0.0153,
                "interceptions": 0.2197,
                "tackles_won": 0.27,
                "tackles": 0.398,
                "clearances": 0.0049,
                "blocks": 0.008,
                "big_chances_created": 0.0265,
                "big_chances_missed": 0.0,
                "xgot": 0.1361,
                "offsides": 0.1269,
                "ball_carries": 7.2008,
                "total_progression": 50.9378,
                "progressive_carries": 2.3991,
                "shots_off_target": 0.5022,
                "bench_appearance_probability": 0.569,
                "bench_expected_minutes": 25.51
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "expected_goals": 0.0631,
                "goal_rate": 0.0894,
                "goals": 0,
                "shots_on_target": 0.2012,
                "total_shots": 0.7034,
                "expected_assists": 0.0752,
                "key_pass": 0.6162,
                "rating": 6.7921,
                "minutes": 25.51,
                "total_pass": 9.7512,
                "accurate_pass": 7.9472,
                "duels_won": 1.4915,
                "total_long_balls": 0.4458,
                "accurate_long_balls": 0.0832,
                "total_opp_half_passes": 8.5448,
                "accurate_opp_half_passes": 6.9118,
                "crosses_total": 2.2948,
                "crosses_accurate": 0.4465,
                "touches": 18.8224,
                "possession_lost": 6.8147,
                "dispossessed": 0.866,
                "duels_lost": 2.8538,
                "aerial_lost": 0.6223,
                "total_contest": 1.9285,
                "won_contest": 0.6808,
                "ball_recovery": 1.1587,
                "challenges_lost": 0.1295,
                "fouls": 0.2795,
                "fouls_drawn": 0.2253,
                "assist_rate": 0.0153,
                "assists": 0,
                "interceptions": 0.2197,
                "tackles_won": 0.27,
                "tackles": 0.398,
                "clearances": 0.0049,
                "blocks": 0.008,
                "big_chances_created": 0.0265,
                "big_chances_missed": 0.0,
                "xgot": 0.1361,
                "offsides": 0.1269,
                "ball_carries": 7.2008,
                "total_progression": 50.9378,
                "progressive_carries": 2.3991,
                "shots_off_target": 0.5022,
                "bench_appearance_probability": 0.569,
                "bench_expected_minutes": 25.51,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.105,
                "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": 2
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.73 (squad xG sum 1.0016, xG scale 1.7263, xA scale 1.7263, team xA 1.22 = 0.71 x lambda)",
              "stats": {
                "expected_goals": 0.062,
                "goal_rate": 0.0894,
                "goals": 0,
                "shots_on_target": 0.2012,
                "total_shots": 0.7034,
                "expected_assists": 0.0739,
                "key_pass": 0.6162,
                "rating": 6.7921,
                "minutes": 25.51,
                "total_pass": 9.7512,
                "accurate_pass": 7.9472,
                "duels_won": 1.4915,
                "total_long_balls": 0.4458,
                "accurate_long_balls": 0.0832,
                "total_opp_half_passes": 8.5448,
                "accurate_opp_half_passes": 6.9118,
                "crosses_total": 2.2948,
                "crosses_accurate": 0.4465,
                "touches": 18.8224,
                "possession_lost": 6.8147,
                "dispossessed": 0.866,
                "duels_lost": 2.8538,
                "aerial_lost": 0.6223,
                "total_contest": 1.9285,
                "won_contest": 0.6808,
                "ball_recovery": 1.1587,
                "challenges_lost": 0.1295,
                "fouls": 0.2795,
                "fouls_drawn": 0.2253,
                "assist_rate": 0.0153,
                "assists": 0,
                "interceptions": 0.2197,
                "tackles_won": 0.27,
                "tackles": 0.398,
                "clearances": 0.0049,
                "blocks": 0.008,
                "big_chances_created": 0.0265,
                "big_chances_missed": 0.0,
                "xgot": 0.1337,
                "offsides": 0.1269,
                "ball_carries": 7.2008,
                "total_progression": 50.9378,
                "progressive_carries": 2.3991,
                "shots_off_target": 0.5022,
                "bench_appearance_probability": 0.569,
                "bench_expected_minutes": 25.51,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.105,
                "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.2325,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 1.729,
                "squad_xg_sum": 1.0016,
                "squad_xa_sum": 0.7085,
                "team_expected_assists": 1.2231,
                "team_xa_to_xg_ratio": 0.7074,
                "bench_appearance_weighted": true,
                "xg_scale": 1.7263,
                "xa_scale": 1.7263,
                "opponent_lambda": 1.255,
                "scoreline_reset": true,
                "appearance_weight": 0.569
              }
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 76.0)",
              "stats": {
                "expected_goals": 0.062,
                "goal_rate": 0.0894,
                "goals": 0,
                "shots_on_target": 0.2012,
                "total_shots": 0.7034,
                "expected_assists": 0.0739,
                "key_pass": 0.6162,
                "rating": 6.7921,
                "minutes": 25.51,
                "total_pass": 9.7512,
                "accurate_pass": 7.9472,
                "duels_won": 1.4915,
                "total_long_balls": 0.4458,
                "accurate_long_balls": 0.0832,
                "total_opp_half_passes": 8.5448,
                "accurate_opp_half_passes": 6.9118,
                "crosses_total": 2.2948,
                "crosses_accurate": 0.4465,
                "touches": 18.8224,
                "possession_lost": 6.8147,
                "dispossessed": 0.866,
                "duels_lost": 2.8538,
                "aerial_lost": 0.6223,
                "total_contest": 1.9285,
                "won_contest": 0.6808,
                "ball_recovery": 1.1587,
                "challenges_lost": 0.1295,
                "fouls": 0.2795,
                "fouls_drawn": 0.2253,
                "assist_rate": 0.0153,
                "assists": 0,
                "interceptions": 0.2197,
                "tackles_won": 0.27,
                "tackles": 0.398,
                "clearances": 0.0049,
                "blocks": 0.008,
                "big_chances_created": 0.0265,
                "big_chances_missed": 0.0,
                "xgot": 0.1337,
                "offsides": 0.1269,
                "ball_carries": 7.2008,
                "total_progression": 50.9378,
                "progressive_carries": 2.3991,
                "shots_off_target": 0.5022,
                "bench_appearance_probability": 0.569,
                "bench_expected_minutes": 25.51,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.105,
                "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.2325,
                "creation_factor": 0.8,
                "fifa_overall": 76.0
              },
              "params": {
                "match_squad_rank": 12,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3133,
                "fifa_rank": 1972.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 76.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "expected_goals": 0.062,
                "goal_rate": 0.0894,
                "goals": 0,
                "shots_on_target": 0.2012,
                "total_shots": 0.7034,
                "expected_assists": 0.0739,
                "key_pass": 0.6162,
                "rating": 6.7921,
                "minutes": 25.51,
                "total_pass": 9.7512,
                "accurate_pass": 7.9472,
                "duels_won": 1.4915,
                "total_long_balls": 0.4458,
                "accurate_long_balls": 0.0832,
                "total_opp_half_passes": 8.5448,
                "accurate_opp_half_passes": 6.9118,
                "crosses_total": 2.2948,
                "crosses_accurate": 0.4465,
                "touches": 18.8224,
                "possession_lost": 6.8147,
                "dispossessed": 0.866,
                "duels_lost": 2.8538,
                "aerial_lost": 0.6223,
                "total_contest": 1.9285,
                "won_contest": 0.6808,
                "ball_recovery": 1.1587,
                "challenges_lost": 0.1295,
                "fouls": 0.2795,
                "fouls_drawn": 0.2253,
                "assist_rate": 0.0153,
                "assists": 0,
                "interceptions": 0.2197,
                "tackles_won": 0.27,
                "tackles": 0.398,
                "clearances": 0.0049,
                "blocks": 0.008,
                "big_chances_created": 0.0265,
                "big_chances_missed": 0.0,
                "xgot": 0.1337,
                "offsides": 0.1269,
                "ball_carries": 7.2008,
                "total_progression": 50.9378,
                "progressive_carries": 2.3991,
                "shots_off_target": 0.5022,
                "bench_appearance_probability": 0.569,
                "bench_expected_minutes": 25.51,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.105,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0587,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.2325,
                "creation_factor": 0.8,
                "fifa_overall": 76.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 2,
                "goals_allocated": 0,
                "goal_probability": 0.0587,
                "goal_rate": 0.0894,
                "scorer_weight": 0.0764,
                "squad_weight_total": 1.9109,
                "weight_share": 0.04,
                "finishing_factor": 1.2325,
                "appearance_weight": 0.569,
                "weight_rank": 6,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Iñaki Williams",
                    "weight": 0.5576,
                    "already": 0,
                    "effective_weight": 0.5576,
                    "runner_up": "Nico Williams",
                    "runner_up_effective_weight": 0.305
                  },
                  {
                    "n": 2,
                    "player": "Nico Williams",
                    "weight": 0.305,
                    "already": 0,
                    "effective_weight": 0.305,
                    "runner_up": "Álex Berenguer",
                    "runner_up_effective_weight": 0.2692
                  }
                ]
              }
            },
            {
              "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.062,
                "goal_rate": 0.0894,
                "goals": 0,
                "shots_on_target": 0.2012,
                "total_shots": 0.7034,
                "expected_assists": 0.0739,
                "key_pass": 0.6162,
                "rating": 6.7921,
                "minutes": 25.51,
                "total_pass": 9.7512,
                "accurate_pass": 7.9472,
                "duels_won": 1.4915,
                "total_long_balls": 0.4458,
                "accurate_long_balls": 0.0832,
                "total_opp_half_passes": 8.5448,
                "accurate_opp_half_passes": 6.9118,
                "crosses_total": 2.2948,
                "crosses_accurate": 0.4465,
                "touches": 18.8224,
                "possession_lost": 6.8147,
                "dispossessed": 0.866,
                "duels_lost": 2.8538,
                "aerial_lost": 0.6223,
                "total_contest": 1.9285,
                "won_contest": 0.6808,
                "ball_recovery": 1.1587,
                "challenges_lost": 0.1295,
                "fouls": 0.2795,
                "fouls_drawn": 0.2253,
                "assist_rate": 0.0153,
                "assists": 0,
                "interceptions": 0.2197,
                "tackles_won": 0.27,
                "tackles": 0.398,
                "clearances": 0.0049,
                "blocks": 0.008,
                "big_chances_created": 0.0265,
                "big_chances_missed": 0.0,
                "xgot": 0.1337,
                "offsides": 0.1269,
                "ball_carries": 7.2008,
                "total_progression": 50.9378,
                "progressive_carries": 2.3991,
                "shots_off_target": 0.5022,
                "bench_appearance_probability": 0.569,
                "bench_expected_minutes": 25.51,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.105,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0587,
                "projected_assists": 0,
                "assist_probability": 0.0693,
                "finishing_factor": 1.2325,
                "creation_factor": 0.8,
                "fifa_overall": 76.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0693,
                "assist_rate": 0.0153,
                "provider_weight": 0.0591,
                "squad_weight_total": 1.1843,
                "weight_share": 0.0499,
                "creation_factor": 0.8,
                "appearance_weight": 0.569,
                "weight_rank": 8,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Álex Berenguer",
                    "weight": 0.2673,
                    "already": 0,
                    "effective_weight": 0.2673,
                    "runner_up": "Yuri Berchiche",
                    "runner_up_effective_weight": 0.2271
                  }
                ]
              }
            }
          ]
        },
        "Beñat Prados": {
          "player_id": 1012409,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 6,
          "height": 179,
          "market_value": 15500000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0182,
            "assist_rate": 0.0446,
            "assists": 0,
            "expected_goals": 0.0208,
            "goal_rate": 0.0368,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 0,
            "rating": 6.7008,
            "minutes": 23,
            "total_pass": 29,
            "accurate_pass": 22,
            "duels_won": 4,
            "total_long_balls": 1,
            "accurate_long_balls": 1,
            "total_own_half_passes": 12,
            "accurate_own_half_passes": 9,
            "total_opp_half_passes": 17,
            "accurate_opp_half_passes": 12,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 38,
            "possession_lost": 9.3932,
            "dispossessed": 0.5497,
            "duels_lost": 5,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 1,
            "tackles_won": 1,
            "tackles": 2,
            "clearances": 0,
            "total_contest": 1,
            "won_contest": 1,
            "challenges_lost": 1,
            "fouls": 3,
            "fouls_drawn": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.525,
            "bench_expected_minutes": 22.56,
            "projected_substitution_order": 2,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.105,
            "projected_substitution_game_state_adjustment": 0,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0204,
            "projected_assists": 0,
            "assist_probability": 0.0179,
            "finishing_factor": 1.189,
            "creation_factor": 1.25,
            "fifa_overall": 77.0
          },
          "latest_10_games": [
            {
              "match_id": 14083167.0,
              "match_date": "2025-08-31",
              "home_team": "Real Betis",
              "away_team": "Athletic Club",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Athletic Club",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 62,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0269,
                "expected_assists": 0.0104,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 37,
                "accurate_pass": 28,
                "key_pass": 1,
                "tackles": 3,
                "tackles_won": 2,
                "interceptions": 2,
                "aerial_won": 2,
                "duels_won": 6,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14082859.0,
              "match_date": "2025-08-25",
              "home_team": "Athletic Club",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Athletic Club",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 23,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0027,
                "total_shots": 0,
                "total_pass": 12,
                "accurate_pass": 9,
                "key_pass": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 3281,
            "combined_rank_score": 1223.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 873.0,
            "sofascore_rating": 6.55,
            "sofascore_appearances": 2.0,
            "fifa_rank": 1573.0,
            "fifa_overall": 77.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 15,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.7008,
            "source_file": "data/player_rankings.csv",
            "player_name": "Beñat Prados",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Alfonso Herrero",
                  "ranking": 3276
                },
                {
                  "player_name": "Tim Iroegbunam",
                  "ranking": 3277
                },
                {
                  "player_name": "Jaminton Campaz",
                  "ranking": 3278
                },
                {
                  "player_name": "Miguel Merentiel",
                  "ranking": 3279
                },
                {
                  "player_name": "Pep Biel",
                  "ranking": 3280
                }
              ],
              "lower": [
                {
                  "player_name": "Zlatko Tripić",
                  "ranking": 3282
                },
                {
                  "player_name": "Omari Hutchinson",
                  "ranking": 3283
                },
                {
                  "player_name": "Fabian Rieder",
                  "ranking": 3284
                },
                {
                  "player_name": "Brian Rodríguez",
                  "ranking": 3285
                },
                {
                  "player_name": "Gorrotxa",
                  "ranking": 3286
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.375,
          "history_matches": 2,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "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": 2,
            "data_confidence": 0.375,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 22.555021941280785,
            "bench_appearance_prob": 0.5252282700582175,
            "market_value_adjustment": 1.0171,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost M_service (2 historical appearances) to 22.6 expected mins (appearance prob 0.53)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 0.2445,
                "expected_assists": 0.0178,
                "assists": 0.0395,
                "assist_rate": 0.0395,
                "expected_goals": 0.0203,
                "goals": 0.0326,
                "goal_rate": 0.0326,
                "shots_on_target": 0.0738,
                "total_shots": 0.2432,
                "rating": 6.7008,
                "minutes": 20.33,
                "total_pass": 25.5135,
                "accurate_pass": 19.2703,
                "duels_won": 3.2432,
                "total_long_balls": 1.0,
                "accurate_long_balls": 0.4595,
                "total_own_half_passes": 10.8649,
                "accurate_own_half_passes": 8.3244,
                "total_opp_half_passes": 14.6486,
                "accurate_opp_half_passes": 10.9459,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 33.9189,
                "possession_lost": 8.3243,
                "dispossessed": 0.5405,
                "duels_lost": 4.1622,
                "aerial_won": 1.0811,
                "aerial_lost": 0.0,
                "interceptions": 1.0811,
                "tackles_won": 1.0811,
                "tackles": 1.6216,
                "clearances": 0.0,
                "total_contest": 1.0811,
                "won_contest": 0.5405,
                "challenges_lost": 0.5405,
                "fouls": 2.5405,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "shots_off_target": 0.1693
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 7,
                  "trained_at": "2026-11-01T11:27:07.750726+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 905,
                    "rows": 25067
                  }
                },
                "player_history": [
                  {
                    "match_date": "2025-08-31",
                    "opponent": "Real Betis",
                    "minutes": 62.0,
                    "is_starting": true,
                    "weight": 0.5405,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2025-08-25",
                    "opponent": "Rayo Vallecano",
                    "minutes": 23.0,
                    "is_starting": false,
                    "weight": 0.4595,
                    "rating": 6.5
                  }
                ],
                "feature_row": {
                  "history_matches": 2.0,
                  "is_starting_11": 0.0,
                  "totalShots": 0.5405,
                  "creative_index": 0.4041,
                  "expectedGoals": 0.0145,
                  "expectedAssists": 0.0069,
                  "keyPass": 1.0
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.24449951946735382,
                    "model_output": 0.2445,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1578
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1373
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0712
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0516
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0289
                      }
                    ],
                    "decomposition": {
                      "base": 0.8902,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.4173
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0692
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0471
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0157
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0146
                        }
                      ],
                      "others": -0.0818,
                      "total": 0.2445,
                      "log_link": true,
                      "margin_base": -0.116298,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.632469
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.158312
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.124026
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": -0.04515
                        },
                        {
                          "name": "cross_creative_contribution",
                          "margin": -0.043727
                        }
                      ],
                      "others_margin": -0.28856
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.017819957807660103,
                    "model_output": 0.0178,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1181
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.1136
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.1034
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0572
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0473
                      }
                    ],
                    "decomposition": {
                      "base": 0.0847,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0394
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.013
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0061
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0013
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0012
                        }
                      ],
                      "others": -0.0059,
                      "total": 0.0178,
                      "log_link": true,
                      "margin_base": -2.468924,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.625649
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.336747
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.210816
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.05193
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.051275
                        }
                      ],
                      "others_margin": -0.282097
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.03950326889753342,
                    "model_output": 0.0395,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0627
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0445
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0417
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0324
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0293
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.025
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0057
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0051
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0037
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.003
                        }
                      ],
                      "others": -0.0105,
                      "total": 0.0395,
                      "log_link": true,
                      "margin_base": -2.463472,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.347548
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.099371
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.098952
                        },
                        {
                          "name": "creative_index",
                          "margin": 0.071989
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.058854
                        }
                      ],
                      "others_margin": -0.235163
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.020315762609243393,
                    "model_output": 0.0203,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedGoals",
                        "importance": 0.1255
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0756
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0438
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0265
                      }
                    ],
                    "decomposition": {
                      "base": 0.0918,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0407
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0199
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0045
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0021
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0017
                        }
                      ],
                      "others": -0.0026,
                      "total": 0.0203,
                      "log_link": true,
                      "margin_base": -2.387963,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.584907
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.492127
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.156298
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.081331
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.071849
                        }
                      ],
                      "others_margin": -0.121885
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.032642096281051636,
                    "model_output": 0.0326,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0923
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.067
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.041
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0334
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.0946,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.033
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0117
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0087
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0041
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0021
                        }
                      ],
                      "others": -0.0024,
                      "total": 0.0326,
                      "log_link": true,
                      "margin_base": -2.358385,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.428547
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.210213
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.192159
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.105423
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.058373
                        }
                      ],
                      "others_margin": -0.069053
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.07382828742265701,
                    "model_output": 0.0738,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.117
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0884
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0772
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0315
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0258
                      }
                    ],
                    "decomposition": {
                      "base": 0.3179,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1428
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0417
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0194
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0114
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0094
                        }
                      ],
                      "others": -0.0194,
                      "total": 0.0738,
                      "log_link": true,
                      "margin_base": -1.146086,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.596248
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.272072
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.157222
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.104936
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.095835
                        }
                      ],
                      "others_margin": -0.233612
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.24316270649433136,
                    "model_output": 0.2432,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1349
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1208
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0462
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.044
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0312
                      }
                    ],
                    "decomposition": {
                      "base": 0.9849,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.3363
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.198
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0385
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0378
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0262
                        }
                      ],
                      "others": -0.1049,
                      "total": 0.2432,
                      "log_link": false,
                      "margin_base": 0.984935,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.336254
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.198024
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.038514
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.037847
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.026179
                        }
                      ],
                      "others_margin": -0.104955
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.7008185386657715,
                    "model_output": 6.7008,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "rating",
                        "importance": 0.0864
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0749
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0486
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0482
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 6.8574,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0924
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0325
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.009
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": -0.0056
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0052
                        }
                      ],
                      "others": -0.0119,
                      "total": 6.7008,
                      "log_link": false,
                      "margin_base": 6.857404,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.09244
                        },
                        {
                          "name": "rating",
                          "margin": -0.032527
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.009029
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": -0.005571
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.005245
                        }
                      ],
                      "others_margin": -0.011773
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "substitute",
                  "history_matches": 2,
                  "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 1.0171, quality 0.585)",
              "stats": {
                "key_pass": 0.2487,
                "expected_assists": 0.0181,
                "assists": 0.0402,
                "assist_rate": 0.0402,
                "expected_goals": 0.0207,
                "goals": 0.0332,
                "goal_rate": 0.0332,
                "shots_on_target": 0.0751,
                "total_shots": 0.2473,
                "rating": 6.7008,
                "minutes": 20.33,
                "total_pass": 25.9498,
                "accurate_pass": 19.5998,
                "duels_won": 3.2987,
                "total_long_balls": 1.0171,
                "accurate_long_balls": 0.4674,
                "total_own_half_passes": 11.0507,
                "accurate_own_half_passes": 8.4667,
                "total_opp_half_passes": 14.8991,
                "accurate_opp_half_passes": 11.1331,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 34.4989,
                "possession_lost": 8.4666,
                "dispossessed": 0.5497,
                "duels_lost": 4.2334,
                "aerial_won": 1.0996,
                "aerial_lost": 0.0,
                "interceptions": 1.0996,
                "tackles_won": 1.0996,
                "tackles": 1.6493,
                "clearances": 0.0,
                "total_contest": 1.0996,
                "won_contest": 0.5497,
                "challenges_lost": 0.5497,
                "fouls": 2.5839,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "shots_off_target": 0.1722
              },
              "params": {
                "market_value_eur": 15500000,
                "quality_factor": 0.5846,
                "boost_factor": 1.0171,
                "reference_quality": 0.505,
                "history_matches": 2,
                "history_shrink": 0.7143,
                "market_value_known": true
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 20.3 to 22.6 expected minutes (appearance prob 0.53)",
              "stats": {
                "key_pass": 0.2759,
                "expected_assists": 0.0201,
                "assists": 0.0446,
                "assist_rate": 0.0446,
                "expected_goals": 0.023,
                "goals": 0.0368,
                "goal_rate": 0.0368,
                "shots_on_target": 0.0833,
                "total_shots": 0.2744,
                "rating": 6.7008,
                "minutes": 22.56,
                "total_pass": 28.7899,
                "accurate_pass": 21.7449,
                "duels_won": 3.6597,
                "total_long_balls": 1.1284,
                "accurate_long_balls": 0.5186,
                "total_own_half_passes": 12.2601,
                "accurate_own_half_passes": 9.3933,
                "total_opp_half_passes": 16.5297,
                "accurate_opp_half_passes": 12.3516,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 38.2746,
                "possession_lost": 9.3932,
                "dispossessed": 0.5497,
                "duels_lost": 4.6967,
                "aerial_won": 1.2199,
                "aerial_lost": 0.0,
                "interceptions": 1.2199,
                "tackles_won": 1.2199,
                "tackles": 1.8298,
                "clearances": 0.0,
                "total_contest": 1.2199,
                "won_contest": 0.6099,
                "challenges_lost": 0.5497,
                "fouls": 2.8667,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "shots_off_target": 0.191,
                "bench_appearance_probability": 0.525,
                "bench_expected_minutes": 22.56
              },
              "params": {
                "expected_minutes": 22.56,
                "projection_minutes": 20.33,
                "minutes_scale": 1.1094,
                "appearance_probability": 0.525
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0.2759,
                "expected_assists": 0.0201,
                "assists": 0.0446,
                "assist_rate": 0.0446,
                "expected_goals": 0.023,
                "goals": 0.0368,
                "goal_rate": 0.0368,
                "shots_on_target": 0.0833,
                "total_shots": 0.2744,
                "rating": 6.7008,
                "minutes": 22.56,
                "total_pass": 28.7899,
                "accurate_pass": 21.7449,
                "duels_won": 3.6597,
                "total_long_balls": 1.1284,
                "accurate_long_balls": 0.5186,
                "total_own_half_passes": 12.2601,
                "accurate_own_half_passes": 9.3933,
                "total_opp_half_passes": 16.5297,
                "accurate_opp_half_passes": 12.3516,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 38.2746,
                "possession_lost": 9.3932,
                "dispossessed": 0.5497,
                "duels_lost": 4.6967,
                "aerial_won": 1.2199,
                "aerial_lost": 0.0,
                "interceptions": 1.2199,
                "tackles_won": 1.2199,
                "tackles": 1.8298,
                "clearances": 0.0,
                "total_contest": 1.2199,
                "won_contest": 0.6099,
                "challenges_lost": 0.5497,
                "fouls": 2.8667,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "shots_off_target": 0.191,
                "bench_appearance_probability": 0.525,
                "bench_expected_minutes": 22.56
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "scoreline_reset",
              "description": "Team scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projection",
              "stats": {
                "key_pass": 0.2759,
                "expected_assists": 0.0201,
                "assist_rate": 0.0446,
                "assists": 0,
                "expected_goals": 0.023,
                "goal_rate": 0.0368,
                "goals": 0,
                "shots_on_target": 0.0833,
                "total_shots": 0.2744,
                "rating": 6.7008,
                "minutes": 22.56,
                "total_pass": 28.7899,
                "accurate_pass": 21.7449,
                "duels_won": 3.6597,
                "total_long_balls": 1.1284,
                "accurate_long_balls": 0.5186,
                "total_own_half_passes": 12.2601,
                "accurate_own_half_passes": 9.3933,
                "total_opp_half_passes": 16.5297,
                "accurate_opp_half_passes": 12.3516,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 38.2746,
                "possession_lost": 9.3932,
                "dispossessed": 0.5497,
                "duels_lost": 4.6967,
                "aerial_won": 1.2199,
                "aerial_lost": 0.0,
                "interceptions": 1.2199,
                "tackles_won": 1.2199,
                "tackles": 1.8298,
                "clearances": 0.0,
                "total_contest": 1.2199,
                "won_contest": 0.6099,
                "challenges_lost": 0.5497,
                "fouls": 2.8667,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "shots_off_target": 0.191,
                "bench_appearance_probability": 0.525,
                "bench_expected_minutes": 22.56,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.105,
                "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": 2
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.73 (squad xG sum 1.0016, xG scale 1.7263, xA scale 1.7263, team xA 1.22 = 0.71 x lambda)",
              "stats": {
                "key_pass": 0.2759,
                "expected_assists": 0.0182,
                "assist_rate": 0.0446,
                "assists": 0,
                "expected_goals": 0.0208,
                "goal_rate": 0.0368,
                "goals": 0,
                "shots_on_target": 0.0833,
                "total_shots": 0.2744,
                "rating": 6.7008,
                "minutes": 22.56,
                "total_pass": 28.7899,
                "accurate_pass": 21.7449,
                "duels_won": 3.6597,
                "total_long_balls": 1.1284,
                "accurate_long_balls": 0.5186,
                "total_own_half_passes": 12.2601,
                "accurate_own_half_passes": 9.3933,
                "total_opp_half_passes": 16.5297,
                "accurate_opp_half_passes": 12.3516,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 38.2746,
                "possession_lost": 9.3932,
                "dispossessed": 0.5497,
                "duels_lost": 4.6967,
                "aerial_won": 1.2199,
                "aerial_lost": 0.0,
                "interceptions": 1.2199,
                "tackles_won": 1.2199,
                "tackles": 1.8298,
                "clearances": 0.0,
                "total_contest": 1.2199,
                "won_contest": 0.6099,
                "challenges_lost": 0.5497,
                "fouls": 2.8667,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "shots_off_target": 0.191,
                "bench_appearance_probability": 0.525,
                "bench_expected_minutes": 22.56,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.105,
                "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.189,
                "creation_factor": 1.25
              },
              "params": {
                "team_lambda": 1.729,
                "squad_xg_sum": 1.0016,
                "squad_xa_sum": 0.7085,
                "team_expected_assists": 1.2231,
                "team_xa_to_xg_ratio": 0.7074,
                "bench_appearance_weighted": true,
                "xg_scale": 1.7263,
                "xa_scale": 1.7263,
                "opponent_lambda": 1.255,
                "scoreline_reset": true,
                "appearance_weight": 0.525
              }
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 77.0)",
              "stats": {
                "key_pass": 0.2759,
                "expected_assists": 0.0182,
                "assist_rate": 0.0446,
                "assists": 0,
                "expected_goals": 0.0208,
                "goal_rate": 0.0368,
                "goals": 0,
                "shots_on_target": 0.0833,
                "total_shots": 0.2744,
                "rating": 6.7008,
                "minutes": 22.56,
                "total_pass": 28.7899,
                "accurate_pass": 21.7449,
                "duels_won": 3.6597,
                "total_long_balls": 1.1284,
                "accurate_long_balls": 0.5186,
                "total_own_half_passes": 12.2601,
                "accurate_own_half_passes": 9.3933,
                "total_opp_half_passes": 16.5297,
                "accurate_opp_half_passes": 12.3516,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 38.2746,
                "possession_lost": 9.3932,
                "dispossessed": 0.5497,
                "duels_lost": 4.6967,
                "aerial_won": 1.2199,
                "aerial_lost": 0.0,
                "interceptions": 1.2199,
                "tackles_won": 1.2199,
                "tackles": 1.8298,
                "clearances": 0.0,
                "total_contest": 1.2199,
                "won_contest": 0.6099,
                "challenges_lost": 0.5497,
                "fouls": 2.8667,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "shots_off_target": 0.191,
                "bench_appearance_probability": 0.525,
                "bench_expected_minutes": 22.56,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.105,
                "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.189,
                "creation_factor": 1.25,
                "fifa_overall": 77.0
              },
              "params": {
                "match_squad_rank": 15,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3281,
                "fifa_rank": 1573.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 77.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 2 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "key_pass": 0.2759,
                "expected_assists": 0.0182,
                "assist_rate": 0.0446,
                "assists": 0,
                "expected_goals": 0.0208,
                "goal_rate": 0.0368,
                "goals": 0,
                "shots_on_target": 0.0833,
                "total_shots": 0.2744,
                "rating": 6.7008,
                "minutes": 22.56,
                "total_pass": 28.7899,
                "accurate_pass": 21.7449,
                "duels_won": 3.6597,
                "total_long_balls": 1.1284,
                "accurate_long_balls": 0.5186,
                "total_own_half_passes": 12.2601,
                "accurate_own_half_passes": 9.3933,
                "total_opp_half_passes": 16.5297,
                "accurate_opp_half_passes": 12.3516,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 38.2746,
                "possession_lost": 9.3932,
                "dispossessed": 0.5497,
                "duels_lost": 4.6967,
                "aerial_won": 1.2199,
                "aerial_lost": 0.0,
                "interceptions": 1.2199,
                "tackles_won": 1.2199,
                "tackles": 1.8298,
                "clearances": 0.0,
                "total_contest": 1.2199,
                "won_contest": 0.6099,
                "challenges_lost": 0.5497,
                "fouls": 2.8667,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "shots_off_target": 0.191,
                "bench_appearance_probability": 0.525,
                "bench_expected_minutes": 22.56,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.105,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0204,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.189,
                "creation_factor": 1.25,
                "fifa_overall": 77.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 2,
                "goals_allocated": 0,
                "goal_probability": 0.0204,
                "goal_rate": 0.0368,
                "scorer_weight": 0.0247,
                "squad_weight_total": 1.9109,
                "weight_share": 0.0129,
                "finishing_factor": 1.189,
                "appearance_weight": 0.525,
                "weight_rank": 12,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Iñaki Williams",
                    "weight": 0.5576,
                    "already": 0,
                    "effective_weight": 0.5576,
                    "runner_up": "Nico Williams",
                    "runner_up_effective_weight": 0.305
                  },
                  {
                    "n": 2,
                    "player": "Nico Williams",
                    "weight": 0.305,
                    "already": 0,
                    "effective_weight": 0.305,
                    "runner_up": "Álex Berenguer",
                    "runner_up_effective_weight": 0.2692
                  }
                ]
              }
            },
            {
              "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.2759,
                "expected_assists": 0.0182,
                "assist_rate": 0.0446,
                "assists": 0,
                "expected_goals": 0.0208,
                "goal_rate": 0.0368,
                "goals": 0,
                "shots_on_target": 0.0833,
                "total_shots": 0.2744,
                "rating": 6.7008,
                "minutes": 22.56,
                "total_pass": 28.7899,
                "accurate_pass": 21.7449,
                "duels_won": 3.6597,
                "total_long_balls": 1.1284,
                "accurate_long_balls": 0.5186,
                "total_own_half_passes": 12.2601,
                "accurate_own_half_passes": 9.3933,
                "total_opp_half_passes": 16.5297,
                "accurate_opp_half_passes": 12.3516,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 38.2746,
                "possession_lost": 9.3932,
                "dispossessed": 0.5497,
                "duels_lost": 4.6967,
                "aerial_won": 1.2199,
                "aerial_lost": 0.0,
                "interceptions": 1.2199,
                "tackles_won": 1.2199,
                "tackles": 1.8298,
                "clearances": 0.0,
                "total_contest": 1.2199,
                "won_contest": 0.6099,
                "challenges_lost": 0.5497,
                "fouls": 2.8667,
                "fouls_drawn": 0.0,
                "blocks": 0.0,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.0,
                "shots_off_target": 0.191,
                "bench_appearance_probability": 0.525,
                "bench_expected_minutes": 22.56,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.105,
                "projected_substitution_game_state_adjustment": 0,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0204,
                "projected_assists": 0,
                "assist_probability": 0.0179,
                "finishing_factor": 1.189,
                "creation_factor": 1.25,
                "fifa_overall": 77.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0179,
                "assist_rate": 0.0446,
                "provider_weight": 0.0227,
                "squad_weight_total": 1.1843,
                "weight_share": 0.0192,
                "creation_factor": 1.25,
                "appearance_weight": 0.525,
                "weight_rank": 11,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Álex Berenguer",
                    "weight": 0.2673,
                    "already": 0,
                    "effective_weight": 0.2673,
                    "runner_up": "Yuri Berchiche",
                    "runner_up_effective_weight": 0.2271
                  }
                ]
              }
            }
          ]
        }
      },
      "team_totals": {
        "projected_goals": 2,
        "expected_goals": 1.73,
        "expected_assists": 1.22,
        "total_shots": 11,
        "shots_on_target": 2,
        "total_passes": 422,
        "interceptions": 9,
        "tackles": 16,
        "avg_rating": 6.87,
        "possession_estimated_pct": 49.8,
        "pressing_actions_per_90": 7.1
      }
    },
    "Real Sociedad": {
      "formation": "4-2-3-1",
      "players": {
        "Álex Remiro": {
          "player_id": 791773,
          "position": "G",
          "position_depth": "G",
          "is_starter": true,
          "shirt_number": 1,
          "height": 191,
          "market_value": 9600000,
          "stats": {
            "saves": 3,
            "goals_prevented": -0.0223,
            "rating": 7.1197,
            "minutes": 90,
            "total_pass": 39,
            "accurate_pass": 27,
            "total_long_balls": 22,
            "accurate_long_balls": 10,
            "touches": 49,
            "clearances": 1,
            "ball_recovery": 7,
            "high_claims": 1,
            "punches": 0.6978,
            "aerial_won": 0,
            "sweeper_actions": 2,
            "sweeper_accurate": 2,
            "saves_inside_box": 2,
            "possession_lost": 13.2823,
            "duels_won": 0,
            "duels_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "total_own_half_passes": 24,
            "accurate_own_half_passes": 21,
            "gk_engine_opponent_lambda": 1.2686,
            "shots_faced": 16.4,
            "expected_saves": 4.01,
            "high_pressure_saves": 1.38,
            "opponent_faced": "Iñaki Williams, Nico Williams",
            "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": 81.0
          },
          "latest_10_games": [
            {
              "match_id": 16421086.0,
              "match_date": "2026-10-25",
              "home_team": "Real Sociedad",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0031,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "total_pass": 41,
                "accurate_pass": 30,
                "tackles": 0,
                "tackles_won": 0,
                "interceptions": 0,
                "clearances": 1,
                "aerial_won": 0,
                "duels_won": 0,
                "ball_recovery": 2,
                "saves": 1,
                "goals_prevented": -0.1987
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421073.0,
              "match_date": "2026-10-18",
              "home_team": "Málaga CF",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 90,
                "rating": 7.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.003,
                "total_shots": 0,
                "total_pass": 48,
                "accurate_pass": 32,
                "key_pass": 1,
                "clearances": 2,
                "ball_recovery": 6,
                "saves": 4,
                "goals_prevented": 0.1916
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421067.0,
              "match_date": "2026-10-11",
              "home_team": "Real Sociedad",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0066,
                "total_shots": 0,
                "total_pass": 29,
                "accurate_pass": 12,
                "clearances": 3,
                "ball_recovery": 11,
                "saves": 6,
                "goals_prevented": -0.451
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416297.0,
              "match_date": "2026-09-20",
              "home_team": "Valencia",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Valencia",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0036,
                "total_shots": 0,
                "total_pass": 34,
                "accurate_pass": 16,
                "ball_recovery": 8,
                "saves": 4,
                "goals_prevented": -0.9518
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416332.0,
              "match_date": "2026-09-13",
              "home_team": "Real Sociedad",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0014,
                "total_shots": 0,
                "total_pass": 35,
                "accurate_pass": 28,
                "clearances": 4,
                "ball_recovery": 8,
                "saves": 2,
                "goals_prevented": -1.0483
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416340.0,
              "match_date": "2026-09-03",
              "home_team": "Real Sociedad",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 90,
                "rating": 7.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0021,
                "total_shots": 0,
                "total_pass": 43,
                "accurate_pass": 33,
                "clearances": 2,
                "ball_recovery": 5,
                "saves": 2,
                "goals_prevented": 0.1123
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416310.0,
              "match_date": "2026-08-29",
              "home_team": "Real Sociedad",
              "away_team": "Espanyol",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0024,
                "total_shots": 0,
                "total_pass": 40,
                "accurate_pass": 25,
                "ball_recovery": 3,
                "saves": 2,
                "goals_prevented": -0.2288
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421051.0,
              "match_date": "2026-08-26",
              "home_team": "Real Madrid",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 90,
                "rating": 8.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0006,
                "total_shots": 0,
                "total_pass": 37,
                "accurate_pass": 28,
                "ball_recovery": 11,
                "saves": 7,
                "goals_prevented": 0.2697
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416293.0,
              "match_date": "2026-08-21",
              "home_team": "Real Betis",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 90,
                "rating": 9.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0061,
                "total_shots": 0,
                "total_pass": 48,
                "accurate_pass": 33,
                "ball_recovery": 14,
                "saves": 6,
                "goals_prevented": 1.5276
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083687.0,
              "match_date": "2026-05-17",
              "home_team": "Real Sociedad",
              "away_team": "Valencia",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Valencia",
              "stats": {
                "minutes": 90,
                "rating": 5.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0006,
                "total_shots": 0,
                "total_pass": 33,
                "accurate_pass": 22,
                "clearances": 2,
                "ball_recovery": 5,
                "saves": 2,
                "goals_prevented": -2.2689
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 591,
            "combined_rank_score": 308.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 43.0,
            "sofascore_rating": 7.825,
            "sofascore_appearances": 4.0,
            "fifa_rank": 574.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": 7.1197,
            "source_file": "data/player_rankings.csv",
            "player_name": "Álex Remiro",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "George Pickford",
                  "ranking": 586
                },
                {
                  "player_name": "Shane Nti",
                  "ranking": 587
                },
                {
                  "player_name": "Gnangoro Bouare Samake",
                  "ranking": 588
                },
                {
                  "player_name": "Nizar El Jmili Ben Hamou",
                  "ranking": 589
                },
                {
                  "player_name": "Manuel Angel Castillo Rodrguez",
                  "ranking": 590
                }
              ],
              "lower": [
                {
                  "player_name": "Dejan Kulusevski",
                  "ranking": 592
                },
                {
                  "player_name": "Inpyo Oh",
                  "ranking": 593
                },
                {
                  "player_name": "Leandro Paredes",
                  "ranking": 594
                },
                {
                  "player_name": "Claudio Sepúlveda",
                  "ranking": 595
                },
                {
                  "player_name": "Juan Manuel Requena",
                  "ranking": 596
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.79,
          "history_matches": 46,
          "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": 46,
            "data_confidence": 0.79,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0004,
            "fbref_prior_metrics": {
              "squad": "Real Sociedad",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 4.0,
              "starts": 4.0,
              "minutes": 360.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.0,
              "prior_reliability": 0.2667
            },
            "rationale": "XGBoost regressor (G_service) evaluated 46 historical appearances across 3 target models; FBref 2026-2027 prior blended (La Liga, Real Sociedad, rel: 0.27, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost G_service raw output over 3 target models",
              "stats": {
                "saves": 2.9768,
                "goals_prevented": -0.0222,
                "rating": 7.1197,
                "minutes": 90.0,
                "total_pass": 39.4229,
                "accurate_pass": 26.5362,
                "total_long_balls": 22.2533,
                "accurate_long_balls": 9.5903,
                "touches": 48.8619,
                "clearances": 1.4924,
                "ball_recovery": 7.1662,
                "high_claims": 0.6632,
                "punches": 0.6975,
                "aerial_won": 0.0796,
                "sweeper_actions": 1.7105,
                "sweeper_accurate": 1.7101,
                "saves_inside_box": 2.1004,
                "possession_lost": 13.277,
                "duels_won": 0.1393,
                "duels_lost": 0.0075,
                "total_contest": 0.0008,
                "won_contest": 0.0008,
                "fouls": 0.0,
                "fouls_drawn": 0.0898,
                "total_own_half_passes": 23.5666,
                "accurate_own_half_passes": 20.8651
              },
              "trace": {
                "model": {
                  "position_service": "G",
                  "schema_version": 5,
                  "trained_at": "2026-11-01T11:25:22.869020+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 201,
                    "rows": 7418
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-25",
                    "opponent": "Levante UD",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1501,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Málaga CF",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1276,
                    "rating": 7.4
                  },
                  {
                    "match_date": "2026-10-11",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1084,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Valencia",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0922,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Atlético Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0783,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-09-03",
                    "opponent": "Celta Vigo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0666,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-08-29",
                    "opponent": "Espanyol",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0566,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-08-26",
                    "opponent": "Real Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0481,
                    "rating": 8.1
                  },
                  {
                    "match_date": "2026-08-21",
                    "opponent": "Real Betis",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0409,
                    "rating": 9.0
                  },
                  {
                    "match_date": "2026-05-17",
                    "opponent": "Valencia",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0348,
                    "rating": 5.7
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 1.0,
                  "accurateOwnHalfPasses": 20.8651,
                  "accurateLongBalls": 9.5903,
                  "possessionLostCtrl": 13.277,
                  "goalkeeperValueNormalized": 0.1635,
                  "sweeper_accuracy": 0.6184,
                  "accurateKeeperSweeper": 1.7101
                },
                "per_target": [
                  {
                    "target": "saves",
                    "predicted": 2.9768402576446533,
                    "model_output": 2.9768,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "save_contribution",
                        "importance": 0.0391
                      },
                      {
                        "name": "goalsPrevented",
                        "importance": 0.0375
                      },
                      {
                        "name": "savedShotsFromInsideTheBox",
                        "importance": 0.0373
                      },
                      {
                        "name": "accurateLongBalls",
                        "importance": 0.0364
                      },
                      {
                        "name": "rating",
                        "importance": 0.0359
                      }
                    ],
                    "decomposition": {
                      "base": 2.922,
                      "items": [
                        {
                          "name": "accurateLongBalls",
                          "contribution": 0.0185
                        },
                        {
                          "name": "goalsPrevented",
                          "contribution": -0.0184
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0184
                        },
                        {
                          "name": "sweeper_accuracy",
                          "contribution": 0.0172
                        },
                        {
                          "name": "aerialWon",
                          "contribution": 0.0165
                        }
                      ],
                      "others": 0.0026,
                      "total": 2.9768,
                      "log_link": true,
                      "margin_base": 1.072276,
                      "item_margins": [
                        {
                          "name": "accurateLongBalls",
                          "margin": 0.006311
                        },
                        {
                          "name": "goalsPrevented",
                          "margin": -0.006279
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": 0.00626
                        },
                        {
                          "name": "sweeper_accuracy",
                          "margin": 0.005837
                        },
                        {
                          "name": "aerialWon",
                          "margin": 0.005563
                        }
                      ],
                      "others_margin": 0.000895
                    }
                  },
                  {
                    "target": "goalsPrevented",
                    "predicted": -0.02224339172244072,
                    "model_output": -0.0222,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0381
                      },
                      {
                        "name": "totalOwnHalfPasses",
                        "importance": 0.0373
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0364
                      },
                      {
                        "name": "sweeper_actions_p90",
                        "importance": 0.0359
                      },
                      {
                        "name": "accurateOwnHalfPasses",
                        "importance": 0.0355
                      }
                    ],
                    "decomposition": {
                      "base": -0.0283,
                      "items": [
                        {
                          "name": "accurateKeeperSweeper",
                          "contribution": 0.0346
                        },
                        {
                          "name": "accurateLongBalls",
                          "contribution": -0.0225
                        },
                        {
                          "name": "totalOwnHalfPasses",
                          "contribution": 0.0187
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.0128
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0112
                        }
                      ],
                      "others": -0.0007,
                      "total": -0.0222,
                      "log_link": false,
                      "margin_base": -0.028288,
                      "item_margins": [
                        {
                          "name": "accurateKeeperSweeper",
                          "margin": 0.034639
                        },
                        {
                          "name": "accurateLongBalls",
                          "margin": -0.022535
                        },
                        {
                          "name": "totalOwnHalfPasses",
                          "margin": 0.018733
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": -0.012827
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.011195
                        }
                      ],
                      "others_margin": -0.000771
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 7.119683742523193,
                    "model_output": 7.1197,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0399
                      },
                      {
                        "name": "accurateKeeperSweeper",
                        "importance": 0.0395
                      },
                      {
                        "name": "goalkeeperValueNormalized",
                        "importance": 0.0383
                      },
                      {
                        "name": "accurateOwnHalfPasses",
                        "importance": 0.0383
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0363
                      }
                    ],
                    "decomposition": {
                      "base": 6.9871,
                      "items": [
                        {
                          "name": "totalPass",
                          "contribution": 0.0469
                        },
                        {
                          "name": "totalOwnHalfPasses",
                          "contribution": 0.0284
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": 0.0282
                        },
                        {
                          "name": "sweeper_accuracy",
                          "contribution": 0.0221
                        },
                        {
                          "name": "saves",
                          "contribution": 0.0198
                        }
                      ],
                      "others": -0.0128,
                      "total": 7.1197,
                      "log_link": false,
                      "margin_base": 6.987111,
                      "item_margins": [
                        {
                          "name": "totalPass",
                          "margin": 0.046908
                        },
                        {
                          "name": "totalOwnHalfPasses",
                          "margin": 0.028358
                        },
                        {
                          "name": "ballRecovery",
                          "margin": 0.028209
                        },
                        {
                          "name": "sweeper_accuracy",
                          "margin": 0.022132
                        },
                        {
                          "name": "saves",
                          "margin": 0.019821
                        }
                      ],
                      "others_margin": -0.012854
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 46,
                  "role_matches": 46,
                  "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.518)",
              "stats": {
                "saves": 2.978,
                "goals_prevented": -0.0223,
                "rating": 7.1197,
                "minutes": 90.0,
                "total_pass": 39.4387,
                "accurate_pass": 26.5468,
                "total_long_balls": 22.2622,
                "accurate_long_balls": 9.5941,
                "touches": 48.8814,
                "clearances": 1.493,
                "ball_recovery": 7.1691,
                "high_claims": 0.6635,
                "punches": 0.6978,
                "aerial_won": 0.0796,
                "sweeper_actions": 1.7112,
                "sweeper_accurate": 1.7108,
                "saves_inside_box": 2.1012,
                "possession_lost": 13.2823,
                "duels_won": 0.1394,
                "duels_lost": 0.0075,
                "total_contest": 0.0008,
                "won_contest": 0.0008,
                "fouls": 0.0,
                "fouls_drawn": 0.0898,
                "total_own_half_passes": 23.576,
                "accurate_own_half_passes": 20.8734
              },
              "params": {
                "market_value_eur": 9600000,
                "quality_factor": 0.5177,
                "boost_factor": 1.0004,
                "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.0170)",
              "stats": {
                "saves": 2.9996,
                "goals_prevented": -0.0223,
                "rating": 7.1197,
                "minutes": 90.0,
                "total_pass": 39.4387,
                "accurate_pass": 26.5468,
                "total_long_balls": 22.2622,
                "accurate_long_balls": 9.5941,
                "touches": 48.8814,
                "clearances": 1.493,
                "ball_recovery": 7.1691,
                "high_claims": 0.6635,
                "punches": 0.6978,
                "aerial_won": 0.0796,
                "sweeper_actions": 1.7112,
                "sweeper_accurate": 1.7108,
                "saves_inside_box": 2.1012,
                "possession_lost": 13.2823,
                "duels_won": 0.1394,
                "duels_lost": 0.0075,
                "total_contest": 0.0008,
                "won_contest": 0.0008,
                "fouls": 0.0,
                "fouls_drawn": 0.0883,
                "total_own_half_passes": 23.576,
                "accurate_own_half_passes": 20.8734
              },
              "params": {
                "blend_weight": 0.017,
                "history_matches": 46,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 1.0,
                "prior_reliability": 0.2667,
                "competition": "La Liga",
                "squad": "Real Sociedad"
              },
              "changes": [
                {
                  "stat": "saves",
                  "before": 2.978,
                  "after": 2.9996
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "saves": 2.9996,
                "goals_prevented": -0.0223,
                "rating": 7.1197,
                "minutes": 90.0,
                "total_pass": 39.4387,
                "accurate_pass": 26.5468,
                "total_long_balls": 22.2622,
                "accurate_long_balls": 9.5941,
                "touches": 48.8814,
                "clearances": 1.493,
                "ball_recovery": 7.1691,
                "high_claims": 0.6635,
                "punches": 0.6978,
                "aerial_won": 0.0796,
                "sweeper_actions": 1.7112,
                "sweeper_accurate": 1.7108,
                "saves_inside_box": 2.1012,
                "possession_lost": 13.2823,
                "duels_won": 0.1394,
                "duels_lost": 0.0075,
                "total_contest": 0.0008,
                "won_contest": 0.0008,
                "fouls": 0.0,
                "fouls_drawn": 0.0883,
                "total_own_half_passes": 23.576,
                "accurate_own_half_passes": 20.8734
              },
              "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.9996,
                "goals_prevented": -0.0223,
                "rating": 7.1197,
                "minutes": 90.0,
                "total_pass": 39.4387,
                "accurate_pass": 26.5468,
                "total_long_balls": 22.2622,
                "accurate_long_balls": 9.5941,
                "touches": 48.8814,
                "clearances": 1.493,
                "ball_recovery": 7.1691,
                "high_claims": 0.6635,
                "punches": 0.6978,
                "aerial_won": 0.0796,
                "sweeper_actions": 1.7112,
                "sweeper_accurate": 1.7108,
                "saves_inside_box": 2.1012,
                "possession_lost": 13.2823,
                "duels_won": 0.1394,
                "duels_lost": 0.0075,
                "total_contest": 0.0008,
                "won_contest": 0.0008,
                "fouls": 0.0,
                "fouls_drawn": 0.0883,
                "total_own_half_passes": 23.576,
                "accurate_own_half_passes": 20.8734,
                "gk_engine_opponent_lambda": 1.2686,
                "shots_faced": 12.1,
                "expected_saves": 2.97,
                "high_pressure_saves": 1.01,
                "opponent_faced": "Iñaki Williams, Nico Williams",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Iñaki Williams, Nico Williams",
                  "matchup_zone": "Goalkeeper shot-stopping context",
                  "opponent_lambda": 1.2686
                }
              }
            },
            {
              "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.9996,
                "goals_prevented": -0.0223,
                "rating": 7.1197,
                "minutes": 90.0,
                "total_pass": 39.4387,
                "accurate_pass": 26.5468,
                "total_long_balls": 22.2622,
                "accurate_long_balls": 9.5941,
                "touches": 48.8814,
                "clearances": 1.493,
                "ball_recovery": 7.1691,
                "high_claims": 0.6635,
                "punches": 0.6978,
                "aerial_won": 0.0796,
                "sweeper_actions": 1.7112,
                "sweeper_accurate": 1.7108,
                "saves_inside_box": 2.1012,
                "possession_lost": 13.2823,
                "duels_won": 0.1394,
                "duels_lost": 0.0075,
                "total_contest": 0.0008,
                "won_contest": 0.0008,
                "fouls": 0.0,
                "fouls_drawn": 0.0883,
                "total_own_half_passes": 23.576,
                "accurate_own_half_passes": 20.8734,
                "gk_engine_opponent_lambda": 1.2686,
                "shots_faced": 12.1,
                "expected_saves": 2.97,
                "high_pressure_saves": 1.01,
                "opponent_faced": "Iñaki Williams, Nico Williams",
                "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.25 (squad xG sum 1.3010, xG scale 0.9646, xA scale 0.9646, team xA 0.85 = 0.67 x lambda)",
              "stats": {
                "saves": 2.9996,
                "goals_prevented": -0.0223,
                "rating": 7.1197,
                "minutes": 90.0,
                "total_pass": 39.4387,
                "accurate_pass": 26.5468,
                "total_long_balls": 22.2622,
                "accurate_long_balls": 9.5941,
                "touches": 48.8814,
                "clearances": 1.493,
                "ball_recovery": 7.1691,
                "high_claims": 0.6635,
                "punches": 0.6978,
                "aerial_won": 0.0796,
                "sweeper_actions": 1.7112,
                "sweeper_accurate": 1.7108,
                "saves_inside_box": 2.1012,
                "possession_lost": 13.2823,
                "duels_won": 0.1394,
                "duels_lost": 0.0075,
                "total_contest": 0.0008,
                "won_contest": 0.0008,
                "fouls": 0.0,
                "fouls_drawn": 0.0883,
                "total_own_half_passes": 23.576,
                "accurate_own_half_passes": 20.8734,
                "gk_engine_opponent_lambda": 1.2686,
                "shots_faced": 16.4,
                "expected_saves": 4.01,
                "high_pressure_saves": 1.38,
                "opponent_faced": "Iñaki Williams, Nico Williams",
                "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.255,
                "squad_xg_sum": 1.301,
                "squad_xa_sum": 0.8767,
                "team_expected_assists": 0.8457,
                "team_xa_to_xg_ratio": 0.6739,
                "bench_appearance_weighted": true,
                "xg_scale": 0.9646,
                "xa_scale": 0.9646,
                "opponent_lambda": 1.729,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "shots_faced",
                  "before": 12.1,
                  "after": 16.4
                },
                {
                  "stat": "expected_saves",
                  "before": 2.97,
                  "after": 4.01
                },
                {
                  "stat": "high_pressure_saves",
                  "before": 1.01,
                  "after": 1.38
                }
              ]
            },
            {
              "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": {
                "saves": 2.9996,
                "goals_prevented": -0.0223,
                "rating": 7.1197,
                "minutes": 90.0,
                "total_pass": 39.4387,
                "accurate_pass": 26.5468,
                "total_long_balls": 22.2622,
                "accurate_long_balls": 9.5941,
                "touches": 48.8814,
                "clearances": 1.493,
                "ball_recovery": 7.1691,
                "high_claims": 0.6635,
                "punches": 0.6978,
                "aerial_won": 0.0796,
                "sweeper_actions": 1.7112,
                "sweeper_accurate": 1.7108,
                "saves_inside_box": 2.1012,
                "possession_lost": 13.2823,
                "duels_won": 0.1394,
                "duels_lost": 0.0075,
                "total_contest": 0.0008,
                "won_contest": 0.0008,
                "fouls": 0.0,
                "fouls_drawn": 0.0883,
                "total_own_half_passes": 23.576,
                "accurate_own_half_passes": 20.8734,
                "gk_engine_opponent_lambda": 1.2686,
                "shots_faced": 16.4,
                "expected_saves": 4.01,
                "high_pressure_saves": 1.38,
                "opponent_faced": "Iñaki Williams, Nico Williams",
                "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": 81.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": 591,
                "fifa_rank": 574.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 81.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "saves": 2.9996,
                "goals_prevented": -0.0223,
                "rating": 7.1197,
                "minutes": 90.0,
                "total_pass": 39.4387,
                "accurate_pass": 26.5468,
                "total_long_balls": 22.2622,
                "accurate_long_balls": 9.5941,
                "touches": 48.8814,
                "clearances": 1.493,
                "ball_recovery": 7.1691,
                "high_claims": 0.6635,
                "punches": 0.6978,
                "aerial_won": 0.0796,
                "sweeper_actions": 1.7112,
                "sweeper_accurate": 1.7108,
                "saves_inside_box": 2.1012,
                "possession_lost": 13.2823,
                "duels_won": 0.1394,
                "duels_lost": 0.0075,
                "total_contest": 0.0008,
                "won_contest": 0.0008,
                "fouls": 0.0,
                "fouls_drawn": 0.0883,
                "total_own_half_passes": 23.576,
                "accurate_own_half_passes": 20.8734,
                "gk_engine_opponent_lambda": 1.2686,
                "shots_faced": 16.4,
                "expected_saves": 4.01,
                "high_pressure_saves": 1.38,
                "opponent_faced": "Iñaki Williams, Nico Williams",
                "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": 81.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 0.0,
                "squad_weight_total": 1.3959,
                "weight_share": 0.0,
                "finishing_factor": 1.0,
                "appearance_weight": 1.0,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Mikel Oyarzabal",
                    "weight": 0.3544,
                    "already": 0,
                    "effective_weight": 0.3544,
                    "runner_up": "Gonçalo Guedes",
                    "runner_up_effective_weight": 0.2684
                  }
                ]
              }
            },
            {
              "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.9996,
                "goals_prevented": -0.0223,
                "rating": 7.1197,
                "minutes": 90.0,
                "total_pass": 39.4387,
                "accurate_pass": 26.5468,
                "total_long_balls": 22.2622,
                "accurate_long_balls": 9.5941,
                "touches": 48.8814,
                "clearances": 1.493,
                "ball_recovery": 7.1691,
                "high_claims": 0.6635,
                "punches": 0.6978,
                "aerial_won": 0.0796,
                "sweeper_actions": 1.7112,
                "sweeper_accurate": 1.7108,
                "saves_inside_box": 2.1012,
                "possession_lost": 13.2823,
                "duels_won": 0.1394,
                "duels_lost": 0.0075,
                "total_contest": 0.0008,
                "won_contest": 0.0008,
                "fouls": 0.0,
                "fouls_drawn": 0.0883,
                "total_own_half_passes": 23.576,
                "accurate_own_half_passes": 20.8734,
                "gk_engine_opponent_lambda": 1.2686,
                "shots_faced": 16.4,
                "expected_saves": 4.01,
                "high_pressure_saves": 1.38,
                "opponent_faced": "Iñaki Williams, Nico Williams",
                "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": 81.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0,
                "provider_weight": 0.0,
                "squad_weight_total": 0.8785,
                "weight_share": 0.0,
                "creation_factor": 1.0,
                "appearance_weight": 1.0,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Gonçalo Guedes",
                    "weight": 0.1642,
                    "already": 0,
                    "effective_weight": 0.1642,
                    "runner_up": "Carlos Soler",
                    "runner_up_effective_weight": 0.1308,
                    "blocked_own_goal": [
                      "Mikel Oyarzabal"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Jon Aramburu": {
          "player_id": 1116388,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 2,
          "height": 176,
          "market_value": 13900000,
          "stats": {
            "interceptions": 1,
            "tackles": 2,
            "tackles_won": 2,
            "clearances": 2,
            "aerial_won": 1,
            "total_shots": 1,
            "rating": 6.7048,
            "minutes": 86,
            "total_pass": 39,
            "accurate_pass": 33,
            "duels_won": 7,
            "total_long_balls": 2,
            "accurate_long_balls": 1,
            "total_own_half_passes": 16,
            "accurate_own_half_passes": 14,
            "total_opp_half_passes": 23,
            "accurate_opp_half_passes": 19,
            "crosses_total": 2,
            "crosses_accurate": 0,
            "touches": 64,
            "possession_lost": 12.0357,
            "dispossessed": 0.5554,
            "duels_lost": 6,
            "aerial_lost": 1,
            "total_contest": 1,
            "won_contest": 1,
            "ball_recovery": 4,
            "challenges_lost": 1,
            "fouls": 3,
            "fouls_drawn": 2,
            "blocks": 0,
            "goal_rate": 0.0045,
            "goals": 0,
            "assist_rate": 0.0,
            "assists": 0,
            "expected_goals": 0.0138,
            "expected_assists": 0.0234,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0068,
            "ball_carries": 11,
            "total_progression": 56,
            "progressive_carries": 2,
            "key_pass": 1,
            "shots_off_target": 0,
            "opponent_faced": "Álex Berenguer",
            "matchup_zone": "Shape fallback",
            "antagonist_source": "formation_fallback",
            "projected_goals": 0,
            "goal_probability": 0.0137,
            "projected_assists": 0,
            "assist_probability": 0.0231,
            "finishing_factor": 0.8476,
            "creation_factor": 0.8,
            "fifa_overall": 77.0
          },
          "latest_10_games": [
            {
              "match_id": 16421086.0,
              "match_date": "2026-10-25",
              "home_team": "Real Sociedad",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 28,
                "rating": 6.6,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.104,
                "expected_assists": 0.0023,
                "total_shots": 1,
                "shots_on_target": 0,
                "shots_off_target": 1,
                "total_pass": 15,
                "accurate_pass": 14,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 0,
                "clearances": 0,
                "aerial_won": 0,
                "duels_won": 1,
                "ball_recovery": 2,
                "saves": 0
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416297.0,
              "match_date": "2026-09-20",
              "home_team": "Valencia",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Valencia",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0198,
                "total_shots": 0,
                "total_pass": 37,
                "accurate_pass": 33,
                "key_pass": 1,
                "tackles": 1,
                "interceptions": 1,
                "clearances": 4,
                "duels_won": 2,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416332.0,
              "match_date": "2026-09-13",
              "home_team": "Real Sociedad",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0108,
                "total_shots": 0,
                "total_pass": 34,
                "accurate_pass": 28,
                "tackles": 4,
                "tackles_won": 4,
                "interceptions": 3,
                "clearances": 7,
                "aerial_won": 5,
                "duels_won": 12,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416319.0,
              "match_date": "2026-09-07",
              "home_team": "Elche",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Elche",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0215,
                "expected_assists": 0.0094,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 37,
                "accurate_pass": 29,
                "key_pass": 1,
                "tackles": 5,
                "tackles_won": 3,
                "clearances": 2,
                "aerial_won": 3,
                "duels_won": 11,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416340.0,
              "match_date": "2026-09-03",
              "home_team": "Real Sociedad",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 90,
                "rating": 7.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0274,
                "expected_assists": 0.1303,
                "total_shots": 1,
                "total_pass": 57,
                "accurate_pass": 51,
                "key_pass": 2,
                "tackles": 7,
                "tackles_won": 3,
                "interceptions": 2,
                "clearances": 1,
                "aerial_won": 3,
                "duels_won": 13,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416310.0,
              "match_date": "2026-08-29",
              "home_team": "Real Sociedad",
              "away_team": "Espanyol",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0179,
                "total_shots": 0,
                "total_pass": 36,
                "accurate_pass": 30,
                "tackles": 3,
                "tackles_won": 3,
                "interceptions": 3,
                "clearances": 5,
                "aerial_won": 2,
                "duels_won": 10,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421051.0,
              "match_date": "2026-08-26",
              "home_team": "Real Madrid",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 57,
                "rating": 6.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0127,
                "expected_assists": 0.0055,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 34,
                "accurate_pass": 30,
                "interceptions": 1,
                "duels_won": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416293.0,
              "match_date": "2026-08-21",
              "home_team": "Real Betis",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 90,
                "rating": 5.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0243,
                "expected_assists": 0.0052,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 49,
                "accurate_pass": 43,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 6,
                "clearances": 5,
                "aerial_won": 2,
                "duels_won": 5,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083719.0,
              "match_date": "2026-05-23",
              "home_team": "Espanyol",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 77,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0061,
                "total_shots": 0,
                "total_pass": 32,
                "accurate_pass": 28,
                "tackles": 3,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 3,
                "aerial_won": 2,
                "duels_won": 7,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083687.0,
              "match_date": "2026-05-17",
              "home_team": "Real Sociedad",
              "away_team": "Valencia",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Valencia",
              "stats": {
                "minutes": 16,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0445,
                "total_shots": 0,
                "total_pass": 5,
                "accurate_pass": 3,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 1,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 2085,
            "combined_rank_score": 793.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 16.0,
            "sofascore_rating": 8.2667,
            "sofascore_appearances": 3.0,
            "fifa_rank": 1571.0,
            "fifa_overall": 77.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 14,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.7048,
            "source_file": "data/player_rankings.csv",
            "player_name": "Jon Aramburu",
            "ranking_neighbors": {
              "upper": [
                {
                  "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
                },
                {
                  "player_name": "Franco Rami",
                  "ranking": 2084
                }
              ],
              "lower": [
                {
                  "player_name": "Nikita Haikin",
                  "ranking": 2086
                },
                {
                  "player_name": "Santiago Mouriño",
                  "ranking": 2087
                },
                {
                  "player_name": "Mason Mount",
                  "ranking": 2088
                },
                {
                  "player_name": "Thomas Partey",
                  "ranking": 2089
                },
                {
                  "player_name": "Sukhrob Izzatov",
                  "ranking": 2090
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.786,
          "history_matches": 43,
          "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": 43,
            "data_confidence": 0.786,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0019,
            "fbref_prior_metrics": {
              "squad": "Real Sociedad",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 4.0,
              "starts": 4.0,
              "minutes": 326.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.83,
              "shots_on_target_pct": 33.3,
              "prior_reliability": 0.24
            },
            "rationale": "XGBoost regressor (D_service) evaluated 43 historical appearances across 7 target models; FBref 2026-2027 prior blended (La Liga, Real Sociedad, rel: 0.24, 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.2045,
                "tackles": 2.438,
                "tackles_won": 1.617,
                "clearances": 2.4108,
                "aerial_won": 1.1966,
                "total_shots": 0.6305,
                "rating": 6.7048,
                "minutes": 86.16,
                "total_pass": 38.7806,
                "accurate_pass": 32.8867,
                "duels_won": 7.2267,
                "total_long_balls": 2.2717,
                "accurate_long_balls": 0.7925,
                "total_own_half_passes": 15.615,
                "accurate_own_half_passes": 14.3344,
                "total_opp_half_passes": 23.1657,
                "accurate_opp_half_passes": 18.5524,
                "crosses_total": 1.7035,
                "crosses_accurate": 0.0959,
                "touches": 64.0658,
                "possession_lost": 12.0129,
                "dispossessed": 0.5543,
                "duels_lost": 5.7046,
                "aerial_lost": 0.7145,
                "total_contest": 1.0684,
                "won_contest": 0.7043,
                "ball_recovery": 3.7564,
                "challenges_lost": 1.392,
                "fouls": 2.7877,
                "fouls_drawn": 1.6936,
                "blocks": 0.3342,
                "goals": 0.0046,
                "goal_rate": 0.0046,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0143,
                "expected_assists": 0.0243,
                "shots_on_target": 0.1738,
                "big_chances_created": 0.0,
                "xgot": 0.0071,
                "ball_carries": 11.2472,
                "total_progression": 55.773,
                "progressive_carries": 1.5793,
                "key_pass": 0.5053,
                "shots_off_target": 0.4567
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 6,
                  "trained_at": "2026-11-01T11:26:13.602980+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 631,
                    "rows": 22117
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-25",
                    "opponent": "Levante UD",
                    "minutes": 28.0,
                    "is_starting": false,
                    "weight": 0.1501,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Valencia",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1276,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Atlético Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1085,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Elche",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0922,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-09-03",
                    "opponent": "Celta Vigo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0784,
                    "rating": 7.5
                  },
                  {
                    "match_date": "2026-08-29",
                    "opponent": "Espanyol",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0666,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-08-26",
                    "opponent": "Real Madrid",
                    "minutes": 57.0,
                    "is_starting": true,
                    "weight": 0.0566,
                    "rating": 6.1
                  },
                  {
                    "match_date": "2026-08-21",
                    "opponent": "Real Betis",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0481,
                    "rating": 5.9
                  },
                  {
                    "match_date": "2026-05-23",
                    "opponent": "Espanyol",
                    "minutes": 77.0,
                    "is_starting": true,
                    "weight": 0.0409,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-05-17",
                    "opponent": "Valencia",
                    "minutes": 16.0,
                    "is_starting": false,
                    "weight": 0.0348,
                    "rating": 6.5
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 1.0,
                  "totalClearance": 2.8227,
                  "aerialWon": 1.5392,
                  "totalClearance_p90": 2.9001,
                  "totalTackle": 2.6927,
                  "totalTackle_p90": 3.4425
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 1.2045186758041382,
                    "model_output": 1.2045,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2892
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0467
                      },
                      {
                        "name": "touches",
                        "importance": 0.0285
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0256
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0216
                      }
                    ],
                    "decomposition": {
                      "base": 0.8711,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1087
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": 0.0805
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.0276
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": 0.0249
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0245
                        }
                      ],
                      "others": 0.1162,
                      "total": 1.2045,
                      "log_link": true,
                      "margin_base": -0.137969,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.117635
                        },
                        {
                          "name": "interceptionWon",
                          "margin": 0.078912
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.025683
                        },
                        {
                          "name": "defensive_actions",
                          "margin": 0.022626
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.022243
                        }
                      ],
                      "others_margin": 0.101438
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 2.43800950050354,
                    "model_output": 2.438,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2446
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0686
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0555
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0437
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0249
                      }
                    ],
                    "decomposition": {
                      "base": 1.3875,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.2025
                        },
                        {
                          "name": "totalTackle",
                          "contribution": 0.157
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.1313
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": 0.132
                        },
                        {
                          "name": "challengeLost",
                          "contribution": 0.0985
                        }
                      ],
                      "others": 0.3292,
                      "total": 2.438,
                      "log_link": true,
                      "margin_base": 0.327503,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.136209
                        },
                        {
                          "name": "totalTackle",
                          "margin": 0.094145
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.072482
                        },
                        {
                          "name": "defensive_actions",
                          "margin": 0.067907
                        },
                        {
                          "name": "challengeLost",
                          "margin": 0.047855
                        }
                      ],
                      "others_margin": 0.145081
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 1.61700439453125,
                    "model_output": 1.617,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1951
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0637
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0498
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0427
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0237
                      }
                    ],
                    "decomposition": {
                      "base": 0.8482,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1265
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": 0.1018
                        },
                        {
                          "name": "totalTackle",
                          "contribution": 0.1027
                        },
                        {
                          "name": "challengeLost",
                          "contribution": 0.0894
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.0793
                        }
                      ],
                      "others": 0.2691,
                      "total": 1.617,
                      "log_link": true,
                      "margin_base": -0.164613,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.139029
                        },
                        {
                          "name": "defensive_actions",
                          "margin": 0.099309
                        },
                        {
                          "name": "totalTackle",
                          "margin": 0.091115
                        },
                        {
                          "name": "challengeLost",
                          "margin": 0.073063
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.060662
                        }
                      ],
                      "others_margin": 0.18201
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 2.4108431339263916,
                    "model_output": 2.4108,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2927
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.1441
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.033
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0239
                      }
                    ],
                    "decomposition": {
                      "base": 3.4157,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.4848
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.354
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.3115
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.2786
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.2358
                        }
                      ],
                      "others": -0.3098,
                      "total": 2.4108,
                      "log_link": true,
                      "margin_base": 1.228383,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.132733
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": -0.095143
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.091929
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.090057
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.083119
                        }
                      ],
                      "others_margin": -0.120891
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 1.1965895891189575,
                    "model_output": 1.1966,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1566
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.1557
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0794
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0422
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.027
                      }
                    ],
                    "decomposition": {
                      "base": 1.3697,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1421
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.1096
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0655
                        },
                        {
                          "name": "aerialLost",
                          "contribution": -0.0576
                        },
                        {
                          "name": "press_vulnerability",
                          "contribution": -0.0438
                        }
                      ],
                      "others": -0.0387,
                      "total": 1.1966,
                      "log_link": true,
                      "margin_base": 0.314594,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.098698
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.075268
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.047822
                        },
                        {
                          "name": "aerialLost",
                          "margin": -0.044072
                        },
                        {
                          "name": "press_vulnerability",
                          "margin": -0.034859
                        }
                      ],
                      "others_margin": -0.031795
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.6305224299430847,
                    "model_output": 0.6305,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0952
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0683
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.0339
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0311
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.4812,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0638
                        },
                        {
                          "name": "duelWon",
                          "contribution": 0.028
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0232
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0198
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": 0.0157
                        }
                      ],
                      "others": -0.0012,
                      "total": 0.6305,
                      "log_link": false,
                      "margin_base": 0.481248,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.063828
                        },
                        {
                          "name": "duelWon",
                          "margin": 0.028042
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.023238
                        },
                        {
                          "name": "duelLost",
                          "margin": 0.019764
                        },
                        {
                          "name": "duelWon_p90",
                          "margin": 0.015701
                        }
                      ],
                      "others_margin": -0.001299
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.70482063293457,
                    "model_output": 6.7048,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "accuratePass",
                        "importance": 0.0681
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.063
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.057
                      },
                      {
                        "name": "rating",
                        "importance": 0.0377
                      },
                      {
                        "name": "touches",
                        "importance": 0.0302
                      }
                    ],
                    "decomposition": {
                      "base": 6.7988,
                      "items": [
                        {
                          "name": "rating",
                          "contribution": -0.0211
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0179
                        },
                        {
                          "name": "touches",
                          "contribution": 0.01
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0099
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0087
                        }
                      ],
                      "others": -0.0464,
                      "total": 6.7048,
                      "log_link": false,
                      "margin_base": 6.798781,
                      "item_margins": [
                        {
                          "name": "rating",
                          "margin": -0.02111
                        },
                        {
                          "name": "totalPass",
                          "margin": -0.017908
                        },
                        {
                          "name": "touches",
                          "margin": 0.009959
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.009919
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.008693
                        }
                      ],
                      "others_margin": -0.046288
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 43,
                  "role_matches": 38,
                  "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.0019, quality 0.567)",
              "stats": {
                "interceptions": 1.2068,
                "tackles": 2.4426,
                "tackles_won": 1.6201,
                "clearances": 2.4154,
                "aerial_won": 1.1989,
                "total_shots": 0.6317,
                "rating": 6.7048,
                "minutes": 86.16,
                "total_pass": 38.8543,
                "accurate_pass": 32.9492,
                "duels_won": 7.2404,
                "total_long_balls": 2.276,
                "accurate_long_balls": 0.794,
                "total_own_half_passes": 15.6447,
                "accurate_own_half_passes": 14.3616,
                "total_opp_half_passes": 23.2097,
                "accurate_opp_half_passes": 18.5876,
                "crosses_total": 1.7067,
                "crosses_accurate": 0.0961,
                "touches": 64.1875,
                "possession_lost": 12.0357,
                "dispossessed": 0.5554,
                "duels_lost": 5.7154,
                "aerial_lost": 0.7159,
                "total_contest": 1.0704,
                "won_contest": 0.7056,
                "ball_recovery": 3.7635,
                "challenges_lost": 1.3946,
                "fouls": 2.793,
                "fouls_drawn": 1.6968,
                "blocks": 0.3348,
                "goals": 0.0046,
                "goal_rate": 0.0046,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0143,
                "expected_assists": 0.0243,
                "shots_on_target": 0.1741,
                "big_chances_created": 0.0,
                "xgot": 0.0071,
                "ball_carries": 11.2686,
                "total_progression": 55.879,
                "progressive_carries": 1.5823,
                "key_pass": 0.5063,
                "shots_off_target": 0.4576
              },
              "params": {
                "market_value_eur": 13900000,
                "quality_factor": 0.5671,
                "boost_factor": 1.0019,
                "reference_quality": 0.505,
                "history_matches": 43,
                "history_shrink": 0.1042,
                "market_value_known": true
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0163)",
              "stats": {
                "interceptions": 1.239,
                "tackles": 2.4426,
                "tackles_won": 1.6283,
                "clearances": 2.4154,
                "aerial_won": 1.1989,
                "total_shots": 0.6343,
                "rating": 6.7048,
                "minutes": 86.16,
                "total_pass": 38.8543,
                "accurate_pass": 32.9492,
                "duels_won": 7.2404,
                "total_long_balls": 2.276,
                "accurate_long_balls": 0.794,
                "total_own_half_passes": 15.6447,
                "accurate_own_half_passes": 14.3616,
                "total_opp_half_passes": 23.2097,
                "accurate_opp_half_passes": 18.5876,
                "crosses_total": 1.7092,
                "crosses_accurate": 0.0961,
                "touches": 64.1875,
                "possession_lost": 12.0357,
                "dispossessed": 0.5554,
                "duels_lost": 5.7154,
                "aerial_lost": 0.7159,
                "total_contest": 1.0704,
                "won_contest": 0.7056,
                "ball_recovery": 3.7635,
                "challenges_lost": 1.3946,
                "fouls": 2.8254,
                "fouls_drawn": 1.7038,
                "blocks": 0.3348,
                "goals": 0.0045,
                "goal_rate": 0.0045,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0143,
                "expected_assists": 0.0243,
                "shots_on_target": 0.1756,
                "big_chances_created": 0.0,
                "xgot": 0.0071,
                "ball_carries": 11.2686,
                "total_progression": 55.879,
                "progressive_carries": 1.5823,
                "key_pass": 0.5063,
                "shots_off_target": 0.4576
              },
              "params": {
                "blend_weight": 0.0163,
                "history_matches": 43,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.9573,
                "prior_reliability": 0.24,
                "competition": "La Liga",
                "squad": "Real Sociedad"
              },
              "changes": [
                {
                  "stat": "fouls",
                  "before": 2.793,
                  "after": 2.8254
                },
                {
                  "stat": "interceptionWon",
                  "before": 1.2068,
                  "after": 1.239
                },
                {
                  "stat": "wonTackle",
                  "before": 1.6201,
                  "after": 1.6283
                },
                {
                  "stat": "wasFouled",
                  "before": 1.6968,
                  "after": 1.7038
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 1.239,
                "tackles": 2.4426,
                "tackles_won": 1.6283,
                "clearances": 2.4154,
                "aerial_won": 1.1989,
                "total_shots": 0.6343,
                "rating": 6.7048,
                "minutes": 86.16,
                "total_pass": 38.8543,
                "accurate_pass": 32.9492,
                "duels_won": 7.2404,
                "total_long_balls": 2.276,
                "accurate_long_balls": 0.794,
                "total_own_half_passes": 15.6447,
                "accurate_own_half_passes": 14.3616,
                "total_opp_half_passes": 23.2097,
                "accurate_opp_half_passes": 18.5876,
                "crosses_total": 1.7092,
                "crosses_accurate": 0.0961,
                "touches": 64.1875,
                "possession_lost": 12.0357,
                "dispossessed": 0.5554,
                "duels_lost": 5.7154,
                "aerial_lost": 0.7159,
                "total_contest": 1.0704,
                "won_contest": 0.7056,
                "ball_recovery": 3.7635,
                "challenges_lost": 1.3946,
                "fouls": 2.8254,
                "fouls_drawn": 1.7038,
                "blocks": 0.3348,
                "goals": 0.0045,
                "goal_rate": 0.0045,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0143,
                "expected_assists": 0.0243,
                "shots_on_target": 0.1756,
                "big_chances_created": 0.0,
                "xgot": 0.0071,
                "ball_carries": 11.2686,
                "total_progression": 55.879,
                "progressive_carries": 1.5823,
                "key_pass": 0.5063,
                "shots_off_target": 0.4576
              },
              "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.239,
                "tackles": 2.4426,
                "tackles_won": 1.6283,
                "clearances": 2.4154,
                "aerial_won": 1.1989,
                "total_shots": 0.6343,
                "rating": 6.7048,
                "minutes": 86.16,
                "total_pass": 38.8543,
                "accurate_pass": 32.9492,
                "duels_won": 7.2404,
                "total_long_balls": 2.276,
                "accurate_long_balls": 0.794,
                "total_own_half_passes": 15.6447,
                "accurate_own_half_passes": 14.3616,
                "total_opp_half_passes": 23.2097,
                "accurate_opp_half_passes": 18.5876,
                "crosses_total": 1.7092,
                "crosses_accurate": 0.0961,
                "touches": 64.1875,
                "possession_lost": 12.0357,
                "dispossessed": 0.5554,
                "duels_lost": 5.7154,
                "aerial_lost": 0.7159,
                "total_contest": 1.0704,
                "won_contest": 0.7056,
                "ball_recovery": 3.7635,
                "challenges_lost": 1.3946,
                "fouls": 2.8254,
                "fouls_drawn": 1.7038,
                "blocks": 0.3348,
                "goals": 0.0045,
                "goal_rate": 0.0045,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0143,
                "expected_assists": 0.0243,
                "shots_on_target": 0.1756,
                "big_chances_created": 0.0,
                "xgot": 0.0071,
                "ball_carries": 11.2686,
                "total_progression": 55.879,
                "progressive_carries": 1.5823,
                "key_pass": 0.5063,
                "shots_off_target": 0.4576,
                "opponent_faced": "Álex Berenguer",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Álex Berenguer",
                  "matchup_zone": "Shape fallback"
                }
              }
            },
            {
              "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.239,
                "tackles": 2.4426,
                "tackles_won": 1.6283,
                "clearances": 2.4154,
                "aerial_won": 1.1989,
                "total_shots": 0.6343,
                "rating": 6.7048,
                "minutes": 86.16,
                "total_pass": 38.8543,
                "accurate_pass": 32.9492,
                "duels_won": 7.2404,
                "total_long_balls": 2.276,
                "accurate_long_balls": 0.794,
                "total_own_half_passes": 15.6447,
                "accurate_own_half_passes": 14.3616,
                "total_opp_half_passes": 23.2097,
                "accurate_opp_half_passes": 18.5876,
                "crosses_total": 1.7092,
                "crosses_accurate": 0.0961,
                "touches": 64.1875,
                "possession_lost": 12.0357,
                "dispossessed": 0.5554,
                "duels_lost": 5.7154,
                "aerial_lost": 0.7159,
                "total_contest": 1.0704,
                "won_contest": 0.7056,
                "ball_recovery": 3.7635,
                "challenges_lost": 1.3946,
                "fouls": 2.8254,
                "fouls_drawn": 1.7038,
                "blocks": 0.3348,
                "goal_rate": 0.0045,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0143,
                "expected_assists": 0.0243,
                "shots_on_target": 0.1756,
                "big_chances_created": 0.0,
                "xgot": 0.0071,
                "ball_carries": 11.2686,
                "total_progression": 55.879,
                "progressive_carries": 1.5823,
                "key_pass": 0.5063,
                "shots_off_target": 0.4576,
                "opponent_faced": "Álex Berenguer",
                "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": 1
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.25 (squad xG sum 1.3010, xG scale 0.9646, xA scale 0.9646, team xA 0.85 = 0.67 x lambda)",
              "stats": {
                "interceptions": 1.239,
                "tackles": 2.4426,
                "tackles_won": 1.6283,
                "clearances": 2.4154,
                "aerial_won": 1.1989,
                "total_shots": 0.6343,
                "rating": 6.7048,
                "minutes": 86.16,
                "total_pass": 38.8543,
                "accurate_pass": 32.9492,
                "duels_won": 7.2404,
                "total_long_balls": 2.276,
                "accurate_long_balls": 0.794,
                "total_own_half_passes": 15.6447,
                "accurate_own_half_passes": 14.3616,
                "total_opp_half_passes": 23.2097,
                "accurate_opp_half_passes": 18.5876,
                "crosses_total": 1.7092,
                "crosses_accurate": 0.0961,
                "touches": 64.1875,
                "possession_lost": 12.0357,
                "dispossessed": 0.5554,
                "duels_lost": 5.7154,
                "aerial_lost": 0.7159,
                "total_contest": 1.0704,
                "won_contest": 0.7056,
                "ball_recovery": 3.7635,
                "challenges_lost": 1.3946,
                "fouls": 2.8254,
                "fouls_drawn": 1.7038,
                "blocks": 0.3348,
                "goal_rate": 0.0045,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0138,
                "expected_assists": 0.0234,
                "shots_on_target": 0.1756,
                "big_chances_created": 0.0,
                "xgot": 0.0068,
                "ball_carries": 11.2686,
                "total_progression": 55.879,
                "progressive_carries": 1.5823,
                "key_pass": 0.5063,
                "shots_off_target": 0.4576,
                "opponent_faced": "Álex Berenguer",
                "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.8476,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 1.255,
                "squad_xg_sum": 1.301,
                "squad_xa_sum": 0.8767,
                "team_expected_assists": 0.8457,
                "team_xa_to_xg_ratio": 0.6739,
                "bench_appearance_weighted": true,
                "xg_scale": 0.9646,
                "xa_scale": 0.9646,
                "opponent_lambda": 1.729,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              }
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 77.0)",
              "stats": {
                "interceptions": 1.239,
                "tackles": 2.4426,
                "tackles_won": 1.6283,
                "clearances": 2.4154,
                "aerial_won": 1.1989,
                "total_shots": 0.6343,
                "rating": 6.7048,
                "minutes": 86.16,
                "total_pass": 38.8543,
                "accurate_pass": 32.9492,
                "duels_won": 7.2404,
                "total_long_balls": 2.276,
                "accurate_long_balls": 0.794,
                "total_own_half_passes": 15.6447,
                "accurate_own_half_passes": 14.3616,
                "total_opp_half_passes": 23.2097,
                "accurate_opp_half_passes": 18.5876,
                "crosses_total": 1.7092,
                "crosses_accurate": 0.0961,
                "touches": 64.1875,
                "possession_lost": 12.0357,
                "dispossessed": 0.5554,
                "duels_lost": 5.7154,
                "aerial_lost": 0.7159,
                "total_contest": 1.0704,
                "won_contest": 0.7056,
                "ball_recovery": 3.7635,
                "challenges_lost": 1.3946,
                "fouls": 2.8254,
                "fouls_drawn": 1.7038,
                "blocks": 0.3348,
                "goal_rate": 0.0045,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0138,
                "expected_assists": 0.0234,
                "shots_on_target": 0.1756,
                "big_chances_created": 0.0,
                "xgot": 0.0068,
                "ball_carries": 11.2686,
                "total_progression": 55.879,
                "progressive_carries": 1.5823,
                "key_pass": 0.5063,
                "shots_off_target": 0.4576,
                "opponent_faced": "Álex Berenguer",
                "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.8476,
                "creation_factor": 0.8,
                "fifa_overall": 77.0
              },
              "params": {
                "match_squad_rank": 14,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 2085,
                "fifa_rank": 1571.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.239,
                "tackles": 2.4426,
                "tackles_won": 1.6283,
                "clearances": 2.4154,
                "aerial_won": 1.1989,
                "total_shots": 0.6343,
                "rating": 6.7048,
                "minutes": 86.16,
                "total_pass": 38.8543,
                "accurate_pass": 32.9492,
                "duels_won": 7.2404,
                "total_long_balls": 2.276,
                "accurate_long_balls": 0.794,
                "total_own_half_passes": 15.6447,
                "accurate_own_half_passes": 14.3616,
                "total_opp_half_passes": 23.2097,
                "accurate_opp_half_passes": 18.5876,
                "crosses_total": 1.7092,
                "crosses_accurate": 0.0961,
                "touches": 64.1875,
                "possession_lost": 12.0357,
                "dispossessed": 0.5554,
                "duels_lost": 5.7154,
                "aerial_lost": 0.7159,
                "total_contest": 1.0704,
                "won_contest": 0.7056,
                "ball_recovery": 3.7635,
                "challenges_lost": 1.3946,
                "fouls": 2.8254,
                "fouls_drawn": 1.7038,
                "blocks": 0.3348,
                "goal_rate": 0.0045,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0138,
                "expected_assists": 0.0234,
                "shots_on_target": 0.1756,
                "big_chances_created": 0.0,
                "xgot": 0.0068,
                "ball_carries": 11.2686,
                "total_progression": 55.879,
                "progressive_carries": 1.5823,
                "key_pass": 0.5063,
                "shots_off_target": 0.4576,
                "opponent_faced": "Álex Berenguer",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0137,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8476,
                "creation_factor": 0.8,
                "fifa_overall": 77.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0137,
                "goal_rate": 0.0045,
                "scorer_weight": 0.0117,
                "squad_weight_total": 1.3959,
                "weight_share": 0.0084,
                "finishing_factor": 0.8476,
                "appearance_weight": 1.0,
                "weight_rank": 13,
                "eligible_players": 14,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Mikel Oyarzabal",
                    "weight": 0.3544,
                    "already": 0,
                    "effective_weight": 0.3544,
                    "runner_up": "Gonçalo Guedes",
                    "runner_up_effective_weight": 0.2684
                  }
                ]
              }
            },
            {
              "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.239,
                "tackles": 2.4426,
                "tackles_won": 1.6283,
                "clearances": 2.4154,
                "aerial_won": 1.1989,
                "total_shots": 0.6343,
                "rating": 6.7048,
                "minutes": 86.16,
                "total_pass": 38.8543,
                "accurate_pass": 32.9492,
                "duels_won": 7.2404,
                "total_long_balls": 2.276,
                "accurate_long_balls": 0.794,
                "total_own_half_passes": 15.6447,
                "accurate_own_half_passes": 14.3616,
                "total_opp_half_passes": 23.2097,
                "accurate_opp_half_passes": 18.5876,
                "crosses_total": 1.7092,
                "crosses_accurate": 0.0961,
                "touches": 64.1875,
                "possession_lost": 12.0357,
                "dispossessed": 0.5554,
                "duels_lost": 5.7154,
                "aerial_lost": 0.7159,
                "total_contest": 1.0704,
                "won_contest": 0.7056,
                "ball_recovery": 3.7635,
                "challenges_lost": 1.3946,
                "fouls": 2.8254,
                "fouls_drawn": 1.7038,
                "blocks": 0.3348,
                "goal_rate": 0.0045,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0138,
                "expected_assists": 0.0234,
                "shots_on_target": 0.1756,
                "big_chances_created": 0.0,
                "xgot": 0.0068,
                "ball_carries": 11.2686,
                "total_progression": 55.879,
                "progressive_carries": 1.5823,
                "key_pass": 0.5063,
                "shots_off_target": 0.4576,
                "opponent_faced": "Álex Berenguer",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0137,
                "projected_assists": 0,
                "assist_probability": 0.0231,
                "finishing_factor": 0.8476,
                "creation_factor": 0.8,
                "fifa_overall": 77.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0231,
                "assist_rate": 0.0,
                "provider_weight": 0.0187,
                "squad_weight_total": 0.8785,
                "weight_share": 0.0213,
                "creation_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 11,
                "eligible_players": 14,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Gonçalo Guedes",
                    "weight": 0.1642,
                    "already": 0,
                    "effective_weight": 0.1642,
                    "runner_up": "Carlos Soler",
                    "runner_up_effective_weight": 0.1308,
                    "blocked_own_goal": [
                      "Mikel Oyarzabal"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Mamadou Sarr": {
          "player_id": 1154657,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 19,
          "height": 194,
          "market_value": 24000000,
          "stats": {
            "interceptions": 1,
            "tackles": 1,
            "tackles_won": 1,
            "clearances": 4,
            "aerial_won": 1,
            "total_shots": 0,
            "rating": 6.8005,
            "minutes": 87,
            "total_pass": 63,
            "accurate_pass": 60,
            "duels_won": 3,
            "total_long_balls": 3,
            "accurate_long_balls": 1,
            "total_own_half_passes": 48,
            "accurate_own_half_passes": 46,
            "total_opp_half_passes": 15,
            "accurate_opp_half_passes": 14,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 75,
            "possession_lost": 4.0285,
            "dispossessed": 0.2086,
            "duels_lost": 2,
            "aerial_lost": 1,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 4,
            "challenges_lost": 0,
            "fouls": 1,
            "fouls_drawn": 1,
            "blocks": 1,
            "goal_rate": 0.0,
            "goals": 0,
            "assist_rate": 0.0,
            "assists": 0,
            "expected_goals": 0.0664,
            "expected_assists": 0.0077,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 19,
            "total_progression": 38,
            "progressive_carries": 0,
            "key_pass": 0,
            "shots_off_target": 0,
            "tackles_in_zone": 1.1,
            "tackles_won_in_zone": 1.0,
            "interceptions_in_zone": 1.1,
            "clearances_in_zone": 0.9,
            "aerial_duels_won": 0.7,
            "defensive_success_rate": 0.807,
            "opponent_faced": "Nico Williams",
            "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.0642,
            "projected_assists": 0,
            "assist_probability": 0.0077,
            "finishing_factor": 0.8,
            "creation_factor": 0.8621,
            "fifa_overall": 77.0
          },
          "latest_10_games": [
            {
              "match_id": 16421086.0,
              "match_date": "2026-10-25",
              "home_team": "Real Sociedad",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0129,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "total_pass": 92,
                "accurate_pass": 88,
                "tackles": 1,
                "tackles_won": 0,
                "interceptions": 3,
                "clearances": 1,
                "aerial_won": 0,
                "duels_won": 3,
                "ball_recovery": 5,
                "saves": 0
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421073.0,
              "match_date": "2026-10-18",
              "home_team": "Málaga CF",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1024,
                "expected_assists": 0.0025,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 63,
                "accurate_pass": 63,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 3,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421067.0,
              "match_date": "2026-10-11",
              "home_team": "Real Sociedad",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0052,
                "total_shots": 0,
                "total_pass": 44,
                "accurate_pass": 41,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 6,
                "duels_won": 4,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416332.0,
              "match_date": "2026-09-13",
              "home_team": "Real Sociedad",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0199,
                "total_shots": 0,
                "total_pass": 68,
                "accurate_pass": 65,
                "tackles": 3,
                "tackles_won": 3,
                "interceptions": 1,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 6,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416319.0,
              "match_date": "2026-09-07",
              "home_team": "Elche",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Elche",
              "stats": {
                "minutes": 58,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0017,
                "total_shots": 0,
                "total_pass": 30,
                "accurate_pass": 29,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "duels_won": 2,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16087727.0,
              "match_date": "2026-05-19",
              "home_team": "Chelsea",
              "away_team": "Tottenham Hotspur",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Chelsea",
              "opponent": "Tottenham Hotspur",
              "stats": {
                "minutes": 9,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0001,
                "total_shots": 0,
                "total_pass": 3,
                "accurate_pass": 1,
                "aerial_won": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "76986.0",
              "season_name": "Premier League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14023971.0,
              "match_date": "2026-03-01",
              "home_team": "Arsenal",
              "away_team": "Chelsea",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Chelsea",
              "opponent": "Arsenal",
              "stats": {
                "minutes": 89,
                "rating": 6.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.4359,
                "expected_assists": 0.002,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 48,
                "accurate_pass": 44,
                "tackles": 1,
                "interceptions": 1,
                "clearances": 5,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "76986.0",
              "season_name": "Premier League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14024007.0,
              "match_date": "2026-02-21",
              "home_team": "Chelsea",
              "away_team": "Burnley",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Chelsea",
              "opponent": "Burnley",
              "stats": {
                "minutes": 9,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "total_pass": 1,
                "accurate_pass": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "76986.0",
              "season_name": "Premier League 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 3265,
            "combined_rank_score": 1210.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 976.0,
            "sofascore_rating": 6.3,
            "sofascore_appearances": 3.0,
            "fifa_rank": 1444.0,
            "fifa_overall": 77.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 10,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.8005,
            "source_file": "data/player_rankings.csv",
            "player_name": "Mamadou Sarr",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Lucas Da Cunha",
                  "ranking": 3260
                },
                {
                  "player_name": "Strahinja Pavlović",
                  "ranking": 3261
                },
                {
                  "player_name": "Félix Correia",
                  "ranking": 3262
                },
                {
                  "player_name": "Kenneth Taylor",
                  "ranking": 3263
                },
                {
                  "player_name": "Johan Vásquez",
                  "ranking": 3264
                }
              ],
              "lower": [
                {
                  "player_name": "Yoan Bonny",
                  "ranking": 3266
                },
                {
                  "player_name": "Urko González",
                  "ranking": 3267
                },
                {
                  "player_name": "Tasos Douvikas",
                  "ranking": 3268
                },
                {
                  "player_name": "Sam Beukema",
                  "ranking": 3269
                },
                {
                  "player_name": "Máximo Perrone",
                  "ranking": 3270
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.75,
          "history_matches": 8,
          "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": 8,
            "data_confidence": 0.75,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 1.0189,
            "fbref_prior_metrics": {
              "squad": "Real Sociedad",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 0.0,
              "starts": 0.0,
              "prior_reliability": 0.0
            },
            "rationale": "XGBoost regressor (D_service) evaluated 8 historical appearances across 7 target models; FBref 2026-2027 prior blended (La Liga, Real Sociedad, rel: 0.00, 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.0774,
                "tackles": 1.3713,
                "tackles_won": 0.8507,
                "clearances": 3.4572,
                "aerial_won": 0.99,
                "total_shots": 0.3477,
                "rating": 6.8005,
                "minutes": 86.9,
                "total_pass": 61.6661,
                "accurate_pass": 59.184,
                "duels_won": 3.2783,
                "total_long_balls": 2.7947,
                "accurate_long_balls": 1.041,
                "total_own_half_passes": 46.8372,
                "accurate_own_half_passes": 45.5241,
                "total_opp_half_passes": 14.8289,
                "accurate_opp_half_passes": 13.6598,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 73.3136,
                "possession_lost": 3.9538,
                "dispossessed": 0.2047,
                "duels_lost": 2.0966,
                "aerial_lost": 0.6028,
                "total_contest": 0.4288,
                "won_contest": 0.3219,
                "ball_recovery": 4.0207,
                "challenges_lost": 0.0,
                "fouls": 1.1823,
                "fouls_drawn": 1.134,
                "blocks": 0.8075,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0675,
                "expected_assists": 0.0079,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 18.513,
                "total_progression": 37.1286,
                "progressive_carries": 0.2047,
                "key_pass": 0.0,
                "shots_off_target": 0.3477
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 6,
                  "trained_at": "2026-11-01T11:26:13.602980+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 631,
                    "rows": 22117
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-25",
                    "opponent": "Levante UD",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2062,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Málaga CF",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1753,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-10-11",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.149,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Atlético Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1266,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Elche",
                    "minutes": 58.0,
                    "is_starting": true,
                    "weight": 0.1076,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-05-19",
                    "opponent": "Tottenham Hotspur",
                    "minutes": 9.0,
                    "is_starting": false,
                    "weight": 0.0915,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-03-01",
                    "opponent": "Arsenal",
                    "minutes": 89.0,
                    "is_starting": true,
                    "weight": 0.0778,
                    "rating": 6.0
                  },
                  {
                    "match_date": "2026-02-21",
                    "opponent": "Burnley",
                    "minutes": 9.0,
                    "is_starting": false,
                    "weight": 0.0661,
                    "rating": 6.3
                  }
                ],
                "feature_row": {
                  "history_matches": 8.0,
                  "is_starting_11": 1.0,
                  "totalClearance": 2.4831,
                  "aerialWon": 0.3934,
                  "totalClearance_p90": 2.6062,
                  "totalTackle": 1.2446,
                  "totalTackle_p90": 1.3049
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 1.0774431228637695,
                    "model_output": 1.0774,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2892
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0467
                      },
                      {
                        "name": "touches",
                        "importance": 0.0285
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0256
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0216
                      }
                    ],
                    "decomposition": {
                      "base": 0.8711,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.116
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": 0.1002
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0422
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": 0.0175
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": 0.0171
                        }
                      ],
                      "others": -0.0023,
                      "total": 1.0774,
                      "log_link": true,
                      "margin_base": -0.137969,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.12498
                        },
                        {
                          "name": "interceptionWon",
                          "margin": 0.096719
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.039557
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": 0.016563
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": 0.01594
                        }
                      ],
                      "others_margin": -0.002085
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.3712629079818726,
                    "model_output": 1.3713,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2446
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0686
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0555
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0437
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0249
                      }
                    ],
                    "decomposition": {
                      "base": 1.3875,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1773
                        },
                        {
                          "name": "challengeLost",
                          "contribution": -0.0554
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": -0.0524
                        },
                        {
                          "name": "dispossessed",
                          "contribution": -0.0242
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0235
                        }
                      ],
                      "others": -0.038,
                      "total": 1.3713,
                      "log_link": true,
                      "margin_base": 0.327503,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.12026
                        },
                        {
                          "name": "challengeLost",
                          "margin": -0.036068
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": -0.035322
                        },
                        {
                          "name": "dispossessed",
                          "margin": -0.016761
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.016561
                        }
                      ],
                      "others_margin": -0.027318
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.8507044911384583,
                    "model_output": 0.8507,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1951
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0637
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0498
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0427
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0237
                      }
                    ],
                    "decomposition": {
                      "base": 0.8482,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1149
                        },
                        {
                          "name": "challengeLost",
                          "contribution": -0.0328
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0296
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0243
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0212
                        }
                      ],
                      "others": -0.0955,
                      "total": 0.8507,
                      "log_link": true,
                      "margin_base": -0.164613,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.127
                        },
                        {
                          "name": "challengeLost",
                          "margin": -0.034626
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.032296
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.026602
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": 0.022688
                        }
                      ],
                      "others_margin": -0.106446
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 3.4572415351867676,
                    "model_output": 3.4572,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2927
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.1441
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.033
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0239
                      }
                    ],
                    "decomposition": {
                      "base": 3.4157,
                      "items": [
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.5441
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.5483
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.4809
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.3344
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.2287
                        }
                      ],
                      "others": -0.0069,
                      "total": 3.4572,
                      "log_link": true,
                      "margin_base": 1.228383,
                      "item_margins": [
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.147808
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.129688
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.112796
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.086674
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.063923
                        }
                      ],
                      "others_margin": -0.002015
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.989953875541687,
                    "model_output": 0.99,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1566
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.1557
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0794
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0422
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.027
                      }
                    ],
                    "decomposition": {
                      "base": 1.3697,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": -0.4347
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1271
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.1384
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0887
                        },
                        {
                          "name": "aerialLost",
                          "contribution": -0.0713
                        }
                      ],
                      "others": -0.0505,
                      "total": 0.99,
                      "log_link": true,
                      "margin_base": 0.314594,
                      "item_margins": [
                        {
                          "name": "aerialWon",
                          "margin": -0.381816
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.127475
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.122479
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.076726
                        },
                        {
                          "name": "aerialLost",
                          "margin": -0.066319
                        }
                      ],
                      "others_margin": -0.049785
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.3477376103401184,
                    "model_output": 0.3477,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0952
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0683
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.0339
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0311
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.4812,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0821
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0491
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0188
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0175
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.0145
                        }
                      ],
                      "others": -0.0497,
                      "total": 0.3477,
                      "log_link": false,
                      "margin_base": 0.481248,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.082071
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.049115
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.018827
                        },
                        {
                          "name": "rating",
                          "margin": -0.017543
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": -0.01453
                        }
                      ],
                      "others_margin": -0.049654
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.80050802230835,
                    "model_output": 6.8005,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "accuratePass",
                        "importance": 0.0681
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.063
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.057
                      },
                      {
                        "name": "rating",
                        "importance": 0.0377
                      },
                      {
                        "name": "touches",
                        "importance": 0.0302
                      }
                    ],
                    "decomposition": {
                      "base": 6.7988,
                      "items": [
                        {
                          "name": "accuratePass",
                          "contribution": 0.038
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.032
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0217
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0131
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0122
                        }
                      ],
                      "others": -0.0213,
                      "total": 6.8005,
                      "log_link": false,
                      "margin_base": 6.798781,
                      "item_margins": [
                        {
                          "name": "accuratePass",
                          "margin": 0.037966
                        },
                        {
                          "name": "totalPass",
                          "margin": 0.03199
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.021716
                        },
                        {
                          "name": "rating",
                          "margin": -0.013087
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.012229
                        }
                      ],
                      "others_margin": -0.021196
                    }
                  }
                ],
                "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 1.0189, quality 0.669)",
              "stats": {
                "interceptions": 1.0978,
                "tackles": 1.3972,
                "tackles_won": 0.8668,
                "clearances": 3.5226,
                "aerial_won": 1.0087,
                "total_shots": 0.3543,
                "rating": 6.8005,
                "minutes": 86.9,
                "total_pass": 62.8316,
                "accurate_pass": 60.3026,
                "duels_won": 3.3403,
                "total_long_balls": 2.8475,
                "accurate_long_balls": 1.0607,
                "total_own_half_passes": 47.7224,
                "accurate_own_half_passes": 46.3845,
                "total_opp_half_passes": 15.1092,
                "accurate_opp_half_passes": 13.918,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 74.6992,
                "possession_lost": 4.0285,
                "dispossessed": 0.2086,
                "duels_lost": 2.1362,
                "aerial_lost": 0.6142,
                "total_contest": 0.4369,
                "won_contest": 0.328,
                "ball_recovery": 4.0967,
                "challenges_lost": 0.0,
                "fouls": 1.2046,
                "fouls_drawn": 1.1554,
                "blocks": 0.8228,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0688,
                "expected_assists": 0.008,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 18.8629,
                "total_progression": 37.8303,
                "progressive_carries": 0.2086,
                "key_pass": 0.0,
                "shots_off_target": 0.3543
              },
              "params": {
                "market_value_eur": 24000000,
                "quality_factor": 0.6685,
                "boost_factor": 1.0189,
                "reference_quality": 0.505,
                "history_matches": 8,
                "history_shrink": 0.3846,
                "market_value_known": true
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 1.0978,
                "tackles": 1.3972,
                "tackles_won": 0.8668,
                "clearances": 3.5226,
                "aerial_won": 1.0087,
                "total_shots": 0.3543,
                "rating": 6.8005,
                "minutes": 86.9,
                "total_pass": 62.8316,
                "accurate_pass": 60.3026,
                "duels_won": 3.3403,
                "total_long_balls": 2.8475,
                "accurate_long_balls": 1.0607,
                "total_own_half_passes": 47.7224,
                "accurate_own_half_passes": 46.3845,
                "total_opp_half_passes": 15.1092,
                "accurate_opp_half_passes": 13.918,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 74.6992,
                "possession_lost": 4.0285,
                "dispossessed": 0.2086,
                "duels_lost": 2.1362,
                "aerial_lost": 0.6142,
                "total_contest": 0.4369,
                "won_contest": 0.328,
                "ball_recovery": 4.0967,
                "challenges_lost": 0.0,
                "fouls": 1.2046,
                "fouls_drawn": 1.1554,
                "blocks": 0.8228,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0688,
                "expected_assists": 0.008,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 18.8629,
                "total_progression": 37.8303,
                "progressive_carries": 0.2086,
                "key_pass": 0.0,
                "shots_off_target": 0.3543
              },
              "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.0978,
                "tackles": 1.3972,
                "tackles_won": 0.8668,
                "clearances": 3.5226,
                "aerial_won": 1.0087,
                "total_shots": 0.3543,
                "rating": 6.8005,
                "minutes": 86.9,
                "total_pass": 62.8316,
                "accurate_pass": 60.3026,
                "duels_won": 3.3403,
                "total_long_balls": 2.8475,
                "accurate_long_balls": 1.0607,
                "total_own_half_passes": 47.7224,
                "accurate_own_half_passes": 46.3845,
                "total_opp_half_passes": 15.1092,
                "accurate_opp_half_passes": 13.918,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 74.6992,
                "possession_lost": 4.0285,
                "dispossessed": 0.2086,
                "duels_lost": 2.1362,
                "aerial_lost": 0.6142,
                "total_contest": 0.4369,
                "won_contest": 0.328,
                "ball_recovery": 4.0967,
                "challenges_lost": 0.0,
                "fouls": 1.2046,
                "fouls_drawn": 1.1554,
                "blocks": 0.8228,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0688,
                "expected_assists": 0.008,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 18.8629,
                "total_progression": 37.8303,
                "progressive_carries": 0.2086,
                "key_pass": 0.0,
                "shots_off_target": 0.3543,
                "tackles_in_zone": 1.1,
                "tackles_won_in_zone": 1.0,
                "interceptions_in_zone": 1.1,
                "clearances_in_zone": 0.9,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.807,
                "opponent_faced": "Nico Williams",
                "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": "Nico Williams",
                  "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": 1.0978,
                "tackles": 1.3972,
                "tackles_won": 0.8668,
                "clearances": 3.5226,
                "aerial_won": 1.0087,
                "total_shots": 0.3543,
                "rating": 6.8005,
                "minutes": 86.9,
                "total_pass": 62.8316,
                "accurate_pass": 60.3026,
                "duels_won": 3.3403,
                "total_long_balls": 2.8475,
                "accurate_long_balls": 1.0607,
                "total_own_half_passes": 47.7224,
                "accurate_own_half_passes": 46.3845,
                "total_opp_half_passes": 15.1092,
                "accurate_opp_half_passes": 13.918,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 74.6992,
                "possession_lost": 4.0285,
                "dispossessed": 0.2086,
                "duels_lost": 2.1362,
                "aerial_lost": 0.6142,
                "total_contest": 0.4369,
                "won_contest": 0.328,
                "ball_recovery": 4.0967,
                "challenges_lost": 0.0,
                "fouls": 1.2046,
                "fouls_drawn": 1.1554,
                "blocks": 0.8228,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0688,
                "expected_assists": 0.008,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 18.8629,
                "total_progression": 37.8303,
                "progressive_carries": 0.2086,
                "key_pass": 0.0,
                "shots_off_target": 0.3543,
                "tackles_in_zone": 1.1,
                "tackles_won_in_zone": 1.0,
                "interceptions_in_zone": 1.1,
                "clearances_in_zone": 0.9,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.807,
                "opponent_faced": "Nico Williams",
                "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.25 (squad xG sum 1.3010, xG scale 0.9646, xA scale 0.9646, team xA 0.85 = 0.67 x lambda)",
              "stats": {
                "interceptions": 1.0978,
                "tackles": 1.3972,
                "tackles_won": 0.8668,
                "clearances": 3.5226,
                "aerial_won": 1.0087,
                "total_shots": 0.3543,
                "rating": 6.8005,
                "minutes": 86.9,
                "total_pass": 62.8316,
                "accurate_pass": 60.3026,
                "duels_won": 3.3403,
                "total_long_balls": 2.8475,
                "accurate_long_balls": 1.0607,
                "total_own_half_passes": 47.7224,
                "accurate_own_half_passes": 46.3845,
                "total_opp_half_passes": 15.1092,
                "accurate_opp_half_passes": 13.918,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 74.6992,
                "possession_lost": 4.0285,
                "dispossessed": 0.2086,
                "duels_lost": 2.1362,
                "aerial_lost": 0.6142,
                "total_contest": 0.4369,
                "won_contest": 0.328,
                "ball_recovery": 4.0967,
                "challenges_lost": 0.0,
                "fouls": 1.2046,
                "fouls_drawn": 1.1554,
                "blocks": 0.8228,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0664,
                "expected_assists": 0.0077,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 18.8629,
                "total_progression": 37.8303,
                "progressive_carries": 0.2086,
                "key_pass": 0.0,
                "shots_off_target": 0.3543,
                "tackles_in_zone": 1.1,
                "tackles_won_in_zone": 1.0,
                "interceptions_in_zone": 1.1,
                "clearances_in_zone": 0.9,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.807,
                "opponent_faced": "Nico Williams",
                "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.8621
              },
              "params": {
                "team_lambda": 1.255,
                "squad_xg_sum": 1.301,
                "squad_xa_sum": 0.8767,
                "team_expected_assists": 0.8457,
                "team_xa_to_xg_ratio": 0.6739,
                "bench_appearance_weighted": true,
                "xg_scale": 0.9646,
                "xa_scale": 0.9646,
                "opponent_lambda": 1.729,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              }
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 77.0)",
              "stats": {
                "interceptions": 1.0978,
                "tackles": 1.3972,
                "tackles_won": 0.8668,
                "clearances": 3.5226,
                "aerial_won": 1.0087,
                "total_shots": 0.3543,
                "rating": 6.8005,
                "minutes": 86.9,
                "total_pass": 62.8316,
                "accurate_pass": 60.3026,
                "duels_won": 3.3403,
                "total_long_balls": 2.8475,
                "accurate_long_balls": 1.0607,
                "total_own_half_passes": 47.7224,
                "accurate_own_half_passes": 46.3845,
                "total_opp_half_passes": 15.1092,
                "accurate_opp_half_passes": 13.918,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 74.6992,
                "possession_lost": 4.0285,
                "dispossessed": 0.2086,
                "duels_lost": 2.1362,
                "aerial_lost": 0.6142,
                "total_contest": 0.4369,
                "won_contest": 0.328,
                "ball_recovery": 4.0967,
                "challenges_lost": 0.0,
                "fouls": 1.2046,
                "fouls_drawn": 1.1554,
                "blocks": 0.8228,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0664,
                "expected_assists": 0.0077,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 18.8629,
                "total_progression": 37.8303,
                "progressive_carries": 0.2086,
                "key_pass": 0.0,
                "shots_off_target": 0.3543,
                "tackles_in_zone": 1.1,
                "tackles_won_in_zone": 1.0,
                "interceptions_in_zone": 1.1,
                "clearances_in_zone": 0.9,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.807,
                "opponent_faced": "Nico Williams",
                "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.8621,
                "fifa_overall": 77.0
              },
              "params": {
                "match_squad_rank": 10,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3265,
                "fifa_rank": 1444.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.0978,
                "tackles": 1.3972,
                "tackles_won": 0.8668,
                "clearances": 3.5226,
                "aerial_won": 1.0087,
                "total_shots": 0.3543,
                "rating": 6.8005,
                "minutes": 86.9,
                "total_pass": 62.8316,
                "accurate_pass": 60.3026,
                "duels_won": 3.3403,
                "total_long_balls": 2.8475,
                "accurate_long_balls": 1.0607,
                "total_own_half_passes": 47.7224,
                "accurate_own_half_passes": 46.3845,
                "total_opp_half_passes": 15.1092,
                "accurate_opp_half_passes": 13.918,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 74.6992,
                "possession_lost": 4.0285,
                "dispossessed": 0.2086,
                "duels_lost": 2.1362,
                "aerial_lost": 0.6142,
                "total_contest": 0.4369,
                "won_contest": 0.328,
                "ball_recovery": 4.0967,
                "challenges_lost": 0.0,
                "fouls": 1.2046,
                "fouls_drawn": 1.1554,
                "blocks": 0.8228,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0664,
                "expected_assists": 0.0077,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 18.8629,
                "total_progression": 37.8303,
                "progressive_carries": 0.2086,
                "key_pass": 0.0,
                "shots_off_target": 0.3543,
                "tackles_in_zone": 1.1,
                "tackles_won_in_zone": 1.0,
                "interceptions_in_zone": 1.1,
                "clearances_in_zone": 0.9,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.807,
                "opponent_faced": "Nico Williams",
                "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.0642,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 0.8621,
                "fifa_overall": 77.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0642,
                "goal_rate": 0.0,
                "scorer_weight": 0.0531,
                "squad_weight_total": 1.3959,
                "weight_share": 0.0381,
                "finishing_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 8,
                "eligible_players": 14,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Mikel Oyarzabal",
                    "weight": 0.3544,
                    "already": 0,
                    "effective_weight": 0.3544,
                    "runner_up": "Gonçalo Guedes",
                    "runner_up_effective_weight": 0.2684
                  }
                ]
              }
            },
            {
              "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.0978,
                "tackles": 1.3972,
                "tackles_won": 0.8668,
                "clearances": 3.5226,
                "aerial_won": 1.0087,
                "total_shots": 0.3543,
                "rating": 6.8005,
                "minutes": 86.9,
                "total_pass": 62.8316,
                "accurate_pass": 60.3026,
                "duels_won": 3.3403,
                "total_long_balls": 2.8475,
                "accurate_long_balls": 1.0607,
                "total_own_half_passes": 47.7224,
                "accurate_own_half_passes": 46.3845,
                "total_opp_half_passes": 15.1092,
                "accurate_opp_half_passes": 13.918,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 74.6992,
                "possession_lost": 4.0285,
                "dispossessed": 0.2086,
                "duels_lost": 2.1362,
                "aerial_lost": 0.6142,
                "total_contest": 0.4369,
                "won_contest": 0.328,
                "ball_recovery": 4.0967,
                "challenges_lost": 0.0,
                "fouls": 1.2046,
                "fouls_drawn": 1.1554,
                "blocks": 0.8228,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0664,
                "expected_assists": 0.0077,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 18.8629,
                "total_progression": 37.8303,
                "progressive_carries": 0.2086,
                "key_pass": 0.0,
                "shots_off_target": 0.3543,
                "tackles_in_zone": 1.1,
                "tackles_won_in_zone": 1.0,
                "interceptions_in_zone": 1.1,
                "clearances_in_zone": 0.9,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.807,
                "opponent_faced": "Nico Williams",
                "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.0642,
                "projected_assists": 0,
                "assist_probability": 0.0077,
                "finishing_factor": 0.8,
                "creation_factor": 0.8621,
                "fifa_overall": 77.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0077,
                "assist_rate": 0.0,
                "provider_weight": 0.0066,
                "squad_weight_total": 0.8785,
                "weight_share": 0.0076,
                "creation_factor": 0.8621,
                "appearance_weight": 1.0,
                "weight_rank": 13,
                "eligible_players": 14,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Gonçalo Guedes",
                    "weight": 0.1642,
                    "already": 0,
                    "effective_weight": 0.1642,
                    "runner_up": "Carlos Soler",
                    "runner_up_effective_weight": 0.1308,
                    "blocked_own_goal": [
                      "Mikel Oyarzabal"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Jon Martin": {
          "player_id": 1466116,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 6,
          "height": 185,
          "market_value": 24000000,
          "stats": {
            "interceptions": 1,
            "tackles": 2,
            "tackles_won": 1,
            "clearances": 6,
            "aerial_won": 3,
            "total_shots": 1,
            "rating": 6.9564,
            "minutes": 90,
            "total_pass": 61,
            "accurate_pass": 56,
            "duels_won": 6,
            "total_long_balls": 3,
            "accurate_long_balls": 1,
            "total_own_half_passes": 43,
            "accurate_own_half_passes": 41,
            "total_opp_half_passes": 18,
            "accurate_opp_half_passes": 15,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 76,
            "possession_lost": 5.8807,
            "dispossessed": 0.5038,
            "duels_lost": 4,
            "aerial_lost": 2,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 3,
            "challenges_lost": 0,
            "fouls": 1,
            "fouls_drawn": 1,
            "blocks": 1,
            "goal_rate": 0.1736,
            "goals": 0,
            "assist_rate": 0.126,
            "assists": 0,
            "expected_goals": 0.0708,
            "expected_assists": 0.0085,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.1627,
            "ball_carries": 22,
            "total_progression": 65,
            "progressive_carries": 0,
            "key_pass": 0,
            "shots_off_target": 0,
            "tackles_in_zone": 1.1,
            "tackles_won_in_zone": 1.0,
            "interceptions_in_zone": 1.1,
            "clearances_in_zone": 0.9,
            "aerial_duels_won": 0.7,
            "defensive_success_rate": 0.807,
            "opponent_faced": "Nico Williams",
            "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.0684,
            "projected_assists": 0,
            "assist_probability": 0.0085,
            "finishing_factor": 1.25,
            "creation_factor": 1.25,
            "fifa_overall": 78.0
          },
          "latest_10_games": [
            {
              "match_id": 16421086.0,
              "match_date": "2026-10-25",
              "home_team": "Real Sociedad",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 90,
                "rating": 7.2,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0105,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "total_pass": 97,
                "accurate_pass": 91,
                "tackles": 3,
                "tackles_won": 2,
                "interceptions": 2,
                "clearances": 5,
                "aerial_won": 4,
                "duels_won": 10,
                "ball_recovery": 4,
                "saves": 0
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421073.0,
              "match_date": "2026-10-18",
              "home_team": "Málaga CF",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.0661,
                "expected_assists": 0.0052,
                "total_shots": 1,
                "total_pass": 55,
                "accurate_pass": 52,
                "key_pass": 1,
                "tackles": 3,
                "tackles_won": 3,
                "interceptions": 4,
                "clearances": 5,
                "aerial_won": 4,
                "duels_won": 8,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421067.0,
              "match_date": "2026-10-11",
              "home_team": "Real Sociedad",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 90,
                "rating": 7.8,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1976,
                "expected_assists": 0.0047,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 45,
                "accurate_pass": 42,
                "tackles": 3,
                "tackles_won": 1,
                "interceptions": 3,
                "clearances": 7,
                "aerial_won": 2,
                "duels_won": 5,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416297.0,
              "match_date": "2026-09-20",
              "home_team": "Valencia",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Valencia",
              "stats": {
                "minutes": 90,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1425,
                "expected_assists": 0.0042,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 28,
                "accurate_pass": 22,
                "interceptions": 2,
                "clearances": 9,
                "aerial_won": 4,
                "duels_won": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416319.0,
              "match_date": "2026-09-07",
              "home_team": "Elche",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Elche",
              "stats": {
                "minutes": 6,
                "rating": 4.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "total_pass": 3,
                "accurate_pass": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416340.0,
              "match_date": "2026-09-03",
              "home_team": "Real Sociedad",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0611,
                "expected_assists": 0.01,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 70,
                "accurate_pass": 69,
                "interceptions": 1,
                "clearances": 6,
                "aerial_won": 3,
                "duels_won": 4,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416310.0,
              "match_date": "2026-08-29",
              "home_team": "Real Sociedad",
              "away_team": "Espanyol",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 90,
                "rating": 7.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0618,
                "expected_assists": 0.0365,
                "total_shots": 1,
                "total_pass": 54,
                "accurate_pass": 47,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 5,
                "duels_won": 8,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421051.0,
              "match_date": "2026-08-26",
              "home_team": "Real Madrid",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 90,
                "rating": 6.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0065,
                "total_shots": 0,
                "total_pass": 52,
                "accurate_pass": 50,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 2,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416293.0,
              "match_date": "2026-08-21",
              "home_team": "Real Betis",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0031,
                "total_shots": 0,
                "total_pass": 70,
                "accurate_pass": 62,
                "tackles": 5,
                "tackles_won": 2,
                "clearances": 4,
                "aerial_won": 2,
                "duels_won": 7,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083687.0,
              "match_date": "2026-05-17",
              "home_team": "Real Sociedad",
              "away_team": "Valencia",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Valencia",
              "stats": {
                "minutes": 90,
                "rating": 6.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0084,
                "total_shots": 0,
                "total_pass": 57,
                "accurate_pass": 46,
                "tackles": 2,
                "interceptions": 1,
                "clearances": 9,
                "aerial_won": 4,
                "duels_won": 7,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 2491,
            "combined_rank_score": 899.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 549.0,
            "sofascore_rating": 6.82,
            "sofascore_appearances": 25.0,
            "fifa_rank": 1249.0,
            "fifa_overall": 78.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 6,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.9564,
            "source_file": "data/player_rankings.csv",
            "player_name": "Jon Martin",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Luca Tevere",
                  "ranking": 2486
                },
                {
                  "player_name": "Kyeong-jun Kim",
                  "ranking": 2487
                },
                {
                  "player_name": "Akramjon Komilov",
                  "ranking": 2488
                },
                {
                  "player_name": "Javier Nicolás Cárcamo",
                  "ranking": 2489
                },
                {
                  "player_name": "Kyeong Baek",
                  "ranking": 2490
                }
              ],
              "lower": [
                {
                  "player_name": "Sardor Abdunabiev",
                  "ranking": 2492
                },
                {
                  "player_name": "Yastin Cuevas",
                  "ranking": 2493
                },
                {
                  "player_name": "Igor Paixão",
                  "ranking": 2494
                },
                {
                  "player_name": "Carlos Espí",
                  "ranking": 2495
                },
                {
                  "player_name": "Joaquín Panichelli",
                  "ranking": 2496
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.79,
          "history_matches": 34,
          "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": 34,
            "data_confidence": 0.79,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0063,
            "fbref_prior_metrics": {
              "squad": "Real Sociedad",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 4.0,
              "starts": 4.0,
              "minutes": 360.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.5,
              "shots_on_target_pct": 50.0,
              "prior_reliability": 0.2667
            },
            "rationale": "XGBoost regressor (D_service) evaluated 34 historical appearances across 7 target models; FBref 2026-2027 prior blended (La Liga, Real Sociedad, rel: 0.27, 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.2793,
                "tackles": 1.5036,
                "tackles_won": 0.8381,
                "clearances": 5.6168,
                "aerial_won": 2.7157,
                "total_shots": 0.5267,
                "rating": 6.9564,
                "minutes": 90.0,
                "total_pass": 60.1511,
                "accurate_pass": 55.5036,
                "duels_won": 6.2091,
                "total_long_balls": 3.4173,
                "accurate_long_balls": 1.2696,
                "total_own_half_passes": 42.4268,
                "accurate_own_half_passes": 40.9212,
                "total_opp_half_passes": 17.7243,
                "accurate_opp_half_passes": 14.5824,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 75.1936,
                "possession_lost": 5.8439,
                "dispossessed": 0.5006,
                "duels_lost": 3.8049,
                "aerial_lost": 1.7235,
                "total_contest": 0.2538,
                "won_contest": 0.0563,
                "ball_recovery": 3.3963,
                "challenges_lost": 0.214,
                "fouls": 1.4022,
                "fouls_drawn": 0.9123,
                "blocks": 0.9641,
                "goals": 0.1764,
                "goal_rate": 0.1764,
                "assists": 0.1281,
                "assist_rate": 0.1281,
                "expected_goals": 0.0729,
                "expected_assists": 0.0087,
                "shots_on_target": 0.2555,
                "big_chances_created": 0.0,
                "xgot": 0.1676,
                "ball_carries": 22.1046,
                "total_progression": 64.5439,
                "progressive_carries": 0.4595,
                "key_pass": 0.2039,
                "shots_off_target": 0.2712
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 6,
                  "trained_at": "2026-11-01T11:26:13.602980+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 631,
                    "rows": 22117
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-25",
                    "opponent": "Levante UD",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1506,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Málaga CF",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.128,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-10-11",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1088,
                    "rating": 7.8
                  },
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Valencia",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0925,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Elche",
                    "minutes": 6.0,
                    "is_starting": false,
                    "weight": 0.0786,
                    "rating": 4.4
                  },
                  {
                    "match_date": "2026-09-03",
                    "opponent": "Celta Vigo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0668,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-08-29",
                    "opponent": "Espanyol",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0568,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-08-26",
                    "opponent": "Real Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0483,
                    "rating": 6.1
                  },
                  {
                    "match_date": "2026-08-21",
                    "opponent": "Real Betis",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.041,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-05-17",
                    "opponent": "Valencia",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0349,
                    "rating": 6.0
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 1.0,
                  "totalClearance": 5.4908,
                  "aerialWon": 3.0342,
                  "totalClearance_p90": 5.4908,
                  "totalTackle": 1.8467,
                  "totalTackle_p90": 1.8467
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 1.279316782951355,
                    "model_output": 1.2793,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2892
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0467
                      },
                      {
                        "name": "touches",
                        "importance": 0.0285
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0256
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0216
                      }
                    ],
                    "decomposition": {
                      "base": 0.8711,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1093
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": 0.1137
                        },
                        {
                          "name": "totalClearance",
                          "contribution": 0.0438
                        },
                        {
                          "name": "interceptionWon_p90",
                          "contribution": 0.0453
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0224
                        }
                      ],
                      "others": 0.0737,
                      "total": 1.2793,
                      "log_link": true,
                      "margin_base": -0.137969,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.11816
                        },
                        {
                          "name": "interceptionWon",
                          "margin": 0.109756
                        },
                        {
                          "name": "totalClearance",
                          "margin": 0.039242
                        },
                        {
                          "name": "interceptionWon_p90",
                          "margin": 0.039011
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.018789
                        }
                      ],
                      "others_margin": 0.059337
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.5036067962646484,
                    "model_output": 1.5036,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2446
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0686
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0555
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0437
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0249
                      }
                    ],
                    "decomposition": {
                      "base": 1.3875,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1794
                        },
                        {
                          "name": "challengeLost",
                          "contribution": -0.0997
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0523
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": 0.0469
                        },
                        {
                          "name": "wonTackle",
                          "contribution": 0.044
                        }
                      ],
                      "others": -0.0022,
                      "total": 1.5036,
                      "log_link": true,
                      "margin_base": 0.327503,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.121581
                        },
                        {
                          "name": "challengeLost",
                          "margin": -0.065717
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.036298
                        },
                        {
                          "name": "defensive_actions",
                          "margin": 0.032609
                        },
                        {
                          "name": "wonTackle",
                          "margin": 0.029649
                        }
                      ],
                      "others_margin": -0.00146
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.838061511516571,
                    "model_output": 0.8381,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1951
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0637
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0498
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0427
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0237
                      }
                    ],
                    "decomposition": {
                      "base": 0.8482,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1159
                        },
                        {
                          "name": "challengeLost",
                          "contribution": -0.0536
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0432
                        },
                        {
                          "name": "totalTackle",
                          "contribution": 0.04
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": 0.0327
                        }
                      ],
                      "others": -0.1019,
                      "total": 0.8381,
                      "log_link": true,
                      "margin_base": -0.164613,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.128066
                        },
                        {
                          "name": "challengeLost",
                          "margin": -0.057174
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.048627
                        },
                        {
                          "name": "totalTackle",
                          "margin": 0.045123
                        },
                        {
                          "name": "defensive_actions",
                          "margin": 0.035413
                        }
                      ],
                      "others_margin": -0.114851
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 5.616832733154297,
                    "model_output": 5.6168,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2927
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.1441
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.033
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0239
                      }
                    ],
                    "decomposition": {
                      "base": 3.4157,
                      "items": [
                        {
                          "name": "totalClearance",
                          "contribution": 0.5943
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.5781
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.3643
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.3673
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": -0.1928
                        }
                      ],
                      "others": 0.4899,
                      "total": 5.6168,
                      "log_link": true,
                      "margin_base": 1.228383,
                      "item_margins": [
                        {
                          "name": "totalClearance",
                          "margin": 0.160402
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.134667
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.076412
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.071548
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": -0.036918
                        }
                      ],
                      "others_margin": 0.091273
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 2.715721845626831,
                    "model_output": 2.7157,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1566
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.1557
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0794
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0422
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.027
                      }
                    ],
                    "decomposition": {
                      "base": 1.3697,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": 0.6068
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.2329
                        },
                        {
                          "name": "totalClearance",
                          "contribution": 0.1499
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0936
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0685
                        }
                      ],
                      "others": 0.1943,
                      "total": 2.7157,
                      "log_link": true,
                      "margin_base": 0.314594,
                      "item_margins": [
                        {
                          "name": "aerialWon",
                          "margin": 0.366718
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.111383
                        },
                        {
                          "name": "totalClearance",
                          "margin": 0.065641
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.038908
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.027561
                        }
                      ],
                      "others_margin": 0.074253
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.5266662240028381,
                    "model_output": 0.5267,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0952
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0683
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.0339
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0311
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.4812,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0581
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0265
                        },
                        {
                          "name": "duelWon",
                          "contribution": 0.0187
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0182
                        },
                        {
                          "name": "totalProgression",
                          "contribution": 0.0136
                        }
                      ],
                      "others": -0.0366,
                      "total": 0.5267,
                      "log_link": false,
                      "margin_base": 0.481248,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.058053
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.026491
                        },
                        {
                          "name": "duelWon",
                          "margin": 0.018668
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.018175
                        },
                        {
                          "name": "totalProgression",
                          "margin": 0.013646
                        }
                      ],
                      "others_margin": -0.036634
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.956427097320557,
                    "model_output": 6.9564,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "accuratePass",
                        "importance": 0.0681
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.063
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.057
                      },
                      {
                        "name": "rating",
                        "importance": 0.0377
                      },
                      {
                        "name": "touches",
                        "importance": 0.0302
                      }
                    ],
                    "decomposition": {
                      "base": 6.7988,
                      "items": [
                        {
                          "name": "totalPass",
                          "contribution": 0.0472
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0266
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0242
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0134
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0097
                        }
                      ],
                      "others": 0.0849,
                      "total": 6.9564,
                      "log_link": false,
                      "margin_base": 6.798781,
                      "item_margins": [
                        {
                          "name": "totalPass",
                          "margin": 0.047243
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.026623
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.024199
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.013376
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.009714
                        }
                      ],
                      "others_margin": 0.08489
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 34,
                  "role_matches": 33,
                  "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.0063, quality 0.669)",
              "stats": {
                "interceptions": 1.2874,
                "tackles": 1.5131,
                "tackles_won": 0.8433,
                "clearances": 5.6522,
                "aerial_won": 2.7328,
                "total_shots": 0.53,
                "rating": 6.9564,
                "minutes": 90.0,
                "total_pass": 60.5301,
                "accurate_pass": 55.8533,
                "duels_won": 6.2482,
                "total_long_balls": 3.4388,
                "accurate_long_balls": 1.2776,
                "total_own_half_passes": 42.6941,
                "accurate_own_half_passes": 41.179,
                "total_opp_half_passes": 17.836,
                "accurate_opp_half_passes": 14.6743,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 75.6673,
                "possession_lost": 5.8807,
                "dispossessed": 0.5038,
                "duels_lost": 3.8289,
                "aerial_lost": 1.7344,
                "total_contest": 0.2554,
                "won_contest": 0.0567,
                "ball_recovery": 3.4177,
                "challenges_lost": 0.2153,
                "fouls": 1.411,
                "fouls_drawn": 0.918,
                "blocks": 0.9702,
                "goals": 0.1775,
                "goal_rate": 0.1775,
                "assists": 0.1289,
                "assist_rate": 0.1289,
                "expected_goals": 0.0734,
                "expected_assists": 0.0088,
                "shots_on_target": 0.2571,
                "big_chances_created": 0.0,
                "xgot": 0.1687,
                "ball_carries": 22.2439,
                "total_progression": 64.9505,
                "progressive_carries": 0.4624,
                "key_pass": 0.2052,
                "shots_off_target": 0.2729
              },
              "params": {
                "market_value_eur": 24000000,
                "quality_factor": 0.6685,
                "boost_factor": 1.0063,
                "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.0222)",
              "stats": {
                "interceptions": 1.2643,
                "tackles": 1.5131,
                "tackles_won": 0.8579,
                "clearances": 5.6522,
                "aerial_won": 2.7328,
                "total_shots": 0.5293,
                "rating": 6.9564,
                "minutes": 90.0,
                "total_pass": 60.5301,
                "accurate_pass": 55.8533,
                "duels_won": 6.2482,
                "total_long_balls": 3.4388,
                "accurate_long_balls": 1.2776,
                "total_own_half_passes": 42.6941,
                "accurate_own_half_passes": 41.179,
                "total_opp_half_passes": 17.836,
                "accurate_opp_half_passes": 14.6743,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 75.6673,
                "possession_lost": 5.8807,
                "dispossessed": 0.5038,
                "duels_lost": 3.8289,
                "aerial_lost": 1.7344,
                "total_contest": 0.2554,
                "won_contest": 0.0567,
                "ball_recovery": 3.4177,
                "challenges_lost": 0.2153,
                "fouls": 1.4019,
                "fouls_drawn": 0.9143,
                "blocks": 0.9702,
                "goals": 0.1736,
                "goal_rate": 0.1736,
                "assists": 0.126,
                "assist_rate": 0.126,
                "expected_goals": 0.0734,
                "expected_assists": 0.0088,
                "shots_on_target": 0.2569,
                "big_chances_created": 0.0,
                "xgot": 0.1687,
                "ball_carries": 22.2439,
                "total_progression": 64.9505,
                "progressive_carries": 0.4624,
                "key_pass": 0.2052,
                "shots_off_target": 0.2729
              },
              "params": {
                "blend_weight": 0.0222,
                "history_matches": 34,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 1.0,
                "prior_reliability": 0.2667,
                "competition": "La Liga",
                "squad": "Real Sociedad"
              },
              "changes": [
                {
                  "stat": "interceptionWon",
                  "before": 1.2874,
                  "after": 1.2643
                },
                {
                  "stat": "wonTackle",
                  "before": 0.8433,
                  "after": 0.8579
                },
                {
                  "stat": "fouls",
                  "before": 1.411,
                  "after": 1.4019
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 1.2643,
                "tackles": 1.5131,
                "tackles_won": 0.8579,
                "clearances": 5.6522,
                "aerial_won": 2.7328,
                "total_shots": 0.5298,
                "rating": 6.9564,
                "minutes": 90.0,
                "total_pass": 60.5301,
                "accurate_pass": 55.8533,
                "duels_won": 6.2482,
                "total_long_balls": 3.4388,
                "accurate_long_balls": 1.2776,
                "total_own_half_passes": 42.6941,
                "accurate_own_half_passes": 41.179,
                "total_opp_half_passes": 17.836,
                "accurate_opp_half_passes": 14.6743,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 75.6673,
                "possession_lost": 5.8807,
                "dispossessed": 0.5038,
                "duels_lost": 3.8289,
                "aerial_lost": 1.7344,
                "total_contest": 0.2554,
                "won_contest": 0.0567,
                "ball_recovery": 3.4177,
                "challenges_lost": 0.2153,
                "fouls": 1.4019,
                "fouls_drawn": 0.9143,
                "blocks": 0.9702,
                "goals": 0.1736,
                "goal_rate": 0.1736,
                "assists": 0.126,
                "assist_rate": 0.126,
                "expected_goals": 0.0734,
                "expected_assists": 0.0088,
                "shots_on_target": 0.2569,
                "big_chances_created": 0.0,
                "xgot": 0.1687,
                "ball_carries": 22.2439,
                "total_progression": 64.9505,
                "progressive_carries": 0.4624,
                "key_pass": 0.2052,
                "shots_off_target": 0.2729
              },
              "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.2643,
                "tackles": 1.5131,
                "tackles_won": 0.8579,
                "clearances": 5.6522,
                "aerial_won": 2.7328,
                "total_shots": 0.5298,
                "rating": 6.9564,
                "minutes": 90.0,
                "total_pass": 60.5301,
                "accurate_pass": 55.8533,
                "duels_won": 6.2482,
                "total_long_balls": 3.4388,
                "accurate_long_balls": 1.2776,
                "total_own_half_passes": 42.6941,
                "accurate_own_half_passes": 41.179,
                "total_opp_half_passes": 17.836,
                "accurate_opp_half_passes": 14.6743,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 75.6673,
                "possession_lost": 5.8807,
                "dispossessed": 0.5038,
                "duels_lost": 3.8289,
                "aerial_lost": 1.7344,
                "total_contest": 0.2554,
                "won_contest": 0.0567,
                "ball_recovery": 3.4177,
                "challenges_lost": 0.2153,
                "fouls": 1.4019,
                "fouls_drawn": 0.9143,
                "blocks": 0.9702,
                "goals": 0.1736,
                "goal_rate": 0.1736,
                "assists": 0.126,
                "assist_rate": 0.126,
                "expected_goals": 0.0734,
                "expected_assists": 0.0088,
                "shots_on_target": 0.2569,
                "big_chances_created": 0.0,
                "xgot": 0.1687,
                "ball_carries": 22.2439,
                "total_progression": 64.9505,
                "progressive_carries": 0.4624,
                "key_pass": 0.2052,
                "shots_off_target": 0.2729,
                "tackles_in_zone": 1.1,
                "tackles_won_in_zone": 1.0,
                "interceptions_in_zone": 1.1,
                "clearances_in_zone": 0.9,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.807,
                "opponent_faced": "Nico Williams",
                "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": "Nico Williams",
                  "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": 1.2643,
                "tackles": 1.5131,
                "tackles_won": 0.8579,
                "clearances": 5.6522,
                "aerial_won": 2.7328,
                "total_shots": 0.5298,
                "rating": 6.9564,
                "minutes": 90.0,
                "total_pass": 60.5301,
                "accurate_pass": 55.8533,
                "duels_won": 6.2482,
                "total_long_balls": 3.4388,
                "accurate_long_balls": 1.2776,
                "total_own_half_passes": 42.6941,
                "accurate_own_half_passes": 41.179,
                "total_opp_half_passes": 17.836,
                "accurate_opp_half_passes": 14.6743,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 75.6673,
                "possession_lost": 5.8807,
                "dispossessed": 0.5038,
                "duels_lost": 3.8289,
                "aerial_lost": 1.7344,
                "total_contest": 0.2554,
                "won_contest": 0.0567,
                "ball_recovery": 3.4177,
                "challenges_lost": 0.2153,
                "fouls": 1.4019,
                "fouls_drawn": 0.9143,
                "blocks": 0.9702,
                "goal_rate": 0.1736,
                "goals": 0,
                "assist_rate": 0.126,
                "assists": 0,
                "expected_goals": 0.0734,
                "expected_assists": 0.0088,
                "shots_on_target": 0.2569,
                "big_chances_created": 0.0,
                "xgot": 0.1687,
                "ball_carries": 22.2439,
                "total_progression": 64.9505,
                "progressive_carries": 0.4624,
                "key_pass": 0.2052,
                "shots_off_target": 0.2729,
                "tackles_in_zone": 1.1,
                "tackles_won_in_zone": 1.0,
                "interceptions_in_zone": 1.1,
                "clearances_in_zone": 0.9,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.807,
                "opponent_faced": "Nico Williams",
                "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.25 (squad xG sum 1.3010, xG scale 0.9646, xA scale 0.9646, team xA 0.85 = 0.67 x lambda)",
              "stats": {
                "interceptions": 1.2643,
                "tackles": 1.5131,
                "tackles_won": 0.8579,
                "clearances": 5.6522,
                "aerial_won": 2.7328,
                "total_shots": 0.5298,
                "rating": 6.9564,
                "minutes": 90.0,
                "total_pass": 60.5301,
                "accurate_pass": 55.8533,
                "duels_won": 6.2482,
                "total_long_balls": 3.4388,
                "accurate_long_balls": 1.2776,
                "total_own_half_passes": 42.6941,
                "accurate_own_half_passes": 41.179,
                "total_opp_half_passes": 17.836,
                "accurate_opp_half_passes": 14.6743,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 75.6673,
                "possession_lost": 5.8807,
                "dispossessed": 0.5038,
                "duels_lost": 3.8289,
                "aerial_lost": 1.7344,
                "total_contest": 0.2554,
                "won_contest": 0.0567,
                "ball_recovery": 3.4177,
                "challenges_lost": 0.2153,
                "fouls": 1.4019,
                "fouls_drawn": 0.9143,
                "blocks": 0.9702,
                "goal_rate": 0.1736,
                "goals": 0,
                "assist_rate": 0.126,
                "assists": 0,
                "expected_goals": 0.0708,
                "expected_assists": 0.0085,
                "shots_on_target": 0.2569,
                "big_chances_created": 0.0,
                "xgot": 0.1627,
                "ball_carries": 22.2439,
                "total_progression": 64.9505,
                "progressive_carries": 0.4624,
                "key_pass": 0.2052,
                "shots_off_target": 0.2729,
                "tackles_in_zone": 1.1,
                "tackles_won_in_zone": 1.0,
                "interceptions_in_zone": 1.1,
                "clearances_in_zone": 0.9,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.807,
                "opponent_faced": "Nico Williams",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 1.25
              },
              "params": {
                "team_lambda": 1.255,
                "squad_xg_sum": 1.301,
                "squad_xa_sum": 0.8767,
                "team_expected_assists": 0.8457,
                "team_xa_to_xg_ratio": 0.6739,
                "bench_appearance_weighted": true,
                "xg_scale": 0.9646,
                "xa_scale": 0.9646,
                "opponent_lambda": 1.729,
                "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 78.0)",
              "stats": {
                "interceptions": 1.2643,
                "tackles": 1.5131,
                "tackles_won": 0.8579,
                "clearances": 5.6522,
                "aerial_won": 2.7328,
                "total_shots": 0.5298,
                "rating": 6.9564,
                "minutes": 90.0,
                "total_pass": 60.5301,
                "accurate_pass": 55.8533,
                "duels_won": 6.2482,
                "total_long_balls": 3.4388,
                "accurate_long_balls": 1.2776,
                "total_own_half_passes": 42.6941,
                "accurate_own_half_passes": 41.179,
                "total_opp_half_passes": 17.836,
                "accurate_opp_half_passes": 14.6743,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 75.6673,
                "possession_lost": 5.8807,
                "dispossessed": 0.5038,
                "duels_lost": 3.8289,
                "aerial_lost": 1.7344,
                "total_contest": 0.2554,
                "won_contest": 0.0567,
                "ball_recovery": 3.4177,
                "challenges_lost": 0.2153,
                "fouls": 1.4019,
                "fouls_drawn": 0.9143,
                "blocks": 0.9702,
                "goal_rate": 0.1736,
                "goals": 0,
                "assist_rate": 0.126,
                "assists": 0,
                "expected_goals": 0.0708,
                "expected_assists": 0.0085,
                "shots_on_target": 0.2569,
                "big_chances_created": 0.0,
                "xgot": 0.1627,
                "ball_carries": 22.2439,
                "total_progression": 64.9505,
                "progressive_carries": 0.4624,
                "key_pass": 0.2052,
                "shots_off_target": 0.2729,
                "tackles_in_zone": 1.1,
                "tackles_won_in_zone": 1.0,
                "interceptions_in_zone": 1.1,
                "clearances_in_zone": 0.9,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.807,
                "opponent_faced": "Nico Williams",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 1.25,
                "fifa_overall": 78.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": 2491,
                "fifa_rank": 1249.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": {
                "interceptions": 1.2643,
                "tackles": 1.5131,
                "tackles_won": 0.8579,
                "clearances": 5.6522,
                "aerial_won": 2.7328,
                "total_shots": 0.5298,
                "rating": 6.9564,
                "minutes": 90.0,
                "total_pass": 60.5301,
                "accurate_pass": 55.8533,
                "duels_won": 6.2482,
                "total_long_balls": 3.4388,
                "accurate_long_balls": 1.2776,
                "total_own_half_passes": 42.6941,
                "accurate_own_half_passes": 41.179,
                "total_opp_half_passes": 17.836,
                "accurate_opp_half_passes": 14.6743,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 75.6673,
                "possession_lost": 5.8807,
                "dispossessed": 0.5038,
                "duels_lost": 3.8289,
                "aerial_lost": 1.7344,
                "total_contest": 0.2554,
                "won_contest": 0.0567,
                "ball_recovery": 3.4177,
                "challenges_lost": 0.2153,
                "fouls": 1.4019,
                "fouls_drawn": 0.9143,
                "blocks": 0.9702,
                "goal_rate": 0.1736,
                "goals": 0,
                "assist_rate": 0.126,
                "assists": 0,
                "expected_goals": 0.0708,
                "expected_assists": 0.0085,
                "shots_on_target": 0.2569,
                "big_chances_created": 0.0,
                "xgot": 0.1627,
                "ball_carries": 22.2439,
                "total_progression": 64.9505,
                "progressive_carries": 0.4624,
                "key_pass": 0.2052,
                "shots_off_target": 0.2729,
                "tackles_in_zone": 1.1,
                "tackles_won_in_zone": 1.0,
                "interceptions_in_zone": 1.1,
                "clearances_in_zone": 0.9,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.807,
                "opponent_faced": "Nico Williams",
                "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.0684,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 1.25,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0684,
                "goal_rate": 0.1736,
                "scorer_weight": 0.0885,
                "squad_weight_total": 1.3959,
                "weight_share": 0.0634,
                "finishing_factor": 1.25,
                "appearance_weight": 1.0,
                "weight_rank": 6,
                "eligible_players": 14,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Mikel Oyarzabal",
                    "weight": 0.3544,
                    "already": 0,
                    "effective_weight": 0.3544,
                    "runner_up": "Gonçalo Guedes",
                    "runner_up_effective_weight": 0.2684
                  }
                ]
              }
            },
            {
              "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.2643,
                "tackles": 1.5131,
                "tackles_won": 0.8579,
                "clearances": 5.6522,
                "aerial_won": 2.7328,
                "total_shots": 0.5298,
                "rating": 6.9564,
                "minutes": 90.0,
                "total_pass": 60.5301,
                "accurate_pass": 55.8533,
                "duels_won": 6.2482,
                "total_long_balls": 3.4388,
                "accurate_long_balls": 1.2776,
                "total_own_half_passes": 42.6941,
                "accurate_own_half_passes": 41.179,
                "total_opp_half_passes": 17.836,
                "accurate_opp_half_passes": 14.6743,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 75.6673,
                "possession_lost": 5.8807,
                "dispossessed": 0.5038,
                "duels_lost": 3.8289,
                "aerial_lost": 1.7344,
                "total_contest": 0.2554,
                "won_contest": 0.0567,
                "ball_recovery": 3.4177,
                "challenges_lost": 0.2153,
                "fouls": 1.4019,
                "fouls_drawn": 0.9143,
                "blocks": 0.9702,
                "goal_rate": 0.1736,
                "goals": 0,
                "assist_rate": 0.126,
                "assists": 0,
                "expected_goals": 0.0708,
                "expected_assists": 0.0085,
                "shots_on_target": 0.2569,
                "big_chances_created": 0.0,
                "xgot": 0.1627,
                "ball_carries": 22.2439,
                "total_progression": 64.9505,
                "progressive_carries": 0.4624,
                "key_pass": 0.2052,
                "shots_off_target": 0.2729,
                "tackles_in_zone": 1.1,
                "tackles_won_in_zone": 1.0,
                "interceptions_in_zone": 1.1,
                "clearances_in_zone": 0.9,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.807,
                "opponent_faced": "Nico Williams",
                "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.0684,
                "projected_assists": 0,
                "assist_probability": 0.0085,
                "finishing_factor": 1.25,
                "creation_factor": 1.25,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0085,
                "assist_rate": 0.126,
                "provider_weight": 0.0106,
                "squad_weight_total": 0.8785,
                "weight_share": 0.0121,
                "creation_factor": 1.25,
                "appearance_weight": 1.0,
                "weight_rank": 12,
                "eligible_players": 14,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Gonçalo Guedes",
                    "weight": 0.1642,
                    "already": 0,
                    "effective_weight": 0.1642,
                    "runner_up": "Carlos Soler",
                    "runner_up_effective_weight": 0.1308,
                    "blocked_own_goal": [
                      "Mikel Oyarzabal"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Sergio Gómez": {
          "player_id": 855835,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 17,
          "height": 171,
          "market_value": 14600000,
          "stats": {
            "interceptions": 1,
            "tackles": 2,
            "tackles_won": 1,
            "clearances": 2,
            "aerial_won": 1,
            "total_shots": 1,
            "rating": 6.7829,
            "minutes": 86,
            "total_pass": 46,
            "accurate_pass": 41,
            "duels_won": 3,
            "total_long_balls": 3,
            "accurate_long_balls": 2,
            "total_own_half_passes": 22,
            "accurate_own_half_passes": 20,
            "total_opp_half_passes": 24,
            "accurate_opp_half_passes": 21,
            "crosses_total": 4,
            "crosses_accurate": 1,
            "touches": 72,
            "possession_lost": 12.6877,
            "dispossessed": 0.3007,
            "duels_lost": 2,
            "aerial_lost": 0,
            "total_contest": 1,
            "won_contest": 1,
            "ball_recovery": 5,
            "challenges_lost": 1,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assist_rate": 0.116,
            "assists": 0,
            "expected_goals": 0.0129,
            "expected_assists": 0.0993,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0184,
            "ball_carries": 14,
            "total_progression": 35,
            "progressive_carries": 1,
            "key_pass": 1,
            "shots_off_target": 0,
            "opponent_faced": "Maroan Sannadi",
            "matchup_zone": "Shape fallback",
            "antagonist_source": "formation_fallback",
            "projected_goals": 0,
            "goal_probability": 0.0128,
            "projected_assists": 0,
            "assist_probability": 0.0945,
            "finishing_factor": 0.8,
            "creation_factor": 1.0857,
            "fifa_overall": 78.0
          },
          "latest_10_games": [
            {
              "match_id": 16421086.0,
              "match_date": "2026-10-25",
              "home_team": "Real Sociedad",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0315,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "total_pass": 54,
                "accurate_pass": 53,
                "tackles": 0,
                "tackles_won": 0,
                "interceptions": 1,
                "clearances": 1,
                "aerial_won": 0,
                "duels_won": 1,
                "ball_recovery": 5,
                "saves": 0
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421073.0,
              "match_date": "2026-10-18",
              "home_team": "Málaga CF",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 19,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0857,
                "total_shots": 0,
                "total_pass": 20,
                "accurate_pass": 20,
                "key_pass": 1,
                "tackles": 1,
                "interceptions": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421067.0,
              "match_date": "2026-10-11",
              "home_team": "Real Sociedad",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0203,
                "total_shots": 0,
                "total_pass": 28,
                "accurate_pass": 23,
                "key_pass": 1,
                "tackles": 4,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 4,
                "duels_won": 4,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416297.0,
              "match_date": "2026-09-20",
              "home_team": "Valencia",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Valencia",
              "stats": {
                "minutes": 69,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.1595,
                "total_shots": 0,
                "total_pass": 27,
                "accurate_pass": 25,
                "key_pass": 2,
                "tackles": 1,
                "clearances": 3,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416332.0,
              "match_date": "2026-09-13",
              "home_team": "Real Sociedad",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 90,
                "rating": 6.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0557,
                "expected_assists": 0.0718,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 59,
                "accurate_pass": 50,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 1,
                "duels_won": 3,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416319.0,
              "match_date": "2026-09-07",
              "home_team": "Elche",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Elche",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0131,
                "total_shots": 0,
                "total_pass": 51,
                "accurate_pass": 45,
                "key_pass": 1,
                "tackles": 3,
                "tackles_won": 2,
                "interceptions": 1,
                "clearances": 4,
                "duels_won": 4,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416340.0,
              "match_date": "2026-09-03",
              "home_team": "Real Sociedad",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 90,
                "rating": 7.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0146,
                "total_shots": 0,
                "total_pass": 64,
                "accurate_pass": 55,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 1,
                "clearances": 4,
                "aerial_won": 2,
                "duels_won": 4,
                "ball_recovery": 9
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416310.0,
              "match_date": "2026-08-29",
              "home_team": "Real Sociedad",
              "away_team": "Espanyol",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.1283,
                "total_shots": 0,
                "total_pass": 45,
                "accurate_pass": 38,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421051.0,
              "match_date": "2026-08-26",
              "home_team": "Real Madrid",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 90,
                "rating": 6.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0826,
                "expected_assists": 0.0439,
                "total_shots": 2,
                "shots_off_target": 2,
                "total_pass": 73,
                "accurate_pass": 66,
                "key_pass": 2,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 1,
                "duels_won": 2,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416293.0,
              "match_date": "2026-08-21",
              "home_team": "Real Betis",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 72,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0322,
                "expected_assists": 0.0597,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 27,
                "accurate_pass": 26,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 1,
                "duels_won": 3,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 2458,
            "combined_rank_score": 887.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 535.0,
            "sofascore_rating": 6.8286,
            "sofascore_appearances": 35.0,
            "fifa_rank": 1239.0,
            "fifa_overall": 78.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 12,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.7829,
            "source_file": "data/player_rankings.csv",
            "player_name": "Sergio Gómez",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Jorrel Hato",
                  "ranking": 2453
                },
                {
                  "player_name": "Charles Pickel",
                  "ranking": 2454
                },
                {
                  "player_name": "Nicolás Otamendi",
                  "ranking": 2455
                },
                {
                  "player_name": "Walter Scott",
                  "ranking": 2456
                },
                {
                  "player_name": "Javier Rojas",
                  "ranking": 2457
                }
              ],
              "lower": [
                {
                  "player_name": "Jaka Bijol",
                  "ranking": 2459
                },
                {
                  "player_name": "Emiliano Ramos",
                  "ranking": 2460
                },
                {
                  "player_name": "Camilo Moya",
                  "ranking": 2461
                },
                {
                  "player_name": "Ji Dong-Won",
                  "ranking": 2462
                },
                {
                  "player_name": "Jefferson Savarino",
                  "ranking": 2463
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.788,
          "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.788,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0021,
            "fbref_prior_metrics": {
              "squad": "Real Sociedad",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 4.0,
              "starts": 4.0,
              "minutes": 341.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.79,
              "shots_on_target_pct": 0.0,
              "prior_reliability": 0.2533
            },
            "rationale": "XGBoost regressor (D_service) evaluated 45 historical appearances across 7 target models; FBref 2026-2027 prior blended (La Liga, Real Sociedad, rel: 0.25, 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.0098,
                "tackles": 1.993,
                "tackles_won": 1.3113,
                "clearances": 2.2943,
                "aerial_won": 0.6655,
                "total_shots": 0.5138,
                "rating": 6.7829,
                "minutes": 86.26,
                "total_pass": 46.0039,
                "accurate_pass": 40.9726,
                "duels_won": 3.0649,
                "total_long_balls": 3.3016,
                "accurate_long_balls": 2.127,
                "total_own_half_passes": 22.1964,
                "accurate_own_half_passes": 20.2876,
                "total_opp_half_passes": 23.8075,
                "accurate_opp_half_passes": 20.6849,
                "crosses_total": 4.2126,
                "crosses_accurate": 0.6483,
                "touches": 71.4418,
                "possession_lost": 12.6611,
                "dispossessed": 0.3001,
                "duels_lost": 2.462,
                "aerial_lost": 0.3393,
                "total_contest": 0.8342,
                "won_contest": 0.5106,
                "ball_recovery": 4.8255,
                "challenges_lost": 1.1611,
                "fouls": 0.4163,
                "fouls_drawn": 0.3383,
                "blocks": 0.3799,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.1177,
                "assist_rate": 0.1177,
                "expected_goals": 0.0134,
                "expected_assists": 0.1027,
                "shots_on_target": 0.0923,
                "big_chances_created": 0.2427,
                "xgot": 0.0191,
                "ball_carries": 14.3297,
                "total_progression": 34.5609,
                "progressive_carries": 0.653,
                "key_pass": 1.06,
                "shots_off_target": 0.4215
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 6,
                  "trained_at": "2026-11-01T11:26:13.602980+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 631,
                    "rows": 22117
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-25",
                    "opponent": "Levante UD",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1501,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Málaga CF",
                    "minutes": 19.0,
                    "is_starting": false,
                    "weight": 0.1276,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-10-11",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1084,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Valencia",
                    "minutes": 69.0,
                    "is_starting": true,
                    "weight": 0.0922,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Atlético Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0784,
                    "rating": 6.1
                  },
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Elche",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0666,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-09-03",
                    "opponent": "Celta Vigo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0566,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-08-29",
                    "opponent": "Espanyol",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0481,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-08-26",
                    "opponent": "Real Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0409,
                    "rating": 6.1
                  },
                  {
                    "match_date": "2026-08-21",
                    "opponent": "Real Betis",
                    "minutes": 72.0,
                    "is_starting": true,
                    "weight": 0.0348,
                    "rating": 7.0
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 1.0,
                  "totalClearance": 2.1504,
                  "aerialWon": 0.3791,
                  "totalClearance_p90": 2.4135,
                  "totalTackle": 1.5879,
                  "totalTackle_p90": 2.1278
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 1.00981605052948,
                    "model_output": 1.0098,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2892
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0467
                      },
                      {
                        "name": "touches",
                        "importance": 0.0285
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0256
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0216
                      }
                    ],
                    "decomposition": {
                      "base": 0.8711,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1228
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": 0.0411
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0342
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.02
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": -0.0124
                        }
                      ],
                      "others": 0.0414,
                      "total": 1.0098,
                      "log_link": true,
                      "margin_base": -0.137969,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.1319
                        },
                        {
                          "name": "interceptionWon",
                          "margin": 0.04055
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.033603
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.020134
                        },
                        {
                          "name": "duelWon_p90",
                          "margin": -0.012702
                        }
                      ],
                      "others_margin": 0.041728
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.9929759502410889,
                    "model_output": 1.993,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2446
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0686
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0555
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0437
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0249
                      }
                    ],
                    "decomposition": {
                      "base": 1.3875,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1992
                        },
                        {
                          "name": "totalTackle",
                          "contribution": 0.0933
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.097
                        },
                        {
                          "name": "challengeLost",
                          "contribution": 0.0804
                        },
                        {
                          "name": "press_vulnerability",
                          "contribution": 0.0643
                        }
                      ],
                      "others": 0.0713,
                      "total": 1.993,
                      "log_link": true,
                      "margin_base": 0.327503,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.134156
                        },
                        {
                          "name": "totalTackle",
                          "margin": 0.057162
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.056108
                        },
                        {
                          "name": "challengeLost",
                          "margin": 0.044238
                        },
                        {
                          "name": "press_vulnerability",
                          "margin": 0.034044
                        }
                      ],
                      "others_margin": 0.036418
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 1.3113394975662231,
                    "model_output": 1.3113,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1951
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0637
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0498
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0427
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0237
                      }
                    ],
                    "decomposition": {
                      "base": 0.8482,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1209
                        },
                        {
                          "name": "challengeLost",
                          "contribution": 0.0663
                        },
                        {
                          "name": "totalTackle",
                          "contribution": 0.0616
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.0636
                        },
                        {
                          "name": "press_vulnerability",
                          "contribution": 0.0353
                        }
                      ],
                      "others": 0.1154,
                      "total": 1.3113,
                      "log_link": true,
                      "margin_base": -0.164613,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.133224
                        },
                        {
                          "name": "challengeLost",
                          "margin": 0.066187
                        },
                        {
                          "name": "totalTackle",
                          "margin": 0.057807
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.056366
                        },
                        {
                          "name": "press_vulnerability",
                          "margin": 0.029984
                        }
                      ],
                      "others_margin": 0.092094
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 2.2943174839019775,
                    "model_output": 2.2943,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2927
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.1441
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.033
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0239
                      }
                    ],
                    "decomposition": {
                      "base": 3.4157,
                      "items": [
                        {
                          "name": "totalClearance",
                          "contribution": -0.4226
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.3871
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.3082
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.2626
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.155
                        }
                      ],
                      "others": -0.3601,
                      "total": 2.2943,
                      "log_link": true,
                      "margin_base": 1.228383,
                      "item_margins": [
                        {
                          "name": "totalClearance",
                          "margin": -0.132079
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.121629
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.095599
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.089368
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.056747
                        }
                      ],
                      "others_margin": -0.145784
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.6654561161994934,
                    "model_output": 0.6655,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1566
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.1557
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0794
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0422
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.027
                      }
                    ],
                    "decomposition": {
                      "base": 1.3697,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": -0.5119
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1108
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.072
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.063
                        },
                        {
                          "name": "aerialLost",
                          "contribution": -0.0491
                        }
                      ],
                      "others": -0.119,
                      "total": 0.6655,
                      "log_link": true,
                      "margin_base": 0.314594,
                      "item_margins": [
                        {
                          "name": "aerialWon",
                          "margin": -0.468009
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.121443
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.077203
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.072868
                        },
                        {
                          "name": "aerialLost",
                          "margin": -0.060672
                        }
                      ],
                      "others_margin": -0.164566
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.5138208866119385,
                    "model_output": 0.5138,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0952
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0683
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.0339
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0311
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.4812,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0791
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0547
                        },
                        {
                          "name": "aerialLost",
                          "contribution": 0.0353
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": 0.0264
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.014
                        }
                      ],
                      "others": -0.0187,
                      "total": 0.5138,
                      "log_link": false,
                      "margin_base": 0.481248,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.079126
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.054747
                        },
                        {
                          "name": "aerialLost",
                          "margin": 0.035346
                        },
                        {
                          "name": "defensive_actions",
                          "margin": 0.026444
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.013975
                        }
                      ],
                      "others_margin": -0.018813
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.7829365730285645,
                    "model_output": 6.7829,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "accuratePass",
                        "importance": 0.0681
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.063
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.057
                      },
                      {
                        "name": "rating",
                        "importance": 0.0377
                      },
                      {
                        "name": "touches",
                        "importance": 0.0302
                      }
                    ],
                    "decomposition": {
                      "base": 6.7988,
                      "items": [
                        {
                          "name": "touches_p90",
                          "contribution": 0.0235
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0164
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0109
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": -0.0092
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": 0.0086
                        }
                      ],
                      "others": -0.0115,
                      "total": 6.7829,
                      "log_link": false,
                      "margin_base": 6.798781,
                      "item_margins": [
                        {
                          "name": "touches_p90",
                          "margin": 0.023537
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.0164
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.010882
                        },
                        {
                          "name": "duelWon_p90",
                          "margin": -0.009153
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": 0.008606
                        }
                      ],
                      "others_margin": -0.011552
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 45,
                  "role_matches": 39,
                  "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.0021, quality 0.575)",
              "stats": {
                "interceptions": 1.0119,
                "tackles": 1.9972,
                "tackles_won": 1.3141,
                "clearances": 2.2991,
                "aerial_won": 0.6669,
                "total_shots": 0.5149,
                "rating": 6.7829,
                "minutes": 86.26,
                "total_pass": 46.1005,
                "accurate_pass": 41.0586,
                "duels_won": 3.0713,
                "total_long_balls": 3.3085,
                "accurate_long_balls": 2.1315,
                "total_own_half_passes": 22.243,
                "accurate_own_half_passes": 20.3302,
                "total_opp_half_passes": 23.8575,
                "accurate_opp_half_passes": 20.7283,
                "crosses_total": 4.2214,
                "crosses_accurate": 0.6497,
                "touches": 71.5918,
                "possession_lost": 12.6877,
                "dispossessed": 0.3007,
                "duels_lost": 2.4672,
                "aerial_lost": 0.34,
                "total_contest": 0.836,
                "won_contest": 0.5117,
                "ball_recovery": 4.8356,
                "challenges_lost": 1.1635,
                "fouls": 0.4172,
                "fouls_drawn": 0.339,
                "blocks": 0.3807,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.1179,
                "assist_rate": 0.1179,
                "expected_goals": 0.0134,
                "expected_assists": 0.1029,
                "shots_on_target": 0.0925,
                "big_chances_created": 0.2432,
                "xgot": 0.0191,
                "ball_carries": 14.3598,
                "total_progression": 34.6335,
                "progressive_carries": 0.6544,
                "key_pass": 1.0622,
                "shots_off_target": 0.4224
              },
              "params": {
                "market_value_eur": 14600000,
                "quality_factor": 0.5748,
                "boost_factor": 1.0021,
                "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.0165)",
              "stats": {
                "interceptions": 1.0119,
                "tackles": 1.9972,
                "tackles_won": 1.3132,
                "clearances": 2.2991,
                "aerial_won": 0.6669,
                "total_shots": 0.5189,
                "rating": 6.7829,
                "minutes": 86.26,
                "total_pass": 46.1005,
                "accurate_pass": 41.0586,
                "duels_won": 3.0713,
                "total_long_balls": 3.3085,
                "accurate_long_balls": 2.1315,
                "total_own_half_passes": 22.243,
                "accurate_own_half_passes": 20.3302,
                "total_opp_half_passes": 23.8575,
                "accurate_opp_half_passes": 20.7283,
                "crosses_total": 4.2474,
                "crosses_accurate": 0.6497,
                "touches": 71.5918,
                "possession_lost": 12.6877,
                "dispossessed": 0.3007,
                "duels_lost": 2.4672,
                "aerial_lost": 0.34,
                "total_contest": 0.836,
                "won_contest": 0.5117,
                "ball_recovery": 4.8356,
                "challenges_lost": 1.1635,
                "fouls": 0.4228,
                "fouls_drawn": 0.3334,
                "blocks": 0.3807,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.116,
                "assist_rate": 0.116,
                "expected_goals": 0.0134,
                "expected_assists": 0.1029,
                "shots_on_target": 0.091,
                "big_chances_created": 0.2432,
                "xgot": 0.0191,
                "ball_carries": 14.3598,
                "total_progression": 34.6335,
                "progressive_carries": 0.6544,
                "key_pass": 1.0622,
                "shots_off_target": 0.4224
              },
              "params": {
                "blend_weight": 0.0165,
                "history_matches": 45,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.9584,
                "prior_reliability": 0.2533,
                "competition": "La Liga",
                "squad": "Real Sociedad"
              },
              "changes": [
                {
                  "stat": "totalCross",
                  "before": 4.2214,
                  "after": 4.2474
                },
                {
                  "stat": "wasFouled",
                  "before": 0.339,
                  "after": 0.3334
                },
                {
                  "stat": "fouls",
                  "before": 0.4172,
                  "after": 0.4228
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 1.0119,
                "tackles": 1.9972,
                "tackles_won": 1.3132,
                "clearances": 2.2991,
                "aerial_won": 0.6669,
                "total_shots": 0.5189,
                "rating": 6.7829,
                "minutes": 86.26,
                "total_pass": 46.1005,
                "accurate_pass": 41.0586,
                "duels_won": 3.0713,
                "total_long_balls": 3.3085,
                "accurate_long_balls": 2.1315,
                "total_own_half_passes": 22.243,
                "accurate_own_half_passes": 20.3302,
                "total_opp_half_passes": 23.8575,
                "accurate_opp_half_passes": 20.7283,
                "crosses_total": 4.2474,
                "crosses_accurate": 0.6497,
                "touches": 71.5918,
                "possession_lost": 12.6877,
                "dispossessed": 0.3007,
                "duels_lost": 2.4672,
                "aerial_lost": 0.34,
                "total_contest": 0.836,
                "won_contest": 0.5117,
                "ball_recovery": 4.8356,
                "challenges_lost": 1.1635,
                "fouls": 0.4228,
                "fouls_drawn": 0.3334,
                "blocks": 0.3807,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.116,
                "assist_rate": 0.116,
                "expected_goals": 0.0134,
                "expected_assists": 0.1029,
                "shots_on_target": 0.091,
                "big_chances_created": 0.2432,
                "xgot": 0.0191,
                "ball_carries": 14.3598,
                "total_progression": 34.6335,
                "progressive_carries": 0.6544,
                "key_pass": 1.0622,
                "shots_off_target": 0.4224
              },
              "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.0119,
                "tackles": 1.9972,
                "tackles_won": 1.3132,
                "clearances": 2.2991,
                "aerial_won": 0.6669,
                "total_shots": 0.5189,
                "rating": 6.7829,
                "minutes": 86.26,
                "total_pass": 46.1005,
                "accurate_pass": 41.0586,
                "duels_won": 3.0713,
                "total_long_balls": 3.3085,
                "accurate_long_balls": 2.1315,
                "total_own_half_passes": 22.243,
                "accurate_own_half_passes": 20.3302,
                "total_opp_half_passes": 23.8575,
                "accurate_opp_half_passes": 20.7283,
                "crosses_total": 4.2474,
                "crosses_accurate": 0.6497,
                "touches": 71.5918,
                "possession_lost": 12.6877,
                "dispossessed": 0.3007,
                "duels_lost": 2.4672,
                "aerial_lost": 0.34,
                "total_contest": 0.836,
                "won_contest": 0.5117,
                "ball_recovery": 4.8356,
                "challenges_lost": 1.1635,
                "fouls": 0.4228,
                "fouls_drawn": 0.3334,
                "blocks": 0.3807,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.116,
                "assist_rate": 0.116,
                "expected_goals": 0.0134,
                "expected_assists": 0.1029,
                "shots_on_target": 0.091,
                "big_chances_created": 0.2432,
                "xgot": 0.0191,
                "ball_carries": 14.3598,
                "total_progression": 34.6335,
                "progressive_carries": 0.6544,
                "key_pass": 1.0622,
                "shots_off_target": 0.4224,
                "opponent_faced": "Maroan Sannadi",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Maroan Sannadi",
                  "matchup_zone": "Shape fallback"
                }
              }
            },
            {
              "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.0119,
                "tackles": 1.9972,
                "tackles_won": 1.3132,
                "clearances": 2.2991,
                "aerial_won": 0.6669,
                "total_shots": 0.5189,
                "rating": 6.7829,
                "minutes": 86.26,
                "total_pass": 46.1005,
                "accurate_pass": 41.0586,
                "duels_won": 3.0713,
                "total_long_balls": 3.3085,
                "accurate_long_balls": 2.1315,
                "total_own_half_passes": 22.243,
                "accurate_own_half_passes": 20.3302,
                "total_opp_half_passes": 23.8575,
                "accurate_opp_half_passes": 20.7283,
                "crosses_total": 4.2474,
                "crosses_accurate": 0.6497,
                "touches": 71.5918,
                "possession_lost": 12.6877,
                "dispossessed": 0.3007,
                "duels_lost": 2.4672,
                "aerial_lost": 0.34,
                "total_contest": 0.836,
                "won_contest": 0.5117,
                "ball_recovery": 4.8356,
                "challenges_lost": 1.1635,
                "fouls": 0.4228,
                "fouls_drawn": 0.3334,
                "blocks": 0.3807,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.116,
                "assists": 0,
                "expected_goals": 0.0134,
                "expected_assists": 0.1029,
                "shots_on_target": 0.091,
                "big_chances_created": 0.2432,
                "xgot": 0.0191,
                "ball_carries": 14.3598,
                "total_progression": 34.6335,
                "progressive_carries": 0.6544,
                "key_pass": 1.0622,
                "shots_off_target": 0.4224,
                "opponent_faced": "Maroan Sannadi",
                "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": 1
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.25 (squad xG sum 1.3010, xG scale 0.9646, xA scale 0.9646, team xA 0.85 = 0.67 x lambda)",
              "stats": {
                "interceptions": 1.0119,
                "tackles": 1.9972,
                "tackles_won": 1.3132,
                "clearances": 2.2991,
                "aerial_won": 0.6669,
                "total_shots": 0.5189,
                "rating": 6.7829,
                "minutes": 86.26,
                "total_pass": 46.1005,
                "accurate_pass": 41.0586,
                "duels_won": 3.0713,
                "total_long_balls": 3.3085,
                "accurate_long_balls": 2.1315,
                "total_own_half_passes": 22.243,
                "accurate_own_half_passes": 20.3302,
                "total_opp_half_passes": 23.8575,
                "accurate_opp_half_passes": 20.7283,
                "crosses_total": 4.2474,
                "crosses_accurate": 0.6497,
                "touches": 71.5918,
                "possession_lost": 12.6877,
                "dispossessed": 0.3007,
                "duels_lost": 2.4672,
                "aerial_lost": 0.34,
                "total_contest": 0.836,
                "won_contest": 0.5117,
                "ball_recovery": 4.8356,
                "challenges_lost": 1.1635,
                "fouls": 0.4228,
                "fouls_drawn": 0.3334,
                "blocks": 0.3807,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.116,
                "assists": 0,
                "expected_goals": 0.0129,
                "expected_assists": 0.0993,
                "shots_on_target": 0.091,
                "big_chances_created": 0.2432,
                "xgot": 0.0184,
                "ball_carries": 14.3598,
                "total_progression": 34.6335,
                "progressive_carries": 0.6544,
                "key_pass": 1.0622,
                "shots_off_target": 0.4224,
                "opponent_faced": "Maroan Sannadi",
                "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": 1.0857
              },
              "params": {
                "team_lambda": 1.255,
                "squad_xg_sum": 1.301,
                "squad_xa_sum": 0.8767,
                "team_expected_assists": 0.8457,
                "team_xa_to_xg_ratio": 0.6739,
                "bench_appearance_weighted": true,
                "xg_scale": 0.9646,
                "xa_scale": 0.9646,
                "opponent_lambda": 1.729,
                "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 78.0)",
              "stats": {
                "interceptions": 1.0119,
                "tackles": 1.9972,
                "tackles_won": 1.3132,
                "clearances": 2.2991,
                "aerial_won": 0.6669,
                "total_shots": 0.5189,
                "rating": 6.7829,
                "minutes": 86.26,
                "total_pass": 46.1005,
                "accurate_pass": 41.0586,
                "duels_won": 3.0713,
                "total_long_balls": 3.3085,
                "accurate_long_balls": 2.1315,
                "total_own_half_passes": 22.243,
                "accurate_own_half_passes": 20.3302,
                "total_opp_half_passes": 23.8575,
                "accurate_opp_half_passes": 20.7283,
                "crosses_total": 4.2474,
                "crosses_accurate": 0.6497,
                "touches": 71.5918,
                "possession_lost": 12.6877,
                "dispossessed": 0.3007,
                "duels_lost": 2.4672,
                "aerial_lost": 0.34,
                "total_contest": 0.836,
                "won_contest": 0.5117,
                "ball_recovery": 4.8356,
                "challenges_lost": 1.1635,
                "fouls": 0.4228,
                "fouls_drawn": 0.3334,
                "blocks": 0.3807,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.116,
                "assists": 0,
                "expected_goals": 0.0129,
                "expected_assists": 0.0993,
                "shots_on_target": 0.091,
                "big_chances_created": 0.2432,
                "xgot": 0.0184,
                "ball_carries": 14.3598,
                "total_progression": 34.6335,
                "progressive_carries": 0.6544,
                "key_pass": 1.0622,
                "shots_off_target": 0.4224,
                "opponent_faced": "Maroan Sannadi",
                "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": 1.0857,
                "fifa_overall": 78.0
              },
              "params": {
                "match_squad_rank": 12,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 2458,
                "fifa_rank": 1239.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": {
                "interceptions": 1.0119,
                "tackles": 1.9972,
                "tackles_won": 1.3132,
                "clearances": 2.2991,
                "aerial_won": 0.6669,
                "total_shots": 0.5189,
                "rating": 6.7829,
                "minutes": 86.26,
                "total_pass": 46.1005,
                "accurate_pass": 41.0586,
                "duels_won": 3.0713,
                "total_long_balls": 3.3085,
                "accurate_long_balls": 2.1315,
                "total_own_half_passes": 22.243,
                "accurate_own_half_passes": 20.3302,
                "total_opp_half_passes": 23.8575,
                "accurate_opp_half_passes": 20.7283,
                "crosses_total": 4.2474,
                "crosses_accurate": 0.6497,
                "touches": 71.5918,
                "possession_lost": 12.6877,
                "dispossessed": 0.3007,
                "duels_lost": 2.4672,
                "aerial_lost": 0.34,
                "total_contest": 0.836,
                "won_contest": 0.5117,
                "ball_recovery": 4.8356,
                "challenges_lost": 1.1635,
                "fouls": 0.4228,
                "fouls_drawn": 0.3334,
                "blocks": 0.3807,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.116,
                "assists": 0,
                "expected_goals": 0.0129,
                "expected_assists": 0.0993,
                "shots_on_target": 0.091,
                "big_chances_created": 0.2432,
                "xgot": 0.0184,
                "ball_carries": 14.3598,
                "total_progression": 34.6335,
                "progressive_carries": 0.6544,
                "key_pass": 1.0622,
                "shots_off_target": 0.4224,
                "opponent_faced": "Maroan Sannadi",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0128,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 1.0857,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0128,
                "goal_rate": 0.0,
                "scorer_weight": 0.0103,
                "squad_weight_total": 1.3959,
                "weight_share": 0.0074,
                "finishing_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 14,
                "eligible_players": 14,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Mikel Oyarzabal",
                    "weight": 0.3544,
                    "already": 0,
                    "effective_weight": 0.3544,
                    "runner_up": "Gonçalo Guedes",
                    "runner_up_effective_weight": 0.2684
                  }
                ]
              }
            },
            {
              "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.0119,
                "tackles": 1.9972,
                "tackles_won": 1.3132,
                "clearances": 2.2991,
                "aerial_won": 0.6669,
                "total_shots": 0.5189,
                "rating": 6.7829,
                "minutes": 86.26,
                "total_pass": 46.1005,
                "accurate_pass": 41.0586,
                "duels_won": 3.0713,
                "total_long_balls": 3.3085,
                "accurate_long_balls": 2.1315,
                "total_own_half_passes": 22.243,
                "accurate_own_half_passes": 20.3302,
                "total_opp_half_passes": 23.8575,
                "accurate_opp_half_passes": 20.7283,
                "crosses_total": 4.2474,
                "crosses_accurate": 0.6497,
                "touches": 71.5918,
                "possession_lost": 12.6877,
                "dispossessed": 0.3007,
                "duels_lost": 2.4672,
                "aerial_lost": 0.34,
                "total_contest": 0.836,
                "won_contest": 0.5117,
                "ball_recovery": 4.8356,
                "challenges_lost": 1.1635,
                "fouls": 0.4228,
                "fouls_drawn": 0.3334,
                "blocks": 0.3807,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.116,
                "assists": 0,
                "expected_goals": 0.0129,
                "expected_assists": 0.0993,
                "shots_on_target": 0.091,
                "big_chances_created": 0.2432,
                "xgot": 0.0184,
                "ball_carries": 14.3598,
                "total_progression": 34.6335,
                "progressive_carries": 0.6544,
                "key_pass": 1.0622,
                "shots_off_target": 0.4224,
                "opponent_faced": "Maroan Sannadi",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0128,
                "projected_assists": 0,
                "assist_probability": 0.0945,
                "finishing_factor": 0.8,
                "creation_factor": 1.0857,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0945,
                "assist_rate": 0.116,
                "provider_weight": 0.1078,
                "squad_weight_total": 0.8785,
                "weight_share": 0.1227,
                "creation_factor": 1.0857,
                "appearance_weight": 1.0,
                "weight_rank": 5,
                "eligible_players": 14,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Gonçalo Guedes",
                    "weight": 0.1642,
                    "already": 0,
                    "effective_weight": 0.1642,
                    "runner_up": "Carlos Soler",
                    "runner_up_effective_weight": 0.1308,
                    "blocked_own_goal": [
                      "Mikel Oyarzabal"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Beñat Turrientes": {
          "player_id": 980410,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 8,
          "height": 179,
          "market_value": 10600000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.0729,
            "assist_rate": 0.0667,
            "assists": 0,
            "expected_goals": 0.0668,
            "goal_rate": 0.0785,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "rating": 6.9354,
            "minutes": 78,
            "total_pass": 45,
            "accurate_pass": 41,
            "duels_won": 4,
            "total_long_balls": 2,
            "accurate_long_balls": 1,
            "total_own_half_passes": 21,
            "accurate_own_half_passes": 19,
            "total_opp_half_passes": 24,
            "accurate_opp_half_passes": 21,
            "crosses_total": 1,
            "crosses_accurate": 0,
            "touches": 56,
            "possession_lost": 6.6959,
            "dispossessed": 0.6606,
            "duels_lost": 3,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 1,
            "tackles": 2,
            "clearances": 2,
            "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.1731,
            "ball_carries": 18,
            "total_progression": 48,
            "progressive_carries": 1,
            "shots_off_target": 1,
            "duel_xg_multiplier": 0.8987,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.6,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.351,
            "pressing_faced": "MEDIUM",
            "matchup_zone": "CDM vs CDM",
            "numerical_situation": "1v1",
            "opponent_defenders": "Mikel Jauregizar",
            "opponent_faced": "Mikel Jauregizar",
            "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.0646,
            "projected_assists": 0,
            "assist_probability": 0.0703,
            "finishing_factor": 1.0771,
            "creation_factor": 0.9291,
            "fifa_overall": 81.0
          },
          "latest_10_games": [
            {
              "match_id": 16421086.0,
              "match_date": "2026-10-25",
              "home_team": "Real Sociedad",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 71,
                "rating": 7.6,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1754,
                "expected_assists": 0.0887,
                "total_shots": 1,
                "shots_on_target": 1,
                "shots_off_target": 0,
                "total_pass": 44,
                "accurate_pass": 41,
                "key_pass": 1,
                "tackles": 4,
                "tackles_won": 0,
                "interceptions": 0,
                "clearances": 1,
                "aerial_won": 0,
                "duels_won": 6,
                "ball_recovery": 0,
                "saves": 0
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416340.0,
              "match_date": "2026-09-03",
              "home_team": "Real Sociedad",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 88,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0631,
                "expected_assists": 0.0374,
                "total_shots": 2,
                "shots_on_target": 2,
                "total_pass": 48,
                "accurate_pass": 42,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 3,
                "duels_won": 3,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416310.0,
              "match_date": "2026-08-29",
              "home_team": "Real Sociedad",
              "away_team": "Espanyol",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 62,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0226,
                "expected_assists": 0.0371,
                "total_shots": 1,
                "total_pass": 38,
                "accurate_pass": 34,
                "key_pass": 1,
                "tackles": 3,
                "tackles_won": 2,
                "clearances": 1,
                "duels_won": 4,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421051.0,
              "match_date": "2026-08-26",
              "home_team": "Real Madrid",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.016,
                "expected_assists": 0.0533,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 73,
                "accurate_pass": 72,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 4,
                "duels_won": 2,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416293.0,
              "match_date": "2026-08-21",
              "home_team": "Real Betis",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 18,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0139,
                "total_shots": 0,
                "total_pass": 26,
                "accurate_pass": 23,
                "key_pass": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083719.0,
              "match_date": "2026-05-23",
              "home_team": "Espanyol",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0484,
                "expected_assists": 0.1548,
                "total_shots": 1,
                "total_pass": 45,
                "accurate_pass": 40,
                "key_pass": 1,
                "tackles": 1,
                "interceptions": 1,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083687.0,
              "match_date": "2026-05-17",
              "home_team": "Real Sociedad",
              "away_team": "Valencia",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Valencia",
              "stats": {
                "minutes": 90,
                "rating": 6.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0151,
                "total_shots": 0,
                "total_pass": 46,
                "accurate_pass": 43,
                "tackles": 2,
                "interceptions": 1,
                "clearances": 2,
                "aerial_won": 2,
                "duels_won": 6,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083624.0,
              "match_date": "2026-05-14",
              "home_team": "Girona FC",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Girona FC",
              "stats": {
                "minutes": 9,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083526.0,
              "match_date": "2026-05-04",
              "home_team": "Sevilla",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 69,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0087,
                "total_shots": 0,
                "total_pass": 40,
                "accurate_pass": 35,
                "clearances": 1,
                "duels_won": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083239.0,
              "match_date": "2026-04-26",
              "home_team": "Rayo Vallecano",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 67,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0585,
                "expected_assists": 0.0135,
                "total_shots": 1,
                "total_pass": 27,
                "accurate_pass": 23,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "duels_won": 6,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 976,
            "combined_rank_score": 481.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 445.0,
            "sofascore_rating": 6.9,
            "sofascore_appearances": 4.0,
            "fifa_rank": 517.0,
            "fifa_overall": 81.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 7,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.9354,
            "source_file": "data/player_rankings.csv",
            "player_name": "Beñat Turrientes",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Agustín Giay",
                  "ranking": 971
                },
                {
                  "player_name": "Jin-woo Jo",
                  "ranking": 972
                },
                {
                  "player_name": "Zach Muscat",
                  "ranking": 973
                },
                {
                  "player_name": "Odil Abdumazhidov",
                  "ranking": 974
                },
                {
                  "player_name": "Otabek Boymurodov",
                  "ranking": 975
                }
              ],
              "lower": [
                {
                  "player_name": "José Aldo",
                  "ranking": 977
                },
                {
                  "player_name": "Matheus Henrique",
                  "ranking": 978
                },
                {
                  "player_name": "Azizkhon Isokov",
                  "ranking": 979
                },
                {
                  "player_name": "Esteban Páez",
                  "ranking": 980
                },
                {
                  "player_name": "Krzysztof Piątek",
                  "ranking": 981
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.779,
          "history_matches": 32,
          "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": 32,
            "data_confidence": 0.779,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.001,
            "fbref_prior_metrics": {
              "squad": "Real Sociedad",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 4.0,
              "starts": 3.0,
              "minutes": 257.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 1.4,
              "shots_on_target_pct": 75.0,
              "prior_reliability": 0.1933
            },
            "rationale": "XGBoost regressor (M_service) evaluated 32 historical appearances across 8 target models; FBref 2026-2027 prior blended (La Liga, Real Sociedad, rel: 0.19, 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.9696,
                "expected_assists": 0.0755,
                "assists": 0.0678,
                "assist_rate": 0.0678,
                "expected_goals": 0.077,
                "goals": 0.0887,
                "goal_rate": 0.0887,
                "shots_on_target": 0.373,
                "total_shots": 1.0594,
                "rating": 6.9354,
                "minutes": 77.56,
                "total_pass": 44.8557,
                "accurate_pass": 40.575,
                "duels_won": 4.0511,
                "total_long_balls": 1.6233,
                "accurate_long_balls": 0.9373,
                "total_own_half_passes": 20.8684,
                "accurate_own_half_passes": 19.3549,
                "total_opp_half_passes": 23.9872,
                "accurate_opp_half_passes": 21.2199,
                "crosses_total": 0.5532,
                "crosses_accurate": 0.1866,
                "touches": 55.9137,
                "possession_lost": 6.6892,
                "dispossessed": 0.6599,
                "duels_lost": 2.6894,
                "aerial_won": 0.2812,
                "aerial_lost": 0.4526,
                "interceptions": 0.4346,
                "tackles_won": 0.812,
                "tackles": 2.157,
                "clearances": 1.6557,
                "total_contest": 0.9039,
                "won_contest": 0.6977,
                "challenges_lost": 0.7772,
                "fouls": 0.6627,
                "fouls_drawn": 0.9153,
                "blocks": 0.2471,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.1994,
                "ball_carries": 17.9647,
                "total_progression": 47.5794,
                "progressive_carries": 0.658,
                "shots_off_target": 0.6864
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 7,
                  "trained_at": "2026-11-01T11:27:07.750726+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 905,
                    "rows": 25067
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-25",
                    "opponent": "Levante UD",
                    "minutes": 71.0,
                    "is_starting": true,
                    "weight": 0.1508,
                    "rating": 7.6
                  },
                  {
                    "match_date": "2026-09-03",
                    "opponent": "Celta Vigo",
                    "minutes": 88.0,
                    "is_starting": true,
                    "weight": 0.1282,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-08-29",
                    "opponent": "Espanyol",
                    "minutes": 62.0,
                    "is_starting": true,
                    "weight": 0.109,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-26",
                    "opponent": "Real Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0926,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-08-21",
                    "opponent": "Real Betis",
                    "minutes": 18.0,
                    "is_starting": false,
                    "weight": 0.0787,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-05-23",
                    "opponent": "Espanyol",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0669,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-05-17",
                    "opponent": "Valencia",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0569,
                    "rating": 6.1
                  },
                  {
                    "match_date": "2026-05-14",
                    "opponent": "Girona FC",
                    "minutes": 9.0,
                    "is_starting": false,
                    "weight": 0.0484,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-05-04",
                    "opponent": "Sevilla",
                    "minutes": 69.0,
                    "is_starting": true,
                    "weight": 0.0411,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-04-26",
                    "opponent": "Rayo Vallecano",
                    "minutes": 67.0,
                    "is_starting": true,
                    "weight": 0.0349,
                    "rating": 6.8
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 1.0,
                  "totalShots": 0.8621,
                  "creative_index": 0.3353,
                  "expectedGoals": 0.0484,
                  "expectedAssists": 0.0458,
                  "keyPass": 0.7695
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.969636857509613,
                    "model_output": 0.9696,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1578
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1373
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0712
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0516
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0289
                      }
                    ],
                    "decomposition": {
                      "base": 0.8902,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1352
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0795
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0618
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.037
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0342
                        }
                      ],
                      "others": 0.0827,
                      "total": 0.9696,
                      "log_link": true,
                      "margin_base": -0.116298,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.141373
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.08069
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.06758
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.041052
                        },
                        {
                          "name": "cross_creative_contribution",
                          "margin": -0.037806
                        }
                      ],
                      "others_margin": 0.089116
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.07551924139261246,
                    "model_output": 0.0755,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1181
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.1136
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.1034
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0572
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0473
                      }
                    ],
                    "decomposition": {
                      "base": 0.0847,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0125
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.011
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0071
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0048
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.003
                        }
                      ],
                      "others": 0.0012,
                      "total": 0.0755,
                      "log_link": true,
                      "margin_base": -2.468924,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": -0.159653
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.142178
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.089057
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.064455
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.040715
                        }
                      ],
                      "others_margin": 0.01583
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.0678354874253273,
                    "model_output": 0.0678,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0627
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0445
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0417
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0324
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0293
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0088
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0087
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0066
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0034
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0027
                        }
                      ],
                      "others": -0.0047,
                      "total": 0.0678,
                      "log_link": true,
                      "margin_base": -2.463472,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.098016
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.097227
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.080216
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.044291
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.036841
                        }
                      ],
                      "others_margin": -0.066638
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.07701624929904938,
                    "model_output": 0.077,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedGoals",
                        "importance": 0.1255
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0756
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0438
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0265
                      }
                    ],
                    "decomposition": {
                      "base": 0.0918,
                      "items": [
                        {
                          "name": "expectedGoals",
                          "contribution": -0.013
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0113
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.0052
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": 0.0038
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0033
                        }
                      ],
                      "others": -0.0188,
                      "total": 0.077,
                      "log_link": true,
                      "margin_base": -2.387963,
                      "item_margins": [
                        {
                          "name": "expectedGoals",
                          "margin": -0.152091
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.134178
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": 0.055844
                        },
                        {
                          "name": "interceptionWon",
                          "margin": 0.038915
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.033853
                        }
                      ],
                      "others_margin": -0.218768
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.08867175132036209,
                    "model_output": 0.0887,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0923
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.067
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.041
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0334
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.0946,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.012
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0103
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": 0.0091
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.006
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.0057
                        }
                      ],
                      "others": -0.013,
                      "total": 0.0887,
                      "log_link": true,
                      "margin_base": -2.358385,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.135233
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.117318
                        },
                        {
                          "name": "interceptionWon",
                          "margin": 0.093185
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.060477
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": 0.057955
                        }
                      ],
                      "others_margin": -0.137175
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.37298712134361267,
                    "model_output": 0.373,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.117
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0884
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0772
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0315
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0258
                      }
                    ],
                    "decomposition": {
                      "base": 0.3179,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0494
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": 0.027
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0231
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0223
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0105
                        }
                      ],
                      "others": -0.0116,
                      "total": 0.373,
                      "log_link": true,
                      "margin_base": -1.146086,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.144418
                        },
                        {
                          "name": "interceptionWon",
                          "margin": 0.070909
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.056858
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.05493
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.026962
                        }
                      ],
                      "others_margin": -0.030417
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.0594226121902466,
                    "model_output": 1.0594,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1349
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1208
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0462
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.044
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0312
                      }
                    ],
                    "decomposition": {
                      "base": 0.9849,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.163
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.0479
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0474
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": 0.031
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0309
                        }
                      ],
                      "others": -0.0891,
                      "total": 1.0594,
                      "log_link": false,
                      "margin_base": 0.984935,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.162979
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": 0.047937
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.047378
                        },
                        {
                          "name": "interceptionWon",
                          "margin": 0.030999
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.030869
                        }
                      ],
                      "others_margin": -0.08918
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.935445308685303,
                    "model_output": 6.9354,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "rating",
                        "importance": 0.0864
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0749
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0486
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0482
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 6.8574,
                      "items": [
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0908
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0332
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0183
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0161
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0128
                        }
                      ],
                      "others": -0.031,
                      "total": 6.9354,
                      "log_link": false,
                      "margin_base": 6.857404,
                      "item_margins": [
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.09079
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.033241
                        },
                        {
                          "name": "rating",
                          "margin": -0.018299
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.016096
                        },
                        {
                          "name": "accuratePass",
                          "margin": -0.012844
                        }
                      ],
                      "others_margin": -0.030943
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 32,
                  "role_matches": 20,
                  "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.0010, quality 0.529)",
              "stats": {
                "key_pass": 0.9706,
                "expected_assists": 0.0756,
                "assists": 0.0679,
                "assist_rate": 0.0679,
                "expected_goals": 0.0771,
                "goals": 0.0888,
                "goal_rate": 0.0888,
                "shots_on_target": 0.3734,
                "total_shots": 1.0605,
                "rating": 6.9354,
                "minutes": 77.56,
                "total_pass": 44.9006,
                "accurate_pass": 40.6156,
                "duels_won": 4.0552,
                "total_long_balls": 1.6249,
                "accurate_long_balls": 0.9382,
                "total_own_half_passes": 20.8893,
                "accurate_own_half_passes": 19.3743,
                "total_opp_half_passes": 24.0112,
                "accurate_opp_half_passes": 21.2411,
                "crosses_total": 0.5538,
                "crosses_accurate": 0.1868,
                "touches": 55.9696,
                "possession_lost": 6.6959,
                "dispossessed": 0.6606,
                "duels_lost": 2.6921,
                "aerial_won": 0.2815,
                "aerial_lost": 0.4531,
                "interceptions": 0.435,
                "tackles_won": 0.8128,
                "tackles": 2.1592,
                "clearances": 1.6574,
                "total_contest": 0.9048,
                "won_contest": 0.6984,
                "challenges_lost": 0.778,
                "fouls": 0.6634,
                "fouls_drawn": 0.9162,
                "blocks": 0.2473,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.1996,
                "ball_carries": 17.9827,
                "total_progression": 47.627,
                "progressive_carries": 0.6587,
                "shots_off_target": 0.6871
              },
              "params": {
                "market_value_eur": 10600000,
                "quality_factor": 0.5295,
                "boost_factor": 1.001,
                "reference_quality": 0.505,
                "history_matches": 32,
                "history_shrink": 0.1351,
                "market_value_known": true
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0170)",
              "stats": {
                "key_pass": 0.9706,
                "expected_assists": 0.0756,
                "assists": 0.0667,
                "assist_rate": 0.0667,
                "expected_goals": 0.0771,
                "goals": 0.0873,
                "goal_rate": 0.0873,
                "shots_on_target": 0.3824,
                "total_shots": 1.063,
                "rating": 6.9354,
                "minutes": 77.56,
                "total_pass": 44.9006,
                "accurate_pass": 40.6156,
                "duels_won": 4.0552,
                "total_long_balls": 1.6249,
                "accurate_long_balls": 0.9382,
                "total_own_half_passes": 20.8893,
                "accurate_own_half_passes": 19.3743,
                "total_opp_half_passes": 24.0112,
                "accurate_opp_half_passes": 21.2411,
                "crosses_total": 0.5545,
                "crosses_accurate": 0.1868,
                "touches": 55.9696,
                "possession_lost": 6.6959,
                "dispossessed": 0.6606,
                "duels_lost": 2.6921,
                "aerial_won": 0.2815,
                "aerial_lost": 0.4531,
                "interceptions": 0.4276,
                "tackles_won": 0.8192,
                "tackles": 2.1592,
                "clearances": 1.6574,
                "total_contest": 0.9048,
                "won_contest": 0.6984,
                "challenges_lost": 0.778,
                "fouls": 0.6521,
                "fouls_drawn": 0.9057,
                "blocks": 0.2473,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.1996,
                "ball_carries": 17.9827,
                "total_progression": 47.627,
                "progressive_carries": 0.6587,
                "shots_off_target": 0.6871
              },
              "params": {
                "blend_weight": 0.017,
                "history_matches": 32,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.8618,
                "prior_reliability": 0.1933,
                "competition": "La Liga",
                "squad": "Real Sociedad"
              },
              "changes": [
                {
                  "stat": "fouls",
                  "before": 0.6634,
                  "after": 0.6521
                },
                {
                  "stat": "wasFouled",
                  "before": 0.9162,
                  "after": 0.9057
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.3734,
                  "after": 0.3824
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.435,
                  "after": 0.4276
                },
                {
                  "stat": "wonTackle",
                  "before": 0.8128,
                  "after": 0.8192
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0.9706,
                "expected_assists": 0.0756,
                "assists": 0.0667,
                "assist_rate": 0.0667,
                "expected_goals": 0.0771,
                "goals": 0.0873,
                "goal_rate": 0.0873,
                "shots_on_target": 0.3824,
                "total_shots": 1.0695,
                "rating": 6.9354,
                "minutes": 77.56,
                "total_pass": 44.9006,
                "accurate_pass": 40.6156,
                "duels_won": 4.0552,
                "total_long_balls": 1.6249,
                "accurate_long_balls": 0.9382,
                "total_own_half_passes": 20.8893,
                "accurate_own_half_passes": 19.3743,
                "total_opp_half_passes": 24.0112,
                "accurate_opp_half_passes": 21.2411,
                "crosses_total": 0.5545,
                "crosses_accurate": 0.1868,
                "touches": 55.9696,
                "possession_lost": 6.6959,
                "dispossessed": 0.6606,
                "duels_lost": 2.6921,
                "aerial_won": 0.2815,
                "aerial_lost": 0.4531,
                "interceptions": 0.4276,
                "tackles_won": 0.8192,
                "tackles": 2.1592,
                "clearances": 1.6574,
                "total_contest": 0.9048,
                "won_contest": 0.6984,
                "challenges_lost": 0.778,
                "fouls": 0.6521,
                "fouls_drawn": 0.9057,
                "blocks": 0.2473,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.1996,
                "ball_carries": 17.9827,
                "total_progression": 47.627,
                "progressive_carries": 0.6587,
                "shots_off_target": 0.6871
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": true
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "key_pass": 0.9706,
                "expected_assists": 0.0756,
                "assists": 0.0667,
                "assist_rate": 0.0667,
                "expected_goals": 0.0693,
                "goals": 0.0785,
                "goal_rate": 0.0785,
                "shots_on_target": 0.3437,
                "total_shots": 0.9612,
                "rating": 6.9354,
                "minutes": 77.56,
                "total_pass": 44.9006,
                "accurate_pass": 40.6156,
                "duels_won": 4.0552,
                "total_long_balls": 1.6249,
                "accurate_long_balls": 0.9382,
                "total_own_half_passes": 20.8893,
                "accurate_own_half_passes": 19.3743,
                "total_opp_half_passes": 24.0112,
                "accurate_opp_half_passes": 21.2411,
                "crosses_total": 0.5545,
                "crosses_accurate": 0.1868,
                "touches": 55.9696,
                "possession_lost": 6.6959,
                "dispossessed": 0.6606,
                "duels_lost": 2.6921,
                "aerial_won": 1.0,
                "aerial_lost": 0.4531,
                "interceptions": 0.4276,
                "tackles_won": 0.8192,
                "tackles": 2.1592,
                "clearances": 1.6574,
                "total_contest": 0.9048,
                "won_contest": 0.6984,
                "challenges_lost": 0.778,
                "fouls": 0.6521,
                "fouls_drawn": 0.9057,
                "blocks": 0.2473,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.1794,
                "ball_carries": 17.9827,
                "total_progression": 47.627,
                "progressive_carries": 0.6587,
                "shots_off_target": 0.6175,
                "duel_xg_multiplier": 0.8987,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.6,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.351,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "CDM vs CDM",
                "numerical_situation": "1v1",
                "opponent_defenders": "Mikel Jauregizar",
                "opponent_faced": "Mikel Jauregizar",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Mikel Jauregizar",
                  "matchup_zone": "CDM vs CDM",
                  "duel_win_rate": 0.351,
                  "pressing_faced": "MEDIUM",
                  "numerical_situation": "1v1",
                  "xg_multiplier": 0.8987,
                  "skill_edge": -0.0769,
                  "height_edge": 0.008,
                  "attacker_skill": 0.551,
                  "defender_skill": 0.7219,
                  "attacker_role": "CDM",
                  "attacker_mv_price_index": 0.85,
                  "defender_adjusted_parts": [
                    {
                      "player": "Mikel Jauregizar",
                      "market_value": 26000000,
                      "role": "CDM",
                      "price_index": 0.85,
                      "adjusted_quality": 0.7219
                    }
                  ],
                  "xg_override": 0.0693
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.2815,
                  "after": 1.0
                },
                {
                  "stat": "totalShots",
                  "before": 1.0695,
                  "after": 0.9612
                },
                {
                  "stat": "shotOffTarget",
                  "before": 0.6871,
                  "after": 0.6175
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.3824,
                  "after": 0.3437
                },
                {
                  "stat": "expectedGoalsOnTarget",
                  "before": 0.1996,
                  "after": 0.1794
                },
                {
                  "stat": "goals",
                  "before": 0.0873,
                  "after": 0.0785
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.0771,
                  "after": 0.0693
                }
              ]
            },
            {
              "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.9706,
                "expected_assists": 0.0756,
                "assist_rate": 0.0667,
                "assists": 0,
                "expected_goals": 0.0693,
                "goal_rate": 0.0785,
                "goals": 0,
                "shots_on_target": 0.3437,
                "total_shots": 0.9612,
                "rating": 6.9354,
                "minutes": 77.56,
                "total_pass": 44.9006,
                "accurate_pass": 40.6156,
                "duels_won": 4.0552,
                "total_long_balls": 1.6249,
                "accurate_long_balls": 0.9382,
                "total_own_half_passes": 20.8893,
                "accurate_own_half_passes": 19.3743,
                "total_opp_half_passes": 24.0112,
                "accurate_opp_half_passes": 21.2411,
                "crosses_total": 0.5545,
                "crosses_accurate": 0.1868,
                "touches": 55.9696,
                "possession_lost": 6.6959,
                "dispossessed": 0.6606,
                "duels_lost": 2.6921,
                "aerial_won": 1.0,
                "aerial_lost": 0.4531,
                "interceptions": 0.4276,
                "tackles_won": 0.8192,
                "tackles": 2.1592,
                "clearances": 1.6574,
                "total_contest": 0.9048,
                "won_contest": 0.6984,
                "challenges_lost": 0.778,
                "fouls": 0.6521,
                "fouls_drawn": 0.9057,
                "blocks": 0.2473,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.1794,
                "ball_carries": 17.9827,
                "total_progression": 47.627,
                "progressive_carries": 0.6587,
                "shots_off_target": 0.6175,
                "duel_xg_multiplier": 0.8987,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.6,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.351,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "CDM vs CDM",
                "numerical_situation": "1v1",
                "opponent_defenders": "Mikel Jauregizar",
                "opponent_faced": "Mikel Jauregizar",
                "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": 1
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.25 (squad xG sum 1.3010, xG scale 0.9646, xA scale 0.9646, team xA 0.85 = 0.67 x lambda)",
              "stats": {
                "key_pass": 0.9706,
                "expected_assists": 0.0729,
                "assist_rate": 0.0667,
                "assists": 0,
                "expected_goals": 0.0668,
                "goal_rate": 0.0785,
                "goals": 0,
                "shots_on_target": 0.3437,
                "total_shots": 0.9612,
                "rating": 6.9354,
                "minutes": 77.56,
                "total_pass": 44.9006,
                "accurate_pass": 40.6156,
                "duels_won": 4.0552,
                "total_long_balls": 1.6249,
                "accurate_long_balls": 0.9382,
                "total_own_half_passes": 20.8893,
                "accurate_own_half_passes": 19.3743,
                "total_opp_half_passes": 24.0112,
                "accurate_opp_half_passes": 21.2411,
                "crosses_total": 0.5545,
                "crosses_accurate": 0.1868,
                "touches": 55.9696,
                "possession_lost": 6.6959,
                "dispossessed": 0.6606,
                "duels_lost": 2.6921,
                "aerial_won": 1.0,
                "aerial_lost": 0.4531,
                "interceptions": 0.4276,
                "tackles_won": 0.8192,
                "tackles": 2.1592,
                "clearances": 1.6574,
                "total_contest": 0.9048,
                "won_contest": 0.6984,
                "challenges_lost": 0.778,
                "fouls": 0.6521,
                "fouls_drawn": 0.9057,
                "blocks": 0.2473,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.1731,
                "ball_carries": 17.9827,
                "total_progression": 47.627,
                "progressive_carries": 0.6587,
                "shots_off_target": 0.6175,
                "duel_xg_multiplier": 0.8987,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.6,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.351,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "CDM vs CDM",
                "numerical_situation": "1v1",
                "opponent_defenders": "Mikel Jauregizar",
                "opponent_faced": "Mikel Jauregizar",
                "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.0771,
                "creation_factor": 0.9291
              },
              "params": {
                "team_lambda": 1.255,
                "squad_xg_sum": 1.301,
                "squad_xa_sum": 0.8767,
                "team_expected_assists": 0.8457,
                "team_xa_to_xg_ratio": 0.6739,
                "bench_appearance_weighted": true,
                "xg_scale": 0.9646,
                "xa_scale": 0.9646,
                "opponent_lambda": 1.729,
                "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 81.0)",
              "stats": {
                "key_pass": 0.9706,
                "expected_assists": 0.0729,
                "assist_rate": 0.0667,
                "assists": 0,
                "expected_goals": 0.0668,
                "goal_rate": 0.0785,
                "goals": 0,
                "shots_on_target": 0.3437,
                "total_shots": 0.9612,
                "rating": 6.9354,
                "minutes": 77.56,
                "total_pass": 44.9006,
                "accurate_pass": 40.6156,
                "duels_won": 4.0552,
                "total_long_balls": 1.6249,
                "accurate_long_balls": 0.9382,
                "total_own_half_passes": 20.8893,
                "accurate_own_half_passes": 19.3743,
                "total_opp_half_passes": 24.0112,
                "accurate_opp_half_passes": 21.2411,
                "crosses_total": 0.5545,
                "crosses_accurate": 0.1868,
                "touches": 55.9696,
                "possession_lost": 6.6959,
                "dispossessed": 0.6606,
                "duels_lost": 2.6921,
                "aerial_won": 1.0,
                "aerial_lost": 0.4531,
                "interceptions": 0.4276,
                "tackles_won": 0.8192,
                "tackles": 2.1592,
                "clearances": 1.6574,
                "total_contest": 0.9048,
                "won_contest": 0.6984,
                "challenges_lost": 0.778,
                "fouls": 0.6521,
                "fouls_drawn": 0.9057,
                "blocks": 0.2473,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.1731,
                "ball_carries": 17.9827,
                "total_progression": 47.627,
                "progressive_carries": 0.6587,
                "shots_off_target": 0.6175,
                "duel_xg_multiplier": 0.8987,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.6,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.351,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "CDM vs CDM",
                "numerical_situation": "1v1",
                "opponent_defenders": "Mikel Jauregizar",
                "opponent_faced": "Mikel Jauregizar",
                "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.0771,
                "creation_factor": 0.9291,
                "fifa_overall": 81.0
              },
              "params": {
                "match_squad_rank": 7,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 976,
                "fifa_rank": 517.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 81.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.9706,
                "expected_assists": 0.0729,
                "assist_rate": 0.0667,
                "assists": 0,
                "expected_goals": 0.0668,
                "goal_rate": 0.0785,
                "goals": 0,
                "shots_on_target": 0.3437,
                "total_shots": 0.9612,
                "rating": 6.9354,
                "minutes": 77.56,
                "total_pass": 44.9006,
                "accurate_pass": 40.6156,
                "duels_won": 4.0552,
                "total_long_balls": 1.6249,
                "accurate_long_balls": 0.9382,
                "total_own_half_passes": 20.8893,
                "accurate_own_half_passes": 19.3743,
                "total_opp_half_passes": 24.0112,
                "accurate_opp_half_passes": 21.2411,
                "crosses_total": 0.5545,
                "crosses_accurate": 0.1868,
                "touches": 55.9696,
                "possession_lost": 6.6959,
                "dispossessed": 0.6606,
                "duels_lost": 2.6921,
                "aerial_won": 1.0,
                "aerial_lost": 0.4531,
                "interceptions": 0.4276,
                "tackles_won": 0.8192,
                "tackles": 2.1592,
                "clearances": 1.6574,
                "total_contest": 0.9048,
                "won_contest": 0.6984,
                "challenges_lost": 0.778,
                "fouls": 0.6521,
                "fouls_drawn": 0.9057,
                "blocks": 0.2473,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.1731,
                "ball_carries": 17.9827,
                "total_progression": 47.627,
                "progressive_carries": 0.6587,
                "shots_off_target": 0.6175,
                "duel_xg_multiplier": 0.8987,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.6,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.351,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "CDM vs CDM",
                "numerical_situation": "1v1",
                "opponent_defenders": "Mikel Jauregizar",
                "opponent_faced": "Mikel Jauregizar",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0646,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0771,
                "creation_factor": 0.9291,
                "fifa_overall": 81.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0646,
                "goal_rate": 0.0785,
                "scorer_weight": 0.072,
                "squad_weight_total": 1.3959,
                "weight_share": 0.0515,
                "finishing_factor": 1.0771,
                "appearance_weight": 1.0,
                "weight_rank": 7,
                "eligible_players": 14,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Mikel Oyarzabal",
                    "weight": 0.3544,
                    "already": 0,
                    "effective_weight": 0.3544,
                    "runner_up": "Gonçalo Guedes",
                    "runner_up_effective_weight": 0.2684
                  }
                ]
              }
            },
            {
              "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.9706,
                "expected_assists": 0.0729,
                "assist_rate": 0.0667,
                "assists": 0,
                "expected_goals": 0.0668,
                "goal_rate": 0.0785,
                "goals": 0,
                "shots_on_target": 0.3437,
                "total_shots": 0.9612,
                "rating": 6.9354,
                "minutes": 77.56,
                "total_pass": 44.9006,
                "accurate_pass": 40.6156,
                "duels_won": 4.0552,
                "total_long_balls": 1.6249,
                "accurate_long_balls": 0.9382,
                "total_own_half_passes": 20.8893,
                "accurate_own_half_passes": 19.3743,
                "total_opp_half_passes": 24.0112,
                "accurate_opp_half_passes": 21.2411,
                "crosses_total": 0.5545,
                "crosses_accurate": 0.1868,
                "touches": 55.9696,
                "possession_lost": 6.6959,
                "dispossessed": 0.6606,
                "duels_lost": 2.6921,
                "aerial_won": 1.0,
                "aerial_lost": 0.4531,
                "interceptions": 0.4276,
                "tackles_won": 0.8192,
                "tackles": 2.1592,
                "clearances": 1.6574,
                "total_contest": 0.9048,
                "won_contest": 0.6984,
                "challenges_lost": 0.778,
                "fouls": 0.6521,
                "fouls_drawn": 0.9057,
                "blocks": 0.2473,
                "big_chances_created": 0.0,
                "big_chances_missed": 0.0,
                "xgot": 0.1731,
                "ball_carries": 17.9827,
                "total_progression": 47.627,
                "progressive_carries": 0.6587,
                "shots_off_target": 0.6175,
                "duel_xg_multiplier": 0.8987,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.6,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.351,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "CDM vs CDM",
                "numerical_situation": "1v1",
                "opponent_defenders": "Mikel Jauregizar",
                "opponent_faced": "Mikel Jauregizar",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0646,
                "projected_assists": 0,
                "assist_probability": 0.0703,
                "finishing_factor": 1.0771,
                "creation_factor": 0.9291,
                "fifa_overall": 81.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0703,
                "assist_rate": 0.0667,
                "provider_weight": 0.0677,
                "squad_weight_total": 0.8785,
                "weight_share": 0.0771,
                "creation_factor": 0.9291,
                "appearance_weight": 1.0,
                "weight_rank": 6,
                "eligible_players": 14,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Gonçalo Guedes",
                    "weight": 0.1642,
                    "already": 0,
                    "effective_weight": 0.1642,
                    "runner_up": "Carlos Soler",
                    "runner_up_effective_weight": 0.1308,
                    "blocked_own_goal": [
                      "Mikel Oyarzabal"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Jon Gorrotxategi": {
          "player_id": 1216309,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 4,
          "height": 177,
          "market_value": 27000000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.0348,
            "assist_rate": 0.0453,
            "assists": 0,
            "expected_goals": 0.0314,
            "goal_rate": 0.0454,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 0,
            "rating": 6.9271,
            "minutes": 78,
            "total_pass": 56,
            "accurate_pass": 51,
            "duels_won": 4,
            "total_long_balls": 2,
            "accurate_long_balls": 1,
            "total_own_half_passes": 30,
            "accurate_own_half_passes": 28,
            "total_opp_half_passes": 27,
            "accurate_opp_half_passes": 23,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 69,
            "possession_lost": 7.5174,
            "dispossessed": 0.9746,
            "duels_lost": 4,
            "aerial_won": 1,
            "aerial_lost": 1,
            "interceptions": 2,
            "tackles_won": 1,
            "tackles": 2,
            "clearances": 1,
            "total_contest": 1,
            "won_contest": 0,
            "challenges_lost": 1,
            "fouls": 1,
            "fouls_drawn": 1,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0043,
            "ball_carries": 19,
            "total_progression": 45,
            "progressive_carries": 0,
            "shots_off_target": 0,
            "duel_xg_multiplier": 1.0056,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.7,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.424,
            "pressing_faced": "MEDIUM",
            "matchup_zone": "CDM vs CDM",
            "numerical_situation": "1v1",
            "opponent_defenders": "Mikel Jauregizar",
            "opponent_faced": "Mikel Jauregizar",
            "antagonist_source": "attacking_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.0309,
            "projected_assists": 0,
            "assist_probability": 0.0342,
            "finishing_factor": 1.1564,
            "creation_factor": 1.1069,
            "fifa_overall": 79.0
          },
          "latest_10_games": [
            {
              "match_id": 16421086.0,
              "match_date": "2026-10-25",
              "home_team": "Real Sociedad",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 90,
                "rating": 7.2,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0323,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "total_pass": 82,
                "accurate_pass": 77,
                "key_pass": 1,
                "tackles": 4,
                "tackles_won": 2,
                "interceptions": 3,
                "clearances": 0,
                "aerial_won": 0,
                "duels_won": 6,
                "ball_recovery": 1,
                "saves": 0
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421073.0,
              "match_date": "2026-10-18",
              "home_team": "Málaga CF",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0408,
                "total_shots": 0,
                "total_pass": 73,
                "accurate_pass": 66,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 3,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416297.0,
              "match_date": "2026-09-20",
              "home_team": "Valencia",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Valencia",
              "stats": {
                "minutes": 69,
                "rating": 7.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0073,
                "total_shots": 0,
                "total_pass": 38,
                "accurate_pass": 35,
                "tackles": 4,
                "tackles_won": 4,
                "interceptions": 4,
                "clearances": 2,
                "aerial_won": 2,
                "duels_won": 7,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416332.0,
              "match_date": "2026-09-13",
              "home_team": "Real Sociedad",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 12,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0078,
                "total_shots": 0,
                "total_pass": 15,
                "accurate_pass": 13,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416319.0,
              "match_date": "2026-09-07",
              "home_team": "Elche",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Elche",
              "stats": {
                "minutes": 20,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0032,
                "total_shots": 0,
                "total_pass": 4,
                "accurate_pass": 3,
                "clearances": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416340.0,
              "match_date": "2026-09-03",
              "home_team": "Real Sociedad",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 29,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0063,
                "total_shots": 0,
                "total_pass": 18,
                "accurate_pass": 17,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416310.0,
              "match_date": "2026-08-29",
              "home_team": "Real Sociedad",
              "away_team": "Espanyol",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0005,
                "total_shots": 0,
                "total_pass": 1,
                "accurate_pass": 1,
                "clearances": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083624.0,
              "match_date": "2026-05-14",
              "home_team": "Girona FC",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Girona FC",
              "stats": {
                "minutes": 57,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0032,
                "total_shots": 0,
                "total_pass": 30,
                "accurate_pass": 27,
                "tackles": 1,
                "interceptions": 1,
                "clearances": 3,
                "duels_won": 3,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083583.0,
              "match_date": "2026-05-09",
              "home_team": "Real Sociedad",
              "away_team": "Real Betis",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0502,
                "expected_assists": 0.0841,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 80,
                "accurate_pass": 77,
                "key_pass": 3,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 1,
                "aerial_won": 2,
                "duels_won": 5,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083526.0,
              "match_date": "2026-05-04",
              "home_team": "Sevilla",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 45,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0377,
                "expected_assists": 0.0007,
                "total_shots": 1,
                "total_pass": 22,
                "accurate_pass": 17,
                "tackles": 2,
                "tackles_won": 1,
                "duels_won": 5,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 1369,
            "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": 2.0,
            "fifa_rank": 848.0,
            "fifa_overall": 79.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 8,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.9271,
            "source_file": "data/player_rankings.csv",
            "player_name": "Jon Gorrotxategi",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Laziz Mirzaev",
                  "ranking": 1364
                },
                {
                  "player_name": "Shamar Nicholson",
                  "ranking": 1365
                },
                {
                  "player_name": "Juan Fernando Quintero",
                  "ranking": 1366
                },
                {
                  "player_name": "Ui-jun Jin",
                  "ranking": 1367
                },
                {
                  "player_name": "Diego Villares",
                  "ranking": 1368
                }
              ],
              "lower": [
                {
                  "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
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.753,
          "history_matches": 37,
          "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": 37,
            "data_confidence": 0.753,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0068,
            "fbref_prior_metrics": {
              "squad": "Real Sociedad",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 0.0,
              "minutes": 31.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.0,
              "prior_reliability": 0.02
            },
            "rationale": "XGBoost regressor (M_service) evaluated 37 historical appearances across 8 target models; FBref 2026-2027 prior blended (La Liga, Real Sociedad, rel: 0.02, 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.51,
                "expected_assists": 0.0358,
                "assists": 0.0451,
                "assist_rate": 0.0451,
                "expected_goals": 0.0321,
                "goals": 0.0449,
                "goal_rate": 0.0449,
                "shots_on_target": 0.1114,
                "total_shots": 0.4605,
                "rating": 6.9271,
                "minutes": 78.31,
                "total_pass": 55.7497,
                "accurate_pass": 50.6026,
                "duels_won": 4.4678,
                "total_long_balls": 2.1225,
                "accurate_long_balls": 1.2989,
                "total_own_half_passes": 29.3495,
                "accurate_own_half_passes": 27.4992,
                "total_opp_half_passes": 26.4002,
                "accurate_opp_half_passes": 23.1034,
                "crosses_total": 0.0505,
                "crosses_accurate": 0.0,
                "touches": 68.0616,
                "possession_lost": 7.4666,
                "dispossessed": 0.968,
                "duels_lost": 3.6471,
                "aerial_won": 0.9824,
                "aerial_lost": 0.696,
                "interceptions": 1.817,
                "tackles_won": 1.2389,
                "tackles": 1.9933,
                "clearances": 1.4487,
                "total_contest": 0.785,
                "won_contest": 0.3731,
                "challenges_lost": 0.6316,
                "fouls": 0.9397,
                "fouls_drawn": 1.119,
                "blocks": 0.4842,
                "big_chances_created": 0.0335,
                "big_chances_missed": 0.0,
                "xgot": 0.0045,
                "ball_carries": 19.3682,
                "total_progression": 44.684,
                "progressive_carries": 0.3033,
                "shots_off_target": 0.3491
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 7,
                  "trained_at": "2026-11-01T11:27:07.750726+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 905,
                    "rows": 25067
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-25",
                    "opponent": "Levante UD",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1504,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Málaga CF",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1278,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Valencia",
                    "minutes": 69.0,
                    "is_starting": true,
                    "weight": 0.1086,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Atlético Madrid",
                    "minutes": 12.0,
                    "is_starting": false,
                    "weight": 0.0923,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Elche",
                    "minutes": 20.0,
                    "is_starting": false,
                    "weight": 0.0785,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-03",
                    "opponent": "Celta Vigo",
                    "minutes": 29.0,
                    "is_starting": false,
                    "weight": 0.0667,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-29",
                    "opponent": "Espanyol",
                    "minutes": 1.0,
                    "is_starting": false,
                    "weight": 0.0567,
                    "rating": 0.0
                  },
                  {
                    "match_date": "2026-05-14",
                    "opponent": "Girona FC",
                    "minutes": 57.0,
                    "is_starting": true,
                    "weight": 0.0482,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-05-09",
                    "opponent": "Real Betis",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.041,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-05-04",
                    "opponent": "Sevilla",
                    "minutes": 45.0,
                    "is_starting": true,
                    "weight": 0.0348,
                    "rating": 6.6
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 1.0,
                  "totalShots": 0.115,
                  "creative_index": 0.2156,
                  "expectedGoals": 0.0056,
                  "expectedAssists": 0.0192,
                  "keyPass": 0.5103
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.5100007653236389,
                    "model_output": 0.51,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1578
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1373
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0712
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0516
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0289
                      }
                    ],
                    "decomposition": {
                      "base": 0.8902,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": -0.1286
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0984
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0771
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0749
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0618
                        }
                      ],
                      "others": -0.0892,
                      "total": 0.51,
                      "log_link": true,
                      "margin_base": -0.116298,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": -0.155993
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.138364
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.12355
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.120229
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.098167
                        }
                      ],
                      "others_margin": -0.161199
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.035831429064273834,
                    "model_output": 0.0358,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1181
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.1136
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.1034
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0572
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0473
                      }
                    ],
                    "decomposition": {
                      "base": 0.0847,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0217
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0139
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0065
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0031
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0027
                        }
                      ],
                      "others": -0.0194,
                      "total": 0.0358,
                      "log_link": true,
                      "margin_base": -2.468924,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": -0.295881
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.249716
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.12463
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.056762
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.050951
                        }
                      ],
                      "others_margin": -0.433228
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.04507099464535713,
                    "model_output": 0.0451,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0627
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0445
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0417
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0324
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0293
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "totalCross",
                          "contribution": -0.0088
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.007
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0066
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0048
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": -0.0044
                        }
                      ],
                      "others": -0.0216,
                      "total": 0.0451,
                      "log_link": true,
                      "margin_base": -2.463472,
                      "item_margins": [
                        {
                          "name": "totalCross",
                          "margin": -0.10882
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.096337
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.091065
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.065684
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": -0.06311
                        }
                      ],
                      "others_margin": -0.393158
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.03211602941155434,
                    "model_output": 0.0321,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedGoals",
                        "importance": 0.1255
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0756
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0438
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0265
                      }
                    ],
                    "decomposition": {
                      "base": 0.0918,
                      "items": [
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0354
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0126
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0061
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0043
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0028
                        }
                      ],
                      "others": -0.0107,
                      "total": 0.0321,
                      "log_link": true,
                      "margin_base": -2.387963,
                      "item_margins": [
                        {
                          "name": "expectedGoals",
                          "margin": -0.487333
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.252105
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.129393
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.090887
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.064487
                        }
                      ],
                      "others_margin": -0.285019
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.04491063952445984,
                    "model_output": 0.0449,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0923
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.067
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.041
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0334
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.0946,
                      "items": [
                        {
                          "name": "expectedGoals",
                          "contribution": -0.019
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0148
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0083
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0065
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0036
                        }
                      ],
                      "others": -0.0105,
                      "total": 0.0449,
                      "log_link": true,
                      "margin_base": -2.358385,
                      "item_margins": [
                        {
                          "name": "expectedGoals",
                          "margin": -0.223743
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.218549
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.147472
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.117143
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.063062
                        }
                      ],
                      "others_margin": -0.209012
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.11143851280212402,
                    "model_output": 0.1114,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.117
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0884
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0772
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0315
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0258
                      }
                    ],
                    "decomposition": {
                      "base": 0.3179,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.1041
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0378
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0234
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0211
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0104
                        }
                      ],
                      "others": -0.0519,
                      "total": 0.1114,
                      "log_link": true,
                      "margin_base": -1.146086,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.396909
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.194878
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.142873
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.129346
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": -0.061585
                        }
                      ],
                      "others_margin": -0.381298
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.4605468213558197,
                    "model_output": 0.4605,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1349
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1208
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0462
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.044
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0312
                      }
                    ],
                    "decomposition": {
                      "base": 0.9849,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.3162
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1063
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.057
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0464
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0396
                        }
                      ],
                      "others": -0.1715,
                      "total": 0.4605,
                      "log_link": false,
                      "margin_base": 0.984935,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.316244
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.106304
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.057034
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.046372
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.039606
                        }
                      ],
                      "others_margin": -0.171436
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.927084445953369,
                    "model_output": 6.9271,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "rating",
                        "importance": 0.0864
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0749
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0486
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0482
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 6.8574,
                      "items": [
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0686
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.039
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0236
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0233
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.018
                        }
                      ],
                      "others": -0.0562,
                      "total": 6.9271,
                      "log_link": false,
                      "margin_base": 6.857404,
                      "item_margins": [
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.068621
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.03897
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.023598
                        },
                        {
                          "name": "rating",
                          "margin": -0.023263
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.01804
                        }
                      ],
                      "others_margin": -0.056286
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 37,
                  "role_matches": 29,
                  "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.0068, quality 0.694)",
              "stats": {
                "key_pass": 0.5135,
                "expected_assists": 0.0361,
                "assists": 0.0454,
                "assist_rate": 0.0454,
                "expected_goals": 0.0323,
                "goals": 0.0452,
                "goal_rate": 0.0452,
                "shots_on_target": 0.1122,
                "total_shots": 0.4637,
                "rating": 6.9271,
                "minutes": 78.31,
                "total_pass": 56.1288,
                "accurate_pass": 50.9467,
                "duels_won": 4.4982,
                "total_long_balls": 2.1369,
                "accurate_long_balls": 1.3077,
                "total_own_half_passes": 29.5491,
                "accurate_own_half_passes": 27.6862,
                "total_opp_half_passes": 26.5797,
                "accurate_opp_half_passes": 23.2605,
                "crosses_total": 0.0508,
                "crosses_accurate": 0.0,
                "touches": 68.5244,
                "possession_lost": 7.5174,
                "dispossessed": 0.9746,
                "duels_lost": 3.6719,
                "aerial_won": 0.9891,
                "aerial_lost": 0.7007,
                "interceptions": 1.8294,
                "tackles_won": 1.2473,
                "tackles": 2.0069,
                "clearances": 1.4586,
                "total_contest": 0.7903,
                "won_contest": 0.3756,
                "challenges_lost": 0.6359,
                "fouls": 0.9461,
                "fouls_drawn": 1.1266,
                "blocks": 0.4875,
                "big_chances_created": 0.0337,
                "big_chances_missed": 0.0,
                "xgot": 0.0045,
                "ball_carries": 19.4999,
                "total_progression": 44.9879,
                "progressive_carries": 0.3054,
                "shots_off_target": 0.3515
              },
              "params": {
                "market_value_eur": 27000000,
                "quality_factor": 0.6941,
                "boost_factor": 1.0068,
                "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.0015)",
              "stats": {
                "key_pass": 0.5135,
                "expected_assists": 0.0361,
                "assists": 0.0453,
                "assist_rate": 0.0453,
                "expected_goals": 0.0323,
                "goals": 0.0451,
                "goal_rate": 0.0451,
                "shots_on_target": 0.112,
                "total_shots": 0.463,
                "rating": 6.9271,
                "minutes": 78.31,
                "total_pass": 56.1288,
                "accurate_pass": 50.9467,
                "duels_won": 4.4982,
                "total_long_balls": 2.1369,
                "accurate_long_balls": 1.3077,
                "total_own_half_passes": 29.5491,
                "accurate_own_half_passes": 27.6862,
                "total_opp_half_passes": 26.5797,
                "accurate_opp_half_passes": 23.2605,
                "crosses_total": 0.0507,
                "crosses_accurate": 0.0,
                "touches": 68.5244,
                "possession_lost": 7.5174,
                "dispossessed": 0.9746,
                "duels_lost": 3.6719,
                "aerial_won": 0.9891,
                "aerial_lost": 0.7007,
                "interceptions": 1.8266,
                "tackles_won": 1.2454,
                "tackles": 2.0069,
                "clearances": 1.4586,
                "total_contest": 0.7903,
                "won_contest": 0.3756,
                "challenges_lost": 0.6359,
                "fouls": 0.9446,
                "fouls_drawn": 1.1249,
                "blocks": 0.4875,
                "big_chances_created": 0.0337,
                "big_chances_missed": 0.0,
                "xgot": 0.0045,
                "ball_carries": 19.4999,
                "total_progression": 44.9879,
                "progressive_carries": 0.3054,
                "shots_off_target": 0.3515
              },
              "params": {
                "blend_weight": 0.0015,
                "history_matches": 37,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.8701,
                "prior_reliability": 0.02,
                "competition": "La Liga",
                "squad": "Real Sociedad"
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0.5135,
                "expected_assists": 0.0361,
                "assists": 0.0453,
                "assist_rate": 0.0453,
                "expected_goals": 0.0323,
                "goals": 0.0451,
                "goal_rate": 0.0451,
                "shots_on_target": 0.112,
                "total_shots": 0.4635,
                "rating": 6.9271,
                "minutes": 78.31,
                "total_pass": 56.1288,
                "accurate_pass": 50.9467,
                "duels_won": 4.4982,
                "total_long_balls": 2.1369,
                "accurate_long_balls": 1.3077,
                "total_own_half_passes": 29.5491,
                "accurate_own_half_passes": 27.6862,
                "total_opp_half_passes": 26.5797,
                "accurate_opp_half_passes": 23.2605,
                "crosses_total": 0.0507,
                "crosses_accurate": 0.0,
                "touches": 68.5244,
                "possession_lost": 7.5174,
                "dispossessed": 0.9746,
                "duels_lost": 3.6719,
                "aerial_won": 0.9891,
                "aerial_lost": 0.7007,
                "interceptions": 1.8266,
                "tackles_won": 1.2454,
                "tackles": 2.0069,
                "clearances": 1.4586,
                "total_contest": 0.7903,
                "won_contest": 0.3756,
                "challenges_lost": 0.6359,
                "fouls": 0.9446,
                "fouls_drawn": 1.1249,
                "blocks": 0.4875,
                "big_chances_created": 0.0337,
                "big_chances_missed": 0.0,
                "xgot": 0.0045,
                "ball_carries": 19.4999,
                "total_progression": 44.9879,
                "progressive_carries": 0.3054,
                "shots_off_target": 0.3515
              },
              "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.5135,
                "expected_assists": 0.0361,
                "assists": 0.0453,
                "assist_rate": 0.0453,
                "expected_goals": 0.0325,
                "goals": 0.0454,
                "goal_rate": 0.0454,
                "shots_on_target": 0.1126,
                "total_shots": 0.4661,
                "rating": 6.9271,
                "minutes": 78.31,
                "total_pass": 56.1288,
                "accurate_pass": 50.9467,
                "duels_won": 4.4982,
                "total_long_balls": 2.1369,
                "accurate_long_balls": 1.3077,
                "total_own_half_passes": 29.5491,
                "accurate_own_half_passes": 27.6862,
                "total_opp_half_passes": 26.5797,
                "accurate_opp_half_passes": 23.2605,
                "crosses_total": 0.0507,
                "crosses_accurate": 0.0,
                "touches": 68.5244,
                "possession_lost": 7.5174,
                "dispossessed": 0.9746,
                "duels_lost": 3.6719,
                "aerial_won": 1.0,
                "aerial_lost": 0.7007,
                "interceptions": 1.8266,
                "tackles_won": 1.2454,
                "tackles": 2.0069,
                "clearances": 1.4586,
                "total_contest": 0.7903,
                "won_contest": 0.3756,
                "challenges_lost": 0.6359,
                "fouls": 0.9446,
                "fouls_drawn": 1.1249,
                "blocks": 0.4875,
                "big_chances_created": 0.0337,
                "big_chances_missed": 0.0,
                "xgot": 0.0045,
                "ball_carries": 19.4999,
                "total_progression": 44.9879,
                "progressive_carries": 0.3054,
                "shots_off_target": 0.3535,
                "duel_xg_multiplier": 1.0056,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.424,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "CDM vs CDM",
                "numerical_situation": "1v1",
                "opponent_defenders": "Mikel Jauregizar",
                "opponent_faced": "Mikel Jauregizar",
                "antagonist_source": "attacking_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Mikel Jauregizar",
                  "matchup_zone": "CDM vs CDM",
                  "duel_win_rate": 0.424,
                  "pressing_faced": "MEDIUM",
                  "numerical_situation": "1v1",
                  "xg_multiplier": 1.0056,
                  "skill_edge": 0.0038,
                  "height_edge": 0.0,
                  "attacker_skill": 0.7304,
                  "defender_skill": 0.7219,
                  "attacker_role": "CDM",
                  "attacker_mv_price_index": 0.85,
                  "defender_adjusted_parts": [
                    {
                      "player": "Mikel Jauregizar",
                      "market_value": 26000000,
                      "role": "CDM",
                      "price_index": 0.85,
                      "adjusted_quality": 0.7219
                    }
                  ],
                  "xg_override": 0.0325
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.9891,
                  "after": 1.0
                }
              ]
            },
            {
              "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.5135,
                "expected_assists": 0.0361,
                "assist_rate": 0.0453,
                "assists": 0,
                "expected_goals": 0.0325,
                "goal_rate": 0.0454,
                "goals": 0,
                "shots_on_target": 0.1126,
                "total_shots": 0.4661,
                "rating": 6.9271,
                "minutes": 78.31,
                "total_pass": 56.1288,
                "accurate_pass": 50.9467,
                "duels_won": 4.4982,
                "total_long_balls": 2.1369,
                "accurate_long_balls": 1.3077,
                "total_own_half_passes": 29.5491,
                "accurate_own_half_passes": 27.6862,
                "total_opp_half_passes": 26.5797,
                "accurate_opp_half_passes": 23.2605,
                "crosses_total": 0.0507,
                "crosses_accurate": 0.0,
                "touches": 68.5244,
                "possession_lost": 7.5174,
                "dispossessed": 0.9746,
                "duels_lost": 3.6719,
                "aerial_won": 1.0,
                "aerial_lost": 0.7007,
                "interceptions": 1.8266,
                "tackles_won": 1.2454,
                "tackles": 2.0069,
                "clearances": 1.4586,
                "total_contest": 0.7903,
                "won_contest": 0.3756,
                "challenges_lost": 0.6359,
                "fouls": 0.9446,
                "fouls_drawn": 1.1249,
                "blocks": 0.4875,
                "big_chances_created": 0.0337,
                "big_chances_missed": 0.0,
                "xgot": 0.0045,
                "ball_carries": 19.4999,
                "total_progression": 44.9879,
                "progressive_carries": 0.3054,
                "shots_off_target": 0.3535,
                "duel_xg_multiplier": 1.0056,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.424,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "CDM vs CDM",
                "numerical_situation": "1v1",
                "opponent_defenders": "Mikel Jauregizar",
                "opponent_faced": "Mikel Jauregizar",
                "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.25 (squad xG sum 1.3010, xG scale 0.9646, xA scale 0.9646, team xA 0.85 = 0.67 x lambda)",
              "stats": {
                "key_pass": 0.5135,
                "expected_assists": 0.0348,
                "assist_rate": 0.0453,
                "assists": 0,
                "expected_goals": 0.0314,
                "goal_rate": 0.0454,
                "goals": 0,
                "shots_on_target": 0.1126,
                "total_shots": 0.4661,
                "rating": 6.9271,
                "minutes": 78.31,
                "total_pass": 56.1288,
                "accurate_pass": 50.9467,
                "duels_won": 4.4982,
                "total_long_balls": 2.1369,
                "accurate_long_balls": 1.3077,
                "total_own_half_passes": 29.5491,
                "accurate_own_half_passes": 27.6862,
                "total_opp_half_passes": 26.5797,
                "accurate_opp_half_passes": 23.2605,
                "crosses_total": 0.0507,
                "crosses_accurate": 0.0,
                "touches": 68.5244,
                "possession_lost": 7.5174,
                "dispossessed": 0.9746,
                "duels_lost": 3.6719,
                "aerial_won": 1.0,
                "aerial_lost": 0.7007,
                "interceptions": 1.8266,
                "tackles_won": 1.2454,
                "tackles": 2.0069,
                "clearances": 1.4586,
                "total_contest": 0.7903,
                "won_contest": 0.3756,
                "challenges_lost": 0.6359,
                "fouls": 0.9446,
                "fouls_drawn": 1.1249,
                "blocks": 0.4875,
                "big_chances_created": 0.0337,
                "big_chances_missed": 0.0,
                "xgot": 0.0043,
                "ball_carries": 19.4999,
                "total_progression": 44.9879,
                "progressive_carries": 0.3054,
                "shots_off_target": 0.3535,
                "duel_xg_multiplier": 1.0056,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.424,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "CDM vs CDM",
                "numerical_situation": "1v1",
                "opponent_defenders": "Mikel Jauregizar",
                "opponent_faced": "Mikel Jauregizar",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.1564,
                "creation_factor": 1.1069
              },
              "params": {
                "team_lambda": 1.255,
                "squad_xg_sum": 1.301,
                "squad_xa_sum": 0.8767,
                "team_expected_assists": 0.8457,
                "team_xa_to_xg_ratio": 0.6739,
                "bench_appearance_weighted": true,
                "xg_scale": 0.9646,
                "xa_scale": 0.9646,
                "opponent_lambda": 1.729,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              }
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 79.0)",
              "stats": {
                "key_pass": 0.5135,
                "expected_assists": 0.0348,
                "assist_rate": 0.0453,
                "assists": 0,
                "expected_goals": 0.0314,
                "goal_rate": 0.0454,
                "goals": 0,
                "shots_on_target": 0.1126,
                "total_shots": 0.4661,
                "rating": 6.9271,
                "minutes": 78.31,
                "total_pass": 56.1288,
                "accurate_pass": 50.9467,
                "duels_won": 4.4982,
                "total_long_balls": 2.1369,
                "accurate_long_balls": 1.3077,
                "total_own_half_passes": 29.5491,
                "accurate_own_half_passes": 27.6862,
                "total_opp_half_passes": 26.5797,
                "accurate_opp_half_passes": 23.2605,
                "crosses_total": 0.0507,
                "crosses_accurate": 0.0,
                "touches": 68.5244,
                "possession_lost": 7.5174,
                "dispossessed": 0.9746,
                "duels_lost": 3.6719,
                "aerial_won": 1.0,
                "aerial_lost": 0.7007,
                "interceptions": 1.8266,
                "tackles_won": 1.2454,
                "tackles": 2.0069,
                "clearances": 1.4586,
                "total_contest": 0.7903,
                "won_contest": 0.3756,
                "challenges_lost": 0.6359,
                "fouls": 0.9446,
                "fouls_drawn": 1.1249,
                "blocks": 0.4875,
                "big_chances_created": 0.0337,
                "big_chances_missed": 0.0,
                "xgot": 0.0043,
                "ball_carries": 19.4999,
                "total_progression": 44.9879,
                "progressive_carries": 0.3054,
                "shots_off_target": 0.3535,
                "duel_xg_multiplier": 1.0056,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.424,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "CDM vs CDM",
                "numerical_situation": "1v1",
                "opponent_defenders": "Mikel Jauregizar",
                "opponent_faced": "Mikel Jauregizar",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.1564,
                "creation_factor": 1.1069,
                "fifa_overall": 79.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": 1369,
                "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: 1 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "key_pass": 0.5135,
                "expected_assists": 0.0348,
                "assist_rate": 0.0453,
                "assists": 0,
                "expected_goals": 0.0314,
                "goal_rate": 0.0454,
                "goals": 0,
                "shots_on_target": 0.1126,
                "total_shots": 0.4661,
                "rating": 6.9271,
                "minutes": 78.31,
                "total_pass": 56.1288,
                "accurate_pass": 50.9467,
                "duels_won": 4.4982,
                "total_long_balls": 2.1369,
                "accurate_long_balls": 1.3077,
                "total_own_half_passes": 29.5491,
                "accurate_own_half_passes": 27.6862,
                "total_opp_half_passes": 26.5797,
                "accurate_opp_half_passes": 23.2605,
                "crosses_total": 0.0507,
                "crosses_accurate": 0.0,
                "touches": 68.5244,
                "possession_lost": 7.5174,
                "dispossessed": 0.9746,
                "duels_lost": 3.6719,
                "aerial_won": 1.0,
                "aerial_lost": 0.7007,
                "interceptions": 1.8266,
                "tackles_won": 1.2454,
                "tackles": 2.0069,
                "clearances": 1.4586,
                "total_contest": 0.7903,
                "won_contest": 0.3756,
                "challenges_lost": 0.6359,
                "fouls": 0.9446,
                "fouls_drawn": 1.1249,
                "blocks": 0.4875,
                "big_chances_created": 0.0337,
                "big_chances_missed": 0.0,
                "xgot": 0.0043,
                "ball_carries": 19.4999,
                "total_progression": 44.9879,
                "progressive_carries": 0.3054,
                "shots_off_target": 0.3535,
                "duel_xg_multiplier": 1.0056,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.424,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "CDM vs CDM",
                "numerical_situation": "1v1",
                "opponent_defenders": "Mikel Jauregizar",
                "opponent_faced": "Mikel Jauregizar",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0309,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.1564,
                "creation_factor": 1.1069,
                "fifa_overall": 79.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0309,
                "goal_rate": 0.0454,
                "scorer_weight": 0.0363,
                "squad_weight_total": 1.3959,
                "weight_share": 0.026,
                "finishing_factor": 1.1564,
                "appearance_weight": 1.0,
                "weight_rank": 10,
                "eligible_players": 14,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Mikel Oyarzabal",
                    "weight": 0.3544,
                    "already": 0,
                    "effective_weight": 0.3544,
                    "runner_up": "Gonçalo Guedes",
                    "runner_up_effective_weight": 0.2684
                  }
                ]
              }
            },
            {
              "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.5135,
                "expected_assists": 0.0348,
                "assist_rate": 0.0453,
                "assists": 0,
                "expected_goals": 0.0314,
                "goal_rate": 0.0454,
                "goals": 0,
                "shots_on_target": 0.1126,
                "total_shots": 0.4661,
                "rating": 6.9271,
                "minutes": 78.31,
                "total_pass": 56.1288,
                "accurate_pass": 50.9467,
                "duels_won": 4.4982,
                "total_long_balls": 2.1369,
                "accurate_long_balls": 1.3077,
                "total_own_half_passes": 29.5491,
                "accurate_own_half_passes": 27.6862,
                "total_opp_half_passes": 26.5797,
                "accurate_opp_half_passes": 23.2605,
                "crosses_total": 0.0507,
                "crosses_accurate": 0.0,
                "touches": 68.5244,
                "possession_lost": 7.5174,
                "dispossessed": 0.9746,
                "duels_lost": 3.6719,
                "aerial_won": 1.0,
                "aerial_lost": 0.7007,
                "interceptions": 1.8266,
                "tackles_won": 1.2454,
                "tackles": 2.0069,
                "clearances": 1.4586,
                "total_contest": 0.7903,
                "won_contest": 0.3756,
                "challenges_lost": 0.6359,
                "fouls": 0.9446,
                "fouls_drawn": 1.1249,
                "blocks": 0.4875,
                "big_chances_created": 0.0337,
                "big_chances_missed": 0.0,
                "xgot": 0.0043,
                "ball_carries": 19.4999,
                "total_progression": 44.9879,
                "progressive_carries": 0.3054,
                "shots_off_target": 0.3535,
                "duel_xg_multiplier": 1.0056,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.424,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "CDM vs CDM",
                "numerical_situation": "1v1",
                "opponent_defenders": "Mikel Jauregizar",
                "opponent_faced": "Mikel Jauregizar",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0309,
                "projected_assists": 0,
                "assist_probability": 0.0342,
                "finishing_factor": 1.1564,
                "creation_factor": 1.1069,
                "fifa_overall": 79.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0342,
                "assist_rate": 0.0453,
                "provider_weight": 0.0385,
                "squad_weight_total": 0.8785,
                "weight_share": 0.0438,
                "creation_factor": 1.1069,
                "appearance_weight": 1.0,
                "weight_rank": 7,
                "eligible_players": 14,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Gonçalo Guedes",
                    "weight": 0.1642,
                    "already": 0,
                    "effective_weight": 0.1642,
                    "runner_up": "Carlos Soler",
                    "runner_up_effective_weight": 0.1308,
                    "blocked_own_goal": [
                      "Mikel Oyarzabal"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Luka Sučić": {
          "player_id": 949156,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 24,
          "height": 185,
          "market_value": 16300000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.1199,
            "assist_rate": 0.1376,
            "assists": 0,
            "expected_goals": 0.1512,
            "goal_rate": 0.1616,
            "goals": 0,
            "shots_on_target": 1,
            "total_shots": 2,
            "rating": 6.904,
            "minutes": 81,
            "total_pass": 34,
            "accurate_pass": 30,
            "duels_won": 3,
            "total_long_balls": 2,
            "accurate_long_balls": 2,
            "total_own_half_passes": 13,
            "accurate_own_half_passes": 12,
            "total_opp_half_passes": 21,
            "accurate_opp_half_passes": 18,
            "crosses_total": 1,
            "crosses_accurate": 0,
            "touches": 46,
            "possession_lost": 8.3206,
            "dispossessed": 1.2171,
            "duels_lost": 4,
            "aerial_won": 1,
            "aerial_lost": 1,
            "interceptions": 1,
            "tackles_won": 1,
            "tackles": 1,
            "clearances": 1,
            "total_contest": 2,
            "won_contest": 1,
            "challenges_lost": 1,
            "fouls": 1,
            "fouls_drawn": 0,
            "blocks": 0,
            "big_chances_created": 1,
            "big_chances_missed": 0,
            "xgot": 0.2892,
            "ball_carries": 17,
            "total_progression": 34,
            "progressive_carries": 2,
            "shots_off_target": 1,
            "duel_xg_multiplier": 1.061,
            "dribbles_attempted": 3,
            "dribbles_successful": 0.7,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.281,
            "pressing_faced": "LOW",
            "matchup_zone": "Attacking Mid vs Double Pivot — Tight Space Battle",
            "numerical_situation": "1v2",
            "opponent_defenders": "Mikel Jauregizar, Beñat Gerenabarrena",
            "opponent_faced": "Mikel Jauregizar, Beñat Gerenabarrena",
            "antagonist_source": "attacking_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.1403,
            "projected_assists": 0,
            "assist_probability": 0.113,
            "finishing_factor": 1.0237,
            "creation_factor": 1.0763,
            "fifa_overall": 76.0
          },
          "latest_10_games": [
            {
              "match_id": 16421086.0,
              "match_date": "2026-10-25",
              "home_team": "Real Sociedad",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 62,
                "rating": 7.0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1144,
                "expected_assists": 0.0886,
                "total_shots": 1,
                "shots_on_target": 1,
                "shots_off_target": 0,
                "total_pass": 39,
                "accurate_pass": 38,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 1,
                "clearances": 1,
                "aerial_won": 0,
                "duels_won": 2,
                "ball_recovery": 1,
                "saves": 0
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421067.0,
              "match_date": "2026-10-11",
              "home_team": "Real Sociedad",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 90,
                "rating": 6.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.2925,
                "total_shots": 0,
                "total_pass": 21,
                "accurate_pass": 17,
                "key_pass": 3,
                "interceptions": 1,
                "clearances": 1,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416297.0,
              "match_date": "2026-09-20",
              "home_team": "Valencia",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Valencia",
              "stats": {
                "minutes": 87,
                "rating": 7.6,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1746,
                "expected_assists": 0.2711,
                "total_shots": 2,
                "shots_on_target": 1,
                "total_pass": 36,
                "accurate_pass": 34,
                "key_pass": 3,
                "interceptions": 1,
                "duels_won": 1,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416332.0,
              "match_date": "2026-09-13",
              "home_team": "Real Sociedad",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0924,
                "expected_assists": 0.2147,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 44,
                "accurate_pass": 40,
                "interceptions": 1,
                "clearances": 1,
                "duels_won": 1,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416319.0,
              "match_date": "2026-09-07",
              "home_team": "Elche",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Elche",
              "stats": {
                "minutes": 90,
                "rating": 8.5,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.2155,
                "expected_assists": 0.0665,
                "total_shots": 4,
                "shots_on_target": 2,
                "shots_off_target": 1,
                "total_pass": 36,
                "accurate_pass": 29,
                "key_pass": 1,
                "tackles": 4,
                "tackles_won": 2,
                "aerial_won": 2,
                "duels_won": 10,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416340.0,
              "match_date": "2026-09-03",
              "home_team": "Real Sociedad",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 29,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0456,
                "expected_assists": 0.0381,
                "total_shots": 2,
                "total_pass": 16,
                "accurate_pass": 13,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416310.0,
              "match_date": "2026-08-29",
              "home_team": "Real Sociedad",
              "away_team": "Espanyol",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 78,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0458,
                "expected_assists": 0.0199,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 27,
                "accurate_pass": 22,
                "key_pass": 2,
                "tackles": 2,
                "tackles_won": 2,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421051.0,
              "match_date": "2026-08-26",
              "home_team": "Real Madrid",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 90,
                "rating": 7.3,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1179,
                "expected_assists": 0.1689,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 56,
                "accurate_pass": 55,
                "key_pass": 1,
                "duels_won": 1,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416293.0,
              "match_date": "2026-08-21",
              "home_team": "Real Betis",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 87,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.25,
                "expected_assists": 0.0084,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 32,
                "accurate_pass": 29,
                "key_pass": 1,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083719.0,
              "match_date": "2026-05-23",
              "home_team": "Espanyol",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.4355,
                "expected_assists": 0.0184,
                "total_shots": 3,
                "shots_on_target": 1,
                "shots_off_target": 2,
                "total_pass": 35,
                "accurate_pass": 27,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 5,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 3134,
            "combined_rank_score": 1102.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 229.0,
            "sofascore_rating": 7.15,
            "sofascore_appearances": 2.0,
            "fifa_rank": 1975.0,
            "fifa_overall": 76.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 9,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.904,
            "source_file": "data/player_rankings.csv",
            "player_name": "Luka Sučić",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Lawrence Shankland",
                  "ranking": 3129
                },
                {
                  "player_name": "Cameron Carter-Vickers",
                  "ranking": 3130
                },
                {
                  "player_name": "Patrick Wimmer",
                  "ranking": 3131
                },
                {
                  "player_name": "Thomas Lemar",
                  "ranking": 3132
                },
                {
                  "player_name": "Robert Navarro",
                  "ranking": 3133
                }
              ],
              "lower": [
                {
                  "player_name": "Che Adams",
                  "ranking": 3135
                },
                {
                  "player_name": "Carlos Vicente",
                  "ranking": 3136
                },
                {
                  "player_name": "Lautaro Di Lollo",
                  "ranking": 3137
                },
                {
                  "player_name": "Hugo Larsson",
                  "ranking": 3138
                },
                {
                  "player_name": "Kasper Dolberg",
                  "ranking": 3139
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.781,
          "history_matches": 31,
          "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": 31,
            "data_confidence": 0.781,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0037,
            "fbref_prior_metrics": {
              "squad": "Real Sociedad",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 4.0,
              "starts": 3.0,
              "minutes": 283.0,
              "goals_per90": 0.3225806451612903,
              "assists_per90": 0.0,
              "shots_per90": 2.23,
              "shots_on_target_pct": 28.6,
              "prior_reliability": 0.2067
            },
            "rationale": "XGBoost regressor (M_service) evaluated 31 historical appearances across 8 target models; FBref 2026-2027 prior blended (La Liga, Real Sociedad, rel: 0.21, gls/90: 0.3225806451612903, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 1.3824,
                "expected_assists": 0.1239,
                "assists": 0.1396,
                "assist_rate": 0.1396,
                "expected_goals": 0.1471,
                "goals": 0.1491,
                "goal_rate": 0.1491,
                "shots_on_target": 0.5617,
                "total_shots": 1.6648,
                "rating": 6.904,
                "minutes": 81.26,
                "total_pass": 33.8899,
                "accurate_pass": 29.8968,
                "duels_won": 2.9995,
                "total_long_balls": 2.4237,
                "accurate_long_balls": 1.8884,
                "total_own_half_passes": 12.7526,
                "accurate_own_half_passes": 11.9255,
                "total_opp_half_passes": 21.1372,
                "accurate_opp_half_passes": 17.9712,
                "crosses_total": 1.0098,
                "crosses_accurate": 0.1945,
                "touches": 45.7974,
                "possession_lost": 8.2899,
                "dispossessed": 1.2126,
                "duels_lost": 4.3455,
                "aerial_won": 0.4411,
                "aerial_lost": 0.692,
                "interceptions": 0.6053,
                "tackles_won": 0.7943,
                "tackles": 1.2466,
                "clearances": 0.6413,
                "total_contest": 1.697,
                "won_contest": 0.9132,
                "challenges_lost": 1.0548,
                "fouls": 0.6288,
                "fouls_drawn": 0.3986,
                "blocks": 0.0367,
                "big_chances_created": 0.5223,
                "big_chances_missed": 0.1867,
                "xgot": 0.2816,
                "ball_carries": 17.1186,
                "total_progression": 33.7316,
                "progressive_carries": 1.6704,
                "shots_off_target": 1.1031
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 7,
                  "trained_at": "2026-11-01T11:27:07.750726+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 905,
                    "rows": 25067
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-25",
                    "opponent": "Levante UD",
                    "minutes": 62.0,
                    "is_starting": true,
                    "weight": 0.151,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-10-11",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1283,
                    "rating": 6.0
                  },
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Valencia",
                    "minutes": 87.0,
                    "is_starting": true,
                    "weight": 0.1091,
                    "rating": 7.6
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Atlético Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0927,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Elche",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0788,
                    "rating": 8.5
                  },
                  {
                    "match_date": "2026-09-03",
                    "opponent": "Celta Vigo",
                    "minutes": 29.0,
                    "is_starting": false,
                    "weight": 0.067,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-29",
                    "opponent": "Espanyol",
                    "minutes": 78.0,
                    "is_starting": true,
                    "weight": 0.0569,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-26",
                    "opponent": "Real Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0484,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-08-21",
                    "opponent": "Real Betis",
                    "minutes": 87.0,
                    "is_starting": true,
                    "weight": 0.0411,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-05-23",
                    "opponent": "Espanyol",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.035,
                    "rating": 6.4
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 1.0,
                  "totalShots": 1.5013,
                  "creative_index": 0.5766,
                  "expectedGoals": 0.1076,
                  "expectedAssists": 0.1254,
                  "keyPass": 1.2536
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 1.3823649883270264,
                    "model_output": 1.3824,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1578
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1373
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0712
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0516
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0289
                      }
                    ],
                    "decomposition": {
                      "base": 0.8902,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1207
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.1006
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0994
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0432
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0384
                        }
                      ],
                      "others": 0.1763,
                      "total": 1.3824,
                      "log_link": true,
                      "margin_base": -0.116298,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.127106
                        },
                        {
                          "name": "creative_index",
                          "margin": 0.09489
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.085674
                        },
                        {
                          "name": "cross_creative_contribution",
                          "margin": -0.036326
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.032351
                        }
                      ],
                      "others_margin": 0.136399
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.12388807535171509,
                    "model_output": 0.1239,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1181
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.1136
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.1034
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0572
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0473
                      }
                    ],
                    "decomposition": {
                      "base": 0.0847,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0118
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0078
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0041
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0038
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0037
                        }
                      ],
                      "others": 0.008,
                      "total": 0.1239,
                      "log_link": true,
                      "margin_base": -2.468924,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.130036
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.07782
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.038555
                        },
                        {
                          "name": "creative_index",
                          "margin": 0.034675
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.032461
                        }
                      ],
                      "others_margin": 0.067
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.13964734971523285,
                    "model_output": 0.1396,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0627
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0445
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0417
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0324
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0293
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "creative_index",
                          "contribution": 0.0074
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0077
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0083
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": 0.0084
                        },
                        {
                          "name": "totalCross",
                          "contribution": 0.0063
                        }
                      ],
                      "others": 0.0164,
                      "total": 0.1396,
                      "log_link": true,
                      "margin_base": -2.463472,
                      "item_margins": [
                        {
                          "name": "creative_index",
                          "margin": 0.08344
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.080007
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.079351
                        },
                        {
                          "name": "ballRecovery_p90",
                          "margin": 0.074253
                        },
                        {
                          "name": "totalCross",
                          "margin": 0.052247
                        }
                      ],
                      "others_margin": 0.125538
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.14714883267879486,
                    "model_output": 0.1471,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedGoals",
                        "importance": 0.1255
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0756
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0438
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0265
                      }
                    ],
                    "decomposition": {
                      "base": 0.0918,
                      "items": [
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0223
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0138
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0154
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.0073
                        },
                        {
                          "name": "goals",
                          "contribution": 0.004
                        }
                      ],
                      "others": -0.0075,
                      "total": 0.1471,
                      "log_link": true,
                      "margin_base": -2.387963,
                      "item_margins": [
                        {
                          "name": "expectedGoals",
                          "margin": 0.21773
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.11393
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.113893
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": 0.049338
                        },
                        {
                          "name": "goals",
                          "margin": 0.026309
                        }
                      ],
                      "others_margin": -0.049549
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.1491265594959259,
                    "model_output": 0.1491,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0923
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.067
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.041
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0334
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.0946,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0285
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0137
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.0132
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": -0.0054
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0037
                        }
                      ],
                      "others": 0.0082,
                      "total": 0.1491,
                      "log_link": true,
                      "margin_base": -2.358385,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.263141
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.105367
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": 0.092374
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": -0.036802
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.026032
                        }
                      ],
                      "others_margin": 0.057378
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.5617002844810486,
                    "model_output": 0.5617,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.117
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0884
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0772
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0315
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0258
                      }
                    ],
                    "decomposition": {
                      "base": 0.3179,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0912
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0568
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0323
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0253
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.0165
                        }
                      ],
                      "others": 0.0217,
                      "total": 0.5617,
                      "log_link": true,
                      "margin_base": -1.146086,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.252246
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.130066
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.067065
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.049478
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": 0.031105
                        }
                      ],
                      "others_margin": 0.039339
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.6647690534591675,
                    "model_output": 1.6648,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1349
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1208
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0462
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.044
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0312
                      }
                    ],
                    "decomposition": {
                      "base": 0.9849,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.3891
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1599
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.0395
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0392
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0323
                        }
                      ],
                      "others": 0.0199,
                      "total": 1.6648,
                      "log_link": false,
                      "margin_base": 0.984935,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.389072
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.159867
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": 0.039548
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.039167
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.032319
                        }
                      ],
                      "others_margin": 0.01986
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.903991222381592,
                    "model_output": 6.904,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "rating",
                        "importance": 0.0864
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0749
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0486
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0482
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 6.8574,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0338
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0307
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0181
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0178
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0147
                        }
                      ],
                      "others": -0.0329,
                      "total": 6.904,
                      "log_link": false,
                      "margin_base": 6.857404,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.033807
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.030652
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.018071
                        },
                        {
                          "name": "rating",
                          "margin": -0.017812
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.014742
                        }
                      ],
                      "others_margin": -0.032873
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "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 1.0037, quality 0.593)",
              "stats": {
                "key_pass": 1.3875,
                "expected_assists": 0.1243,
                "assists": 0.1402,
                "assist_rate": 0.1402,
                "expected_goals": 0.1477,
                "goals": 0.1497,
                "goal_rate": 0.1497,
                "shots_on_target": 0.5638,
                "total_shots": 1.671,
                "rating": 6.904,
                "minutes": 81.26,
                "total_pass": 34.0153,
                "accurate_pass": 30.0074,
                "duels_won": 3.0106,
                "total_long_balls": 2.4327,
                "accurate_long_balls": 1.8954,
                "total_own_half_passes": 12.7998,
                "accurate_own_half_passes": 11.9696,
                "total_opp_half_passes": 21.2154,
                "accurate_opp_half_passes": 18.0377,
                "crosses_total": 1.0135,
                "crosses_accurate": 0.1952,
                "touches": 45.9669,
                "possession_lost": 8.3206,
                "dispossessed": 1.2171,
                "duels_lost": 4.3616,
                "aerial_won": 0.4427,
                "aerial_lost": 0.6946,
                "interceptions": 0.6075,
                "tackles_won": 0.7972,
                "tackles": 1.2512,
                "clearances": 0.6437,
                "total_contest": 1.7033,
                "won_contest": 0.9166,
                "challenges_lost": 1.0587,
                "fouls": 0.6311,
                "fouls_drawn": 0.4001,
                "blocks": 0.0368,
                "big_chances_created": 0.5242,
                "big_chances_missed": 0.1874,
                "xgot": 0.2826,
                "ball_carries": 17.1819,
                "total_progression": 33.8564,
                "progressive_carries": 1.6766,
                "shots_off_target": 1.1072
              },
              "params": {
                "market_value_eur": 16300000,
                "quality_factor": 0.5932,
                "boost_factor": 1.0037,
                "reference_quality": 0.505,
                "history_matches": 31,
                "history_shrink": 0.1389,
                "market_value_known": true
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0187)",
              "stats": {
                "key_pass": 1.3875,
                "expected_assists": 0.1243,
                "assists": 0.1376,
                "assist_rate": 0.1376,
                "expected_goals": 0.1477,
                "goals": 0.1523,
                "goal_rate": 0.1523,
                "shots_on_target": 0.5641,
                "total_shots": 1.6774,
                "rating": 6.904,
                "minutes": 81.26,
                "total_pass": 34.0153,
                "accurate_pass": 30.0074,
                "duels_won": 3.0106,
                "total_long_balls": 2.4327,
                "accurate_long_balls": 1.8954,
                "total_own_half_passes": 12.7998,
                "accurate_own_half_passes": 11.9696,
                "total_opp_half_passes": 21.2154,
                "accurate_opp_half_passes": 18.0377,
                "crosses_total": 1.0272,
                "crosses_accurate": 0.1952,
                "touches": 45.9669,
                "possession_lost": 8.3206,
                "dispossessed": 1.2171,
                "duels_lost": 4.3616,
                "aerial_won": 0.4427,
                "aerial_lost": 0.6946,
                "interceptions": 0.5962,
                "tackles_won": 0.7932,
                "tackles": 1.2512,
                "clearances": 0.6437,
                "total_contest": 1.7033,
                "won_contest": 0.9166,
                "challenges_lost": 1.0587,
                "fouls": 0.6356,
                "fouls_drawn": 0.3981,
                "blocks": 0.0368,
                "big_chances_created": 0.5242,
                "big_chances_missed": 0.1874,
                "xgot": 0.2826,
                "ball_carries": 17.1819,
                "total_progression": 33.8564,
                "progressive_carries": 1.6766,
                "shots_off_target": 1.1072
              },
              "params": {
                "blend_weight": 0.0187,
                "history_matches": 31,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.9029,
                "prior_reliability": 0.2067,
                "competition": "La Liga",
                "squad": "Real Sociedad"
              },
              "changes": [
                {
                  "stat": "totalCross",
                  "before": 1.0135,
                  "after": 1.0272
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.6075,
                  "after": 0.5962
                },
                {
                  "stat": "totalShots",
                  "before": 1.671,
                  "after": 1.6774
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1.3875,
                "expected_assists": 0.1243,
                "assists": 0.1376,
                "assist_rate": 0.1376,
                "expected_goals": 0.1477,
                "goals": 0.1523,
                "goal_rate": 0.1523,
                "shots_on_target": 0.5641,
                "total_shots": 1.6774,
                "rating": 6.904,
                "minutes": 81.26,
                "total_pass": 34.0153,
                "accurate_pass": 30.0074,
                "duels_won": 3.0106,
                "total_long_balls": 2.4327,
                "accurate_long_balls": 1.8954,
                "total_own_half_passes": 12.7998,
                "accurate_own_half_passes": 11.9696,
                "total_opp_half_passes": 21.2154,
                "accurate_opp_half_passes": 18.0377,
                "crosses_total": 1.0272,
                "crosses_accurate": 0.1952,
                "touches": 45.9669,
                "possession_lost": 8.3206,
                "dispossessed": 1.2171,
                "duels_lost": 4.3616,
                "aerial_won": 0.4427,
                "aerial_lost": 0.6946,
                "interceptions": 0.5962,
                "tackles_won": 0.7932,
                "tackles": 1.2512,
                "clearances": 0.6437,
                "total_contest": 1.7033,
                "won_contest": 0.9166,
                "challenges_lost": 1.0587,
                "fouls": 0.6356,
                "fouls_drawn": 0.3981,
                "blocks": 0.0368,
                "big_chances_created": 0.5242,
                "big_chances_missed": 0.1874,
                "xgot": 0.2826,
                "ball_carries": 17.1819,
                "total_progression": 33.8564,
                "progressive_carries": 1.6766,
                "shots_off_target": 1.1072
              },
              "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.3875,
                "expected_assists": 0.1243,
                "assists": 0.1376,
                "assist_rate": 0.1376,
                "expected_goals": 0.1567,
                "goals": 0.1616,
                "goal_rate": 0.1616,
                "shots_on_target": 0.5985,
                "total_shots": 1.7797,
                "rating": 6.904,
                "minutes": 81.26,
                "total_pass": 34.0153,
                "accurate_pass": 30.0074,
                "duels_won": 3.0106,
                "total_long_balls": 2.4327,
                "accurate_long_balls": 1.8954,
                "total_own_half_passes": 12.7998,
                "accurate_own_half_passes": 11.9696,
                "total_opp_half_passes": 21.2154,
                "accurate_opp_half_passes": 18.0377,
                "crosses_total": 1.0272,
                "crosses_accurate": 0.1952,
                "touches": 45.9669,
                "possession_lost": 8.3206,
                "dispossessed": 1.2171,
                "duels_lost": 4.3616,
                "aerial_won": 1.2,
                "aerial_lost": 0.6946,
                "interceptions": 0.5962,
                "tackles_won": 0.7932,
                "tackles": 1.2512,
                "clearances": 0.6437,
                "total_contest": 1.7033,
                "won_contest": 0.9166,
                "challenges_lost": 1.0587,
                "fouls": 0.6356,
                "fouls_drawn": 0.3981,
                "blocks": 0.0368,
                "big_chances_created": 0.5242,
                "big_chances_missed": 0.1988,
                "xgot": 0.2998,
                "ball_carries": 17.1819,
                "total_progression": 33.8564,
                "progressive_carries": 1.6766,
                "shots_off_target": 1.1747,
                "duel_xg_multiplier": 1.061,
                "dribbles_attempted": 3.0,
                "dribbles_successful": 0.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.281,
                "pressing_faced": "LOW",
                "matchup_zone": "Attacking Mid vs Double Pivot — Tight Space Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Mikel Jauregizar, Beñat Gerenabarrena",
                "opponent_faced": "Mikel Jauregizar, Beñat Gerenabarrena",
                "antagonist_source": "attacking_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Mikel Jauregizar, Beñat Gerenabarrena",
                  "matchup_zone": "Attacking Mid vs Double Pivot — Tight Space Battle",
                  "duel_win_rate": 0.281,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v2",
                  "xg_multiplier": 1.061,
                  "skill_edge": 0.0015,
                  "height_edge": 0.04,
                  "attacker_skill": 0.6022,
                  "defender_skill": 0.5989,
                  "attacker_role": "CAM",
                  "attacker_mv_price_index": 0.95,
                  "defender_adjusted_parts": [
                    {
                      "player": "Mikel Jauregizar",
                      "market_value": 26000000,
                      "role": "CDM",
                      "price_index": 0.85,
                      "adjusted_quality": 0.7219
                    },
                    {
                      "player": "Beñat Gerenabarrena",
                      "market_value": 5200000,
                      "role": "CDM",
                      "price_index": 0.85,
                      "adjusted_quality": 0.4759
                    }
                  ],
                  "xg_override": 0.1567
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.4427,
                  "after": 1.2
                },
                {
                  "stat": "totalShots",
                  "before": 1.6774,
                  "after": 1.7797
                },
                {
                  "stat": "shotOffTarget",
                  "before": 1.1072,
                  "after": 1.1747
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.5641,
                  "after": 0.5985
                },
                {
                  "stat": "expectedGoalsOnTarget",
                  "before": 0.2826,
                  "after": 0.2998
                },
                {
                  "stat": "bigChanceMissed",
                  "before": 0.1874,
                  "after": 0.1988
                },
                {
                  "stat": "goals",
                  "before": 0.1523,
                  "after": 0.1616
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.1477,
                  "after": 0.1567
                }
              ]
            },
            {
              "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.3875,
                "expected_assists": 0.1243,
                "assist_rate": 0.1376,
                "assists": 0,
                "expected_goals": 0.1567,
                "goal_rate": 0.1616,
                "goals": 0,
                "shots_on_target": 0.5985,
                "total_shots": 1.7797,
                "rating": 6.904,
                "minutes": 81.26,
                "total_pass": 34.0153,
                "accurate_pass": 30.0074,
                "duels_won": 3.0106,
                "total_long_balls": 2.4327,
                "accurate_long_balls": 1.8954,
                "total_own_half_passes": 12.7998,
                "accurate_own_half_passes": 11.9696,
                "total_opp_half_passes": 21.2154,
                "accurate_opp_half_passes": 18.0377,
                "crosses_total": 1.0272,
                "crosses_accurate": 0.1952,
                "touches": 45.9669,
                "possession_lost": 8.3206,
                "dispossessed": 1.2171,
                "duels_lost": 4.3616,
                "aerial_won": 1.2,
                "aerial_lost": 0.6946,
                "interceptions": 0.5962,
                "tackles_won": 0.7932,
                "tackles": 1.2512,
                "clearances": 0.6437,
                "total_contest": 1.7033,
                "won_contest": 0.9166,
                "challenges_lost": 1.0587,
                "fouls": 0.6356,
                "fouls_drawn": 0.3981,
                "blocks": 0.0368,
                "big_chances_created": 0.5242,
                "big_chances_missed": 0.1988,
                "xgot": 0.2998,
                "ball_carries": 17.1819,
                "total_progression": 33.8564,
                "progressive_carries": 1.6766,
                "shots_off_target": 1.1747,
                "duel_xg_multiplier": 1.061,
                "dribbles_attempted": 3.0,
                "dribbles_successful": 0.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.281,
                "pressing_faced": "LOW",
                "matchup_zone": "Attacking Mid vs Double Pivot — Tight Space Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Mikel Jauregizar, Beñat Gerenabarrena",
                "opponent_faced": "Mikel Jauregizar, Beñat Gerenabarrena",
                "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.25 (squad xG sum 1.3010, xG scale 0.9646, xA scale 0.9646, team xA 0.85 = 0.67 x lambda)",
              "stats": {
                "key_pass": 1.3875,
                "expected_assists": 0.1199,
                "assist_rate": 0.1376,
                "assists": 0,
                "expected_goals": 0.1512,
                "goal_rate": 0.1616,
                "goals": 0,
                "shots_on_target": 0.5985,
                "total_shots": 1.7797,
                "rating": 6.904,
                "minutes": 81.26,
                "total_pass": 34.0153,
                "accurate_pass": 30.0074,
                "duels_won": 3.0106,
                "total_long_balls": 2.4327,
                "accurate_long_balls": 1.8954,
                "total_own_half_passes": 12.7998,
                "accurate_own_half_passes": 11.9696,
                "total_opp_half_passes": 21.2154,
                "accurate_opp_half_passes": 18.0377,
                "crosses_total": 1.0272,
                "crosses_accurate": 0.1952,
                "touches": 45.9669,
                "possession_lost": 8.3206,
                "dispossessed": 1.2171,
                "duels_lost": 4.3616,
                "aerial_won": 1.2,
                "aerial_lost": 0.6946,
                "interceptions": 0.5962,
                "tackles_won": 0.7932,
                "tackles": 1.2512,
                "clearances": 0.6437,
                "total_contest": 1.7033,
                "won_contest": 0.9166,
                "challenges_lost": 1.0587,
                "fouls": 0.6356,
                "fouls_drawn": 0.3981,
                "blocks": 0.0368,
                "big_chances_created": 0.5242,
                "big_chances_missed": 0.1988,
                "xgot": 0.2892,
                "ball_carries": 17.1819,
                "total_progression": 33.8564,
                "progressive_carries": 1.6766,
                "shots_off_target": 1.1747,
                "duel_xg_multiplier": 1.061,
                "dribbles_attempted": 3.0,
                "dribbles_successful": 0.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.281,
                "pressing_faced": "LOW",
                "matchup_zone": "Attacking Mid vs Double Pivot — Tight Space Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Mikel Jauregizar, Beñat Gerenabarrena",
                "opponent_faced": "Mikel Jauregizar, Beñat Gerenabarrena",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0237,
                "creation_factor": 1.0763
              },
              "params": {
                "team_lambda": 1.255,
                "squad_xg_sum": 1.301,
                "squad_xa_sum": 0.8767,
                "team_expected_assists": 0.8457,
                "team_xa_to_xg_ratio": 0.6739,
                "bench_appearance_weighted": true,
                "xg_scale": 0.9646,
                "xa_scale": 0.9646,
                "opponent_lambda": 1.729,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.1567,
                  "after": 0.1512
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 76.0)",
              "stats": {
                "key_pass": 1.3875,
                "expected_assists": 0.1199,
                "assist_rate": 0.1376,
                "assists": 0,
                "expected_goals": 0.1512,
                "goal_rate": 0.1616,
                "goals": 0,
                "shots_on_target": 0.5985,
                "total_shots": 1.7797,
                "rating": 6.904,
                "minutes": 81.26,
                "total_pass": 34.0153,
                "accurate_pass": 30.0074,
                "duels_won": 3.0106,
                "total_long_balls": 2.4327,
                "accurate_long_balls": 1.8954,
                "total_own_half_passes": 12.7998,
                "accurate_own_half_passes": 11.9696,
                "total_opp_half_passes": 21.2154,
                "accurate_opp_half_passes": 18.0377,
                "crosses_total": 1.0272,
                "crosses_accurate": 0.1952,
                "touches": 45.9669,
                "possession_lost": 8.3206,
                "dispossessed": 1.2171,
                "duels_lost": 4.3616,
                "aerial_won": 1.2,
                "aerial_lost": 0.6946,
                "interceptions": 0.5962,
                "tackles_won": 0.7932,
                "tackles": 1.2512,
                "clearances": 0.6437,
                "total_contest": 1.7033,
                "won_contest": 0.9166,
                "challenges_lost": 1.0587,
                "fouls": 0.6356,
                "fouls_drawn": 0.3981,
                "blocks": 0.0368,
                "big_chances_created": 0.5242,
                "big_chances_missed": 0.1988,
                "xgot": 0.2892,
                "ball_carries": 17.1819,
                "total_progression": 33.8564,
                "progressive_carries": 1.6766,
                "shots_off_target": 1.1747,
                "duel_xg_multiplier": 1.061,
                "dribbles_attempted": 3.0,
                "dribbles_successful": 0.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.281,
                "pressing_faced": "LOW",
                "matchup_zone": "Attacking Mid vs Double Pivot — Tight Space Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Mikel Jauregizar, Beñat Gerenabarrena",
                "opponent_faced": "Mikel Jauregizar, Beñat Gerenabarrena",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0237,
                "creation_factor": 1.0763,
                "fifa_overall": 76.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": 3134,
                "fifa_rank": 1975.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 76.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.3875,
                "expected_assists": 0.1199,
                "assist_rate": 0.1376,
                "assists": 0,
                "expected_goals": 0.1512,
                "goal_rate": 0.1616,
                "goals": 0,
                "shots_on_target": 0.5985,
                "total_shots": 1.7797,
                "rating": 6.904,
                "minutes": 81.26,
                "total_pass": 34.0153,
                "accurate_pass": 30.0074,
                "duels_won": 3.0106,
                "total_long_balls": 2.4327,
                "accurate_long_balls": 1.8954,
                "total_own_half_passes": 12.7998,
                "accurate_own_half_passes": 11.9696,
                "total_opp_half_passes": 21.2154,
                "accurate_opp_half_passes": 18.0377,
                "crosses_total": 1.0272,
                "crosses_accurate": 0.1952,
                "touches": 45.9669,
                "possession_lost": 8.3206,
                "dispossessed": 1.2171,
                "duels_lost": 4.3616,
                "aerial_won": 1.2,
                "aerial_lost": 0.6946,
                "interceptions": 0.5962,
                "tackles_won": 0.7932,
                "tackles": 1.2512,
                "clearances": 0.6437,
                "total_contest": 1.7033,
                "won_contest": 0.9166,
                "challenges_lost": 1.0587,
                "fouls": 0.6356,
                "fouls_drawn": 0.3981,
                "blocks": 0.0368,
                "big_chances_created": 0.5242,
                "big_chances_missed": 0.1988,
                "xgot": 0.2892,
                "ball_carries": 17.1819,
                "total_progression": 33.8564,
                "progressive_carries": 1.6766,
                "shots_off_target": 1.1747,
                "duel_xg_multiplier": 1.061,
                "dribbles_attempted": 3.0,
                "dribbles_successful": 0.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.281,
                "pressing_faced": "LOW",
                "matchup_zone": "Attacking Mid vs Double Pivot — Tight Space Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Mikel Jauregizar, Beñat Gerenabarrena",
                "opponent_faced": "Mikel Jauregizar, Beñat Gerenabarrena",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.1403,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0237,
                "creation_factor": 1.0763,
                "fifa_overall": 76.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.1403,
                "goal_rate": 0.1616,
                "scorer_weight": 0.1548,
                "squad_weight_total": 1.3959,
                "weight_share": 0.1109,
                "finishing_factor": 1.0237,
                "appearance_weight": 1.0,
                "weight_rank": 3,
                "eligible_players": 14,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Mikel Oyarzabal",
                    "weight": 0.3544,
                    "already": 0,
                    "effective_weight": 0.3544,
                    "runner_up": "Gonçalo Guedes",
                    "runner_up_effective_weight": 0.2684
                  }
                ]
              }
            },
            {
              "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.3875,
                "expected_assists": 0.1199,
                "assist_rate": 0.1376,
                "assists": 0,
                "expected_goals": 0.1512,
                "goal_rate": 0.1616,
                "goals": 0,
                "shots_on_target": 0.5985,
                "total_shots": 1.7797,
                "rating": 6.904,
                "minutes": 81.26,
                "total_pass": 34.0153,
                "accurate_pass": 30.0074,
                "duels_won": 3.0106,
                "total_long_balls": 2.4327,
                "accurate_long_balls": 1.8954,
                "total_own_half_passes": 12.7998,
                "accurate_own_half_passes": 11.9696,
                "total_opp_half_passes": 21.2154,
                "accurate_opp_half_passes": 18.0377,
                "crosses_total": 1.0272,
                "crosses_accurate": 0.1952,
                "touches": 45.9669,
                "possession_lost": 8.3206,
                "dispossessed": 1.2171,
                "duels_lost": 4.3616,
                "aerial_won": 1.2,
                "aerial_lost": 0.6946,
                "interceptions": 0.5962,
                "tackles_won": 0.7932,
                "tackles": 1.2512,
                "clearances": 0.6437,
                "total_contest": 1.7033,
                "won_contest": 0.9166,
                "challenges_lost": 1.0587,
                "fouls": 0.6356,
                "fouls_drawn": 0.3981,
                "blocks": 0.0368,
                "big_chances_created": 0.5242,
                "big_chances_missed": 0.1988,
                "xgot": 0.2892,
                "ball_carries": 17.1819,
                "total_progression": 33.8564,
                "progressive_carries": 1.6766,
                "shots_off_target": 1.1747,
                "duel_xg_multiplier": 1.061,
                "dribbles_attempted": 3.0,
                "dribbles_successful": 0.7,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.281,
                "pressing_faced": "LOW",
                "matchup_zone": "Attacking Mid vs Double Pivot — Tight Space Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Mikel Jauregizar, Beñat Gerenabarrena",
                "opponent_faced": "Mikel Jauregizar, Beñat Gerenabarrena",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.1403,
                "projected_assists": 0,
                "assist_probability": 0.113,
                "finishing_factor": 1.0237,
                "creation_factor": 1.0763,
                "fifa_overall": 76.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.113,
                "assist_rate": 0.1376,
                "provider_weight": 0.129,
                "squad_weight_total": 0.8785,
                "weight_share": 0.1469,
                "creation_factor": 1.0763,
                "appearance_weight": 1.0,
                "weight_rank": 3,
                "eligible_players": 14,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Gonçalo Guedes",
                    "weight": 0.1642,
                    "already": 0,
                    "effective_weight": 0.1642,
                    "runner_up": "Carlos Soler",
                    "runner_up_effective_weight": 0.1308,
                    "blocked_own_goal": [
                      "Mikel Oyarzabal"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Carlos Soler": {
          "player_id": 832427,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 18,
          "height": 180,
          "market_value": 6600000,
          "stats": {
            "key_pass": 2,
            "expected_assists": 0.1607,
            "assist_rate": 0.1262,
            "assists": 0,
            "expected_goals": 0.1325,
            "goal_rate": 0.1472,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "rating": 7.114,
            "minutes": 84,
            "total_pass": 53,
            "accurate_pass": 46,
            "duels_won": 2,
            "total_long_balls": 3,
            "accurate_long_balls": 2,
            "total_own_half_passes": 23,
            "accurate_own_half_passes": 22,
            "total_opp_half_passes": 30,
            "accurate_opp_half_passes": 25,
            "crosses_total": 3,
            "crosses_accurate": 1,
            "touches": 64,
            "possession_lost": 10.4795,
            "dispossessed": 0.9242,
            "duels_lost": 3,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 1,
            "tackles_won": 0,
            "tackles": 1,
            "clearances": 1,
            "total_contest": 1,
            "won_contest": 0,
            "challenges_lost": 1,
            "fouls": 0,
            "fouls_drawn": 1,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.182,
            "ball_carries": 16,
            "total_progression": 49,
            "progressive_carries": 1,
            "shots_off_target": 1,
            "duel_xg_multiplier": 1.0234,
            "dribbles_attempted": 3,
            "dribbles_successful": 1.3,
            "crosses_attempted": 1.9,
            "duel_win_rate": 0.496,
            "pressing_faced": "LOW",
            "matchup_zone": "Left Wing vs Right Back — Flank Battle",
            "numerical_situation": "1v1",
            "opponent_defenders": "Yuri Berchiche",
            "opponent_faced": "Yuri Berchiche",
            "antagonist_source": "attacking_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.1241,
            "projected_assists": 0,
            "assist_probability": 0.1485,
            "finishing_factor": 1.0523,
            "creation_factor": 0.8139,
            "fifa_overall": 79.0
          },
          "latest_10_games": [
            {
              "match_id": 16421073.0,
              "match_date": "2026-10-18",
              "home_team": "Málaga CF",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 90,
                "rating": 7.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0977,
                "expected_assists": 0.2557,
                "total_shots": 2,
                "shots_on_target": 2,
                "total_pass": 99,
                "accurate_pass": 91,
                "key_pass": 3,
                "tackles": 1,
                "interceptions": 1,
                "duels_won": 1,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421067.0,
              "match_date": "2026-10-11",
              "home_team": "Real Sociedad",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 69,
                "rating": 6.8,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.0422,
                "expected_assists": 0.157,
                "total_shots": 1,
                "total_pass": 36,
                "accurate_pass": 31,
                "key_pass": 1,
                "interceptions": 1,
                "clearances": 1,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416297.0,
              "match_date": "2026-09-20",
              "home_team": "Valencia",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Valencia",
              "stats": {
                "minutes": 90,
                "rating": 8.2,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.9645,
                "expected_assists": 0.1993,
                "total_shots": 3,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 39,
                "accurate_pass": 35,
                "key_pass": 2,
                "tackles": 2,
                "interceptions": 1,
                "duels_won": 5,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416332.0,
              "match_date": "2026-09-13",
              "home_team": "Real Sociedad",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 78,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0152,
                "expected_assists": 0.0245,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 48,
                "accurate_pass": 40,
                "key_pass": 2,
                "duels_won": 1,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416319.0,
              "match_date": "2026-09-07",
              "home_team": "Elche",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Elche",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_assists": 0.2017,
                "total_shots": 0,
                "total_pass": 38,
                "accurate_pass": 35,
                "key_pass": 2,
                "interceptions": 1,
                "clearances": 1,
                "duels_won": 2,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416340.0,
              "match_date": "2026-09-03",
              "home_team": "Real Sociedad",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 8,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0153,
                "total_shots": 0,
                "total_pass": 4,
                "accurate_pass": 4,
                "key_pass": 2,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416310.0,
              "match_date": "2026-08-29",
              "home_team": "Real Sociedad",
              "away_team": "Espanyol",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.056,
                "expected_assists": 0.1916,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 49,
                "accurate_pass": 44,
                "key_pass": 3,
                "tackles": 1,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421051.0,
              "match_date": "2026-08-26",
              "home_team": "Real Madrid",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 24,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0174,
                "total_shots": 0,
                "total_pass": 23,
                "accurate_pass": 21,
                "tackles": 3,
                "tackles_won": 1,
                "clearances": 1,
                "duels_won": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416293.0,
              "match_date": "2026-08-21",
              "home_team": "Real Betis",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.028,
                "total_shots": 0,
                "total_pass": 62,
                "accurate_pass": 55,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "duels_won": 3,
                "ball_recovery": 8
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083719.0,
              "match_date": "2026-05-23",
              "home_team": "Espanyol",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 89,
                "rating": 6.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0189,
                "total_shots": 0,
                "total_pass": 47,
                "accurate_pass": 38,
                "tackles": 2,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 1664,
            "combined_rank_score": 675.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 392.0,
            "sofascore_rating": 6.9485,
            "sofascore_appearances": 33.0,
            "fifa_rank": 958.0,
            "fifa_overall": 79.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 3,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 7.114,
            "source_file": "data/player_rankings.csv",
            "player_name": "Carlos Soler",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Abderrahman Rebbach",
                  "ranking": 1659
                },
                {
                  "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
                }
              ],
              "lower": [
                {
                  "player_name": "Rodrigo Bentancur",
                  "ranking": 1665
                },
                {
                  "player_name": "Abdel Abqar",
                  "ranking": 1666
                },
                {
                  "player_name": "Sofyan Amrabat",
                  "ranking": 1667
                },
                {
                  "player_name": "Gang-han Lee",
                  "ranking": 1668
                },
                {
                  "player_name": "Choi Chi-ung",
                  "ranking": 1669
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.773,
          "history_matches": 42,
          "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": 42,
            "data_confidence": 0.773,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.9993,
            "fbref_prior_metrics": {
              "squad": "Real Sociedad",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 4.0,
              "starts": 2.0,
              "minutes": 208.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.43,
              "shots_on_target_pct": 0.0,
              "prior_reliability": 0.1533
            },
            "rationale": "XGBoost regressor (M_service) evaluated 42 historical appearances across 8 target models; FBref 2026-2027 prior blended (La Liga, Real Sociedad, rel: 0.15, 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.8761,
                "expected_assists": 0.1666,
                "assists": 0.1277,
                "assist_rate": 0.1277,
                "expected_goals": 0.1344,
                "goals": 0.1454,
                "goal_rate": 0.1454,
                "shots_on_target": 0.4431,
                "total_shots": 1.4617,
                "rating": 7.114,
                "minutes": 84.32,
                "total_pass": 52.725,
                "accurate_pass": 46.384,
                "duels_won": 1.9536,
                "total_long_balls": 2.9822,
                "accurate_long_balls": 1.995,
                "total_own_half_passes": 22.9949,
                "accurate_own_half_passes": 21.6766,
                "total_opp_half_passes": 29.7301,
                "accurate_opp_half_passes": 24.7074,
                "crosses_total": 2.9552,
                "crosses_accurate": 0.899,
                "touches": 64.1259,
                "possession_lost": 10.4868,
                "dispossessed": 0.9248,
                "duels_lost": 2.8754,
                "aerial_won": 0.1222,
                "aerial_lost": 0.3314,
                "interceptions": 0.6461,
                "tackles_won": 0.2837,
                "tackles": 0.8821,
                "clearances": 0.5653,
                "total_contest": 0.7404,
                "won_contest": 0.3762,
                "challenges_lost": 0.8489,
                "fouls": 0.4544,
                "fouls_drawn": 0.5731,
                "blocks": 0.1803,
                "big_chances_created": 0.3891,
                "big_chances_missed": 0.0729,
                "xgot": 0.1845,
                "ball_carries": 15.7508,
                "total_progression": 49.2051,
                "progressive_carries": 0.669,
                "shots_off_target": 1.0186
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 7,
                  "trained_at": "2026-11-01T11:27:07.750726+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 905,
                    "rows": 25067
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Málaga CF",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1502,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-10-11",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 69.0,
                    "is_starting": true,
                    "weight": 0.1276,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Valencia",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1085,
                    "rating": 8.2
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Atlético Madrid",
                    "minutes": 78.0,
                    "is_starting": true,
                    "weight": 0.0922,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Elche",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0784,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-09-03",
                    "opponent": "Celta Vigo",
                    "minutes": 8.0,
                    "is_starting": false,
                    "weight": 0.0666,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-08-29",
                    "opponent": "Espanyol",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0566,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-08-26",
                    "opponent": "Real Madrid",
                    "minutes": 24.0,
                    "is_starting": false,
                    "weight": 0.0481,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-21",
                    "opponent": "Real Betis",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0409,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-05-23",
                    "opponent": "Espanyol",
                    "minutes": 89.0,
                    "is_starting": true,
                    "weight": 0.0348,
                    "rating": 6.1
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 1.0,
                  "totalShots": 1.1089,
                  "creative_index": 0.7704,
                  "expectedGoals": 0.1465,
                  "expectedAssists": 0.1395,
                  "keyPass": 1.7167
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 1.876090407371521,
                    "model_output": 1.8761,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1578
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1373
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0712
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0516
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0289
                      }
                    ],
                    "decomposition": {
                      "base": 0.8902,
                      "items": [
                        {
                          "name": "creative_index",
                          "contribution": 0.1467
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1654
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.1368
                        },
                        {
                          "name": "totalCross",
                          "contribution": 0.0865
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.0892
                        }
                      ],
                      "others": 0.3613,
                      "total": 1.8761,
                      "log_link": true,
                      "margin_base": -0.116298,
                      "item_margins": [
                        {
                          "name": "creative_index",
                          "margin": 0.152521
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.148042
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.107759
                        },
                        {
                          "name": "totalCross",
                          "margin": 0.062586
                        },
                        {
                          "name": "keyPass",
                          "margin": 0.060709
                        }
                      ],
                      "others_margin": 0.213871
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.1665746420621872,
                    "model_output": 0.1666,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1181
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.1136
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.1034
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0572
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0473
                      }
                    ],
                    "decomposition": {
                      "base": 0.0847,
                      "items": [
                        {
                          "name": "totalCross",
                          "contribution": 0.0125
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.014
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0157
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.0076
                        },
                        {
                          "name": "goalAssist",
                          "contribution": 0.006
                        }
                      ],
                      "others": 0.0261,
                      "total": 0.1666,
                      "log_link": true,
                      "margin_base": -2.468924,
                      "item_margins": [
                        {
                          "name": "totalCross",
                          "margin": 0.137576
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.134356
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.132399
                        },
                        {
                          "name": "keyPass",
                          "margin": 0.058482
                        },
                        {
                          "name": "goalAssist",
                          "margin": 0.043808
                        }
                      ],
                      "others_margin": 0.16999
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.1277046501636505,
                    "model_output": 0.1277,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0627
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0445
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0417
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0324
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0293
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "keyPass",
                          "contribution": 0.0108
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0092
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0082
                        },
                        {
                          "name": "totalCross",
                          "contribution": 0.0059
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0056
                        }
                      ],
                      "others": 0.0029,
                      "total": 0.1277,
                      "log_link": true,
                      "margin_base": -2.463472,
                      "item_margins": [
                        {
                          "name": "keyPass",
                          "margin": 0.119298
                        },
                        {
                          "name": "creative_index",
                          "margin": 0.091307
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.075478
                        },
                        {
                          "name": "totalCross",
                          "margin": 0.050451
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.045993
                        }
                      ],
                      "others_margin": 0.022911
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.13437525928020477,
                    "model_output": 0.1344,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedGoals",
                        "importance": 0.1255
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0756
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0438
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0265
                      }
                    ],
                    "decomposition": {
                      "base": 0.0918,
                      "items": [
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0252
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0131
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0059
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.0055
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.0034
                        }
                      ],
                      "others": 0.0013,
                      "total": 0.1344,
                      "log_link": true,
                      "margin_base": -2.387963,
                      "item_margins": [
                        {
                          "name": "expectedGoals",
                          "margin": 0.242348
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.106138
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.046077
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": 0.04356
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": 0.025562
                        }
                      ],
                      "others_margin": 0.009311
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.14537467062473297,
                    "model_output": 0.1454,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0923
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.067
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.041
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0334
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.0946,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0172
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0185
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0132
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.0095
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0056
                        }
                      ],
                      "others": -0.002,
                      "total": 0.1454,
                      "log_link": true,
                      "margin_base": -2.358385,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.167462
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.153223
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.096387
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": 0.063926
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.037439
                        }
                      ],
                      "others_margin": -0.013615
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.44309455156326294,
                    "model_output": 0.4431,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.117
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0884
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0772
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0315
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0258
                      }
                    ],
                    "decomposition": {
                      "base": 0.3179,
                      "items": [
                        {
                          "name": "expectedGoals",
                          "contribution": 0.047
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.047
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0477
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0145
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": -0.0115
                        }
                      ],
                      "others": 0.0095,
                      "total": 0.4431,
                      "log_link": true,
                      "margin_base": -1.146086,
                      "item_margins": [
                        {
                          "name": "expectedGoals",
                          "margin": 0.138004
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.121078
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.109649
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.032149
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": -0.026141
                        }
                      ],
                      "others_margin": 0.021671
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.461709976196289,
                    "model_output": 1.4617,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1349
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1208
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0462
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.044
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0312
                      }
                    ],
                    "decomposition": {
                      "base": 0.9849,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1651
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.1017
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.0564
                        },
                        {
                          "name": "wonTackle",
                          "contribution": 0.0554
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.0427
                        }
                      ],
                      "others": 0.0555,
                      "total": 1.4617,
                      "log_link": false,
                      "margin_base": 0.984935,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.165094
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.101729
                        },
                        {
                          "name": "keyPass",
                          "margin": 0.056352
                        },
                        {
                          "name": "wonTackle",
                          "margin": 0.055426
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": 0.042667
                        }
                      ],
                      "others_margin": 0.055507
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 7.113968849182129,
                    "model_output": 7.114,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "rating",
                        "importance": 0.0864
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0749
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0486
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0482
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 6.8574,
                      "items": [
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.1009
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0351
                        },
                        {
                          "name": "rating",
                          "contribution": 0.0223
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0174
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": 0.0172
                        }
                      ],
                      "others": 0.0637,
                      "total": 7.114,
                      "log_link": false,
                      "margin_base": 6.857404,
                      "item_margins": [
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.10093
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.035145
                        },
                        {
                          "name": "rating",
                          "margin": 0.022279
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.01735
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": 0.017151
                        }
                      ],
                      "others_margin": 0.063711
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 42,
                  "role_matches": 33,
                  "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.9993, quality 0.482)",
              "stats": {
                "key_pass": 1.8748,
                "expected_assists": 0.1665,
                "assists": 0.1276,
                "assist_rate": 0.1276,
                "expected_goals": 0.1343,
                "goals": 0.1453,
                "goal_rate": 0.1453,
                "shots_on_target": 0.4428,
                "total_shots": 1.4607,
                "rating": 7.114,
                "minutes": 84.32,
                "total_pass": 52.6881,
                "accurate_pass": 46.3515,
                "duels_won": 1.9522,
                "total_long_balls": 2.9801,
                "accurate_long_balls": 1.9936,
                "total_own_half_passes": 22.9788,
                "accurate_own_half_passes": 21.6614,
                "total_opp_half_passes": 29.7093,
                "accurate_opp_half_passes": 24.6901,
                "crosses_total": 2.9531,
                "crosses_accurate": 0.8984,
                "touches": 64.081,
                "possession_lost": 10.4795,
                "dispossessed": 0.9242,
                "duels_lost": 2.8734,
                "aerial_won": 0.1221,
                "aerial_lost": 0.3312,
                "interceptions": 0.6456,
                "tackles_won": 0.2835,
                "tackles": 0.8815,
                "clearances": 0.5649,
                "total_contest": 0.7399,
                "won_contest": 0.3759,
                "challenges_lost": 0.8483,
                "fouls": 0.4541,
                "fouls_drawn": 0.5727,
                "blocks": 0.1802,
                "big_chances_created": 0.3888,
                "big_chances_missed": 0.0728,
                "xgot": 0.1844,
                "ball_carries": 15.7398,
                "total_progression": 49.1707,
                "progressive_carries": 0.6685,
                "shots_off_target": 1.0179
              },
              "params": {
                "market_value_eur": 6600000,
                "quality_factor": 0.4818,
                "boost_factor": 0.9993,
                "reference_quality": 0.505,
                "history_matches": 42,
                "history_shrink": 0.1064,
                "market_value_known": true
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0106)",
              "stats": {
                "key_pass": 1.8748,
                "expected_assists": 0.1665,
                "assists": 0.1262,
                "assist_rate": 0.1262,
                "expected_goals": 0.1343,
                "goals": 0.1438,
                "goal_rate": 0.1438,
                "shots_on_target": 0.4381,
                "total_shots": 1.4495,
                "rating": 7.114,
                "minutes": 84.32,
                "total_pass": 52.6881,
                "accurate_pass": 46.3515,
                "duels_won": 1.9522,
                "total_long_balls": 2.9801,
                "accurate_long_balls": 1.9936,
                "total_own_half_passes": 22.9788,
                "accurate_own_half_passes": 21.6614,
                "total_opp_half_passes": 29.7093,
                "accurate_opp_half_passes": 24.6901,
                "crosses_total": 2.952,
                "crosses_accurate": 0.8984,
                "touches": 64.081,
                "possession_lost": 10.4795,
                "dispossessed": 0.9242,
                "duels_lost": 2.8734,
                "aerial_won": 0.1221,
                "aerial_lost": 0.3312,
                "interceptions": 0.6474,
                "tackles_won": 0.2934,
                "tackles": 0.8815,
                "clearances": 0.5649,
                "total_contest": 0.7399,
                "won_contest": 0.3759,
                "challenges_lost": 0.8483,
                "fouls": 0.4493,
                "fouls_drawn": 0.5709,
                "blocks": 0.1802,
                "big_chances_created": 0.3888,
                "big_chances_missed": 0.0728,
                "xgot": 0.1844,
                "ball_carries": 15.7398,
                "total_progression": 49.1707,
                "progressive_carries": 0.6685,
                "shots_off_target": 1.0179
              },
              "params": {
                "blend_weight": 0.0106,
                "history_matches": 42,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.9369,
                "prior_reliability": 0.1533,
                "competition": "La Liga",
                "squad": "Real Sociedad"
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 1.4607,
                  "after": 1.4495
                },
                {
                  "stat": "wonTackle",
                  "before": 0.2835,
                  "after": 0.2934
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1.8748,
                "expected_assists": 0.1665,
                "assists": 0.1262,
                "assist_rate": 0.1262,
                "expected_goals": 0.1343,
                "goals": 0.1438,
                "goal_rate": 0.1438,
                "shots_on_target": 0.4381,
                "total_shots": 1.456,
                "rating": 7.114,
                "minutes": 84.32,
                "total_pass": 52.6881,
                "accurate_pass": 46.3515,
                "duels_won": 1.9522,
                "total_long_balls": 2.9801,
                "accurate_long_balls": 1.9936,
                "total_own_half_passes": 22.9788,
                "accurate_own_half_passes": 21.6614,
                "total_opp_half_passes": 29.7093,
                "accurate_opp_half_passes": 24.6901,
                "crosses_total": 2.952,
                "crosses_accurate": 0.8984,
                "touches": 64.081,
                "possession_lost": 10.4795,
                "dispossessed": 0.9242,
                "duels_lost": 2.8734,
                "aerial_won": 0.1221,
                "aerial_lost": 0.3312,
                "interceptions": 0.6474,
                "tackles_won": 0.2934,
                "tackles": 0.8815,
                "clearances": 0.5649,
                "total_contest": 0.7399,
                "won_contest": 0.3759,
                "challenges_lost": 0.8483,
                "fouls": 0.4493,
                "fouls_drawn": 0.5709,
                "blocks": 0.1802,
                "big_chances_created": 0.3888,
                "big_chances_missed": 0.0728,
                "xgot": 0.1844,
                "ball_carries": 15.7398,
                "total_progression": 49.1707,
                "progressive_carries": 0.6685,
                "shots_off_target": 1.0179
              },
              "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.8748,
                "expected_assists": 0.1665,
                "assists": 0.1262,
                "assist_rate": 0.1262,
                "expected_goals": 0.1374,
                "goals": 0.1472,
                "goal_rate": 0.1472,
                "shots_on_target": 0.4484,
                "total_shots": 1.4901,
                "rating": 7.114,
                "minutes": 84.32,
                "total_pass": 52.6881,
                "accurate_pass": 46.3515,
                "duels_won": 1.9522,
                "total_long_balls": 2.9801,
                "accurate_long_balls": 1.9936,
                "total_own_half_passes": 22.9788,
                "accurate_own_half_passes": 21.6614,
                "total_opp_half_passes": 29.7093,
                "accurate_opp_half_passes": 24.6901,
                "crosses_total": 2.952,
                "crosses_accurate": 0.8984,
                "touches": 64.081,
                "possession_lost": 10.4795,
                "dispossessed": 0.9242,
                "duels_lost": 2.8734,
                "aerial_won": 1.1,
                "aerial_lost": 0.3312,
                "interceptions": 0.6474,
                "tackles_won": 0.2934,
                "tackles": 0.8815,
                "clearances": 0.5649,
                "total_contest": 0.7399,
                "won_contest": 0.3759,
                "challenges_lost": 0.8483,
                "fouls": 0.4493,
                "fouls_drawn": 0.5709,
                "blocks": 0.1802,
                "big_chances_created": 0.3888,
                "big_chances_missed": 0.0745,
                "xgot": 0.1887,
                "ball_carries": 15.7398,
                "total_progression": 49.1707,
                "progressive_carries": 0.6685,
                "shots_off_target": 1.0417,
                "duel_xg_multiplier": 1.0234,
                "dribbles_attempted": 3.0,
                "dribbles_successful": 1.3,
                "crosses_attempted": 1.9,
                "duel_win_rate": 0.496,
                "pressing_faced": "LOW",
                "matchup_zone": "Left Wing vs Right Back — Flank Battle",
                "numerical_situation": "1v1",
                "opponent_defenders": "Yuri Berchiche",
                "opponent_faced": "Yuri Berchiche",
                "antagonist_source": "attacking_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Yuri Berchiche",
                  "matchup_zone": "Left Wing vs Right Back — Flank Battle",
                  "duel_win_rate": 0.496,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v1",
                  "xg_multiplier": 1.0234,
                  "skill_edge": 0.0199,
                  "height_edge": -0.004,
                  "attacker_skill": 0.4818,
                  "defender_skill": 0.4374,
                  "attacker_role": "LW",
                  "attacker_mv_price_index": 1.0,
                  "defender_adjusted_parts": [
                    {
                      "player": "Yuri Berchiche",
                      "market_value": 910000,
                      "role": "RB",
                      "price_index": 0.7,
                      "adjusted_quality": 0.4374
                    }
                  ],
                  "xg_override": 0.1374
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.1221,
                  "after": 1.1
                },
                {
                  "stat": "totalShots",
                  "before": 1.456,
                  "after": 1.4901
                },
                {
                  "stat": "shotOffTarget",
                  "before": 1.0179,
                  "after": 1.0417
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.4381,
                  "after": 0.4484
                }
              ]
            },
            {
              "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.8748,
                "expected_assists": 0.1665,
                "assist_rate": 0.1262,
                "assists": 0,
                "expected_goals": 0.1374,
                "goal_rate": 0.1472,
                "goals": 0,
                "shots_on_target": 0.4484,
                "total_shots": 1.4901,
                "rating": 7.114,
                "minutes": 84.32,
                "total_pass": 52.6881,
                "accurate_pass": 46.3515,
                "duels_won": 1.9522,
                "total_long_balls": 2.9801,
                "accurate_long_balls": 1.9936,
                "total_own_half_passes": 22.9788,
                "accurate_own_half_passes": 21.6614,
                "total_opp_half_passes": 29.7093,
                "accurate_opp_half_passes": 24.6901,
                "crosses_total": 2.952,
                "crosses_accurate": 0.8984,
                "touches": 64.081,
                "possession_lost": 10.4795,
                "dispossessed": 0.9242,
                "duels_lost": 2.8734,
                "aerial_won": 1.1,
                "aerial_lost": 0.3312,
                "interceptions": 0.6474,
                "tackles_won": 0.2934,
                "tackles": 0.8815,
                "clearances": 0.5649,
                "total_contest": 0.7399,
                "won_contest": 0.3759,
                "challenges_lost": 0.8483,
                "fouls": 0.4493,
                "fouls_drawn": 0.5709,
                "blocks": 0.1802,
                "big_chances_created": 0.3888,
                "big_chances_missed": 0.0745,
                "xgot": 0.1887,
                "ball_carries": 15.7398,
                "total_progression": 49.1707,
                "progressive_carries": 0.6685,
                "shots_off_target": 1.0417,
                "duel_xg_multiplier": 1.0234,
                "dribbles_attempted": 3.0,
                "dribbles_successful": 1.3,
                "crosses_attempted": 1.9,
                "duel_win_rate": 0.496,
                "pressing_faced": "LOW",
                "matchup_zone": "Left Wing vs Right Back — Flank Battle",
                "numerical_situation": "1v1",
                "opponent_defenders": "Yuri Berchiche",
                "opponent_faced": "Yuri Berchiche",
                "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.25 (squad xG sum 1.3010, xG scale 0.9646, xA scale 0.9646, team xA 0.85 = 0.67 x lambda)",
              "stats": {
                "key_pass": 1.8748,
                "expected_assists": 0.1607,
                "assist_rate": 0.1262,
                "assists": 0,
                "expected_goals": 0.1325,
                "goal_rate": 0.1472,
                "goals": 0,
                "shots_on_target": 0.4484,
                "total_shots": 1.4901,
                "rating": 7.114,
                "minutes": 84.32,
                "total_pass": 52.6881,
                "accurate_pass": 46.3515,
                "duels_won": 1.9522,
                "total_long_balls": 2.9801,
                "accurate_long_balls": 1.9936,
                "total_own_half_passes": 22.9788,
                "accurate_own_half_passes": 21.6614,
                "total_opp_half_passes": 29.7093,
                "accurate_opp_half_passes": 24.6901,
                "crosses_total": 2.952,
                "crosses_accurate": 0.8984,
                "touches": 64.081,
                "possession_lost": 10.4795,
                "dispossessed": 0.9242,
                "duels_lost": 2.8734,
                "aerial_won": 1.1,
                "aerial_lost": 0.3312,
                "interceptions": 0.6474,
                "tackles_won": 0.2934,
                "tackles": 0.8815,
                "clearances": 0.5649,
                "total_contest": 0.7399,
                "won_contest": 0.3759,
                "challenges_lost": 0.8483,
                "fouls": 0.4493,
                "fouls_drawn": 0.5709,
                "blocks": 0.1802,
                "big_chances_created": 0.3888,
                "big_chances_missed": 0.0745,
                "xgot": 0.182,
                "ball_carries": 15.7398,
                "total_progression": 49.1707,
                "progressive_carries": 0.6685,
                "shots_off_target": 1.0417,
                "duel_xg_multiplier": 1.0234,
                "dribbles_attempted": 3.0,
                "dribbles_successful": 1.3,
                "crosses_attempted": 1.9,
                "duel_win_rate": 0.496,
                "pressing_faced": "LOW",
                "matchup_zone": "Left Wing vs Right Back — Flank Battle",
                "numerical_situation": "1v1",
                "opponent_defenders": "Yuri Berchiche",
                "opponent_faced": "Yuri Berchiche",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0523,
                "creation_factor": 0.8139
              },
              "params": {
                "team_lambda": 1.255,
                "squad_xg_sum": 1.301,
                "squad_xa_sum": 0.8767,
                "team_expected_assists": 0.8457,
                "team_xa_to_xg_ratio": 0.6739,
                "bench_appearance_weighted": true,
                "xg_scale": 0.9646,
                "xa_scale": 0.9646,
                "opponent_lambda": 1.729,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_assists",
                  "before": 0.1665,
                  "after": 0.1607
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 79.0)",
              "stats": {
                "key_pass": 1.8748,
                "expected_assists": 0.1607,
                "assist_rate": 0.1262,
                "assists": 0,
                "expected_goals": 0.1325,
                "goal_rate": 0.1472,
                "goals": 0,
                "shots_on_target": 0.4484,
                "total_shots": 1.4901,
                "rating": 7.114,
                "minutes": 84.32,
                "total_pass": 52.6881,
                "accurate_pass": 46.3515,
                "duels_won": 1.9522,
                "total_long_balls": 2.9801,
                "accurate_long_balls": 1.9936,
                "total_own_half_passes": 22.9788,
                "accurate_own_half_passes": 21.6614,
                "total_opp_half_passes": 29.7093,
                "accurate_opp_half_passes": 24.6901,
                "crosses_total": 2.952,
                "crosses_accurate": 0.8984,
                "touches": 64.081,
                "possession_lost": 10.4795,
                "dispossessed": 0.9242,
                "duels_lost": 2.8734,
                "aerial_won": 1.1,
                "aerial_lost": 0.3312,
                "interceptions": 0.6474,
                "tackles_won": 0.2934,
                "tackles": 0.8815,
                "clearances": 0.5649,
                "total_contest": 0.7399,
                "won_contest": 0.3759,
                "challenges_lost": 0.8483,
                "fouls": 0.4493,
                "fouls_drawn": 0.5709,
                "blocks": 0.1802,
                "big_chances_created": 0.3888,
                "big_chances_missed": 0.0745,
                "xgot": 0.182,
                "ball_carries": 15.7398,
                "total_progression": 49.1707,
                "progressive_carries": 0.6685,
                "shots_off_target": 1.0417,
                "duel_xg_multiplier": 1.0234,
                "dribbles_attempted": 3.0,
                "dribbles_successful": 1.3,
                "crosses_attempted": 1.9,
                "duel_win_rate": 0.496,
                "pressing_faced": "LOW",
                "matchup_zone": "Left Wing vs Right Back — Flank Battle",
                "numerical_situation": "1v1",
                "opponent_defenders": "Yuri Berchiche",
                "opponent_faced": "Yuri Berchiche",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0523,
                "creation_factor": 0.8139,
                "fifa_overall": 79.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": 1664,
                "fifa_rank": 958.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 79.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.8748,
                "expected_assists": 0.1607,
                "assist_rate": 0.1262,
                "assists": 0,
                "expected_goals": 0.1325,
                "goal_rate": 0.1472,
                "goals": 0,
                "shots_on_target": 0.4484,
                "total_shots": 1.4901,
                "rating": 7.114,
                "minutes": 84.32,
                "total_pass": 52.6881,
                "accurate_pass": 46.3515,
                "duels_won": 1.9522,
                "total_long_balls": 2.9801,
                "accurate_long_balls": 1.9936,
                "total_own_half_passes": 22.9788,
                "accurate_own_half_passes": 21.6614,
                "total_opp_half_passes": 29.7093,
                "accurate_opp_half_passes": 24.6901,
                "crosses_total": 2.952,
                "crosses_accurate": 0.8984,
                "touches": 64.081,
                "possession_lost": 10.4795,
                "dispossessed": 0.9242,
                "duels_lost": 2.8734,
                "aerial_won": 1.1,
                "aerial_lost": 0.3312,
                "interceptions": 0.6474,
                "tackles_won": 0.2934,
                "tackles": 0.8815,
                "clearances": 0.5649,
                "total_contest": 0.7399,
                "won_contest": 0.3759,
                "challenges_lost": 0.8483,
                "fouls": 0.4493,
                "fouls_drawn": 0.5709,
                "blocks": 0.1802,
                "big_chances_created": 0.3888,
                "big_chances_missed": 0.0745,
                "xgot": 0.182,
                "ball_carries": 15.7398,
                "total_progression": 49.1707,
                "progressive_carries": 0.6685,
                "shots_off_target": 1.0417,
                "duel_xg_multiplier": 1.0234,
                "dribbles_attempted": 3.0,
                "dribbles_successful": 1.3,
                "crosses_attempted": 1.9,
                "duel_win_rate": 0.496,
                "pressing_faced": "LOW",
                "matchup_zone": "Left Wing vs Right Back — Flank Battle",
                "numerical_situation": "1v1",
                "opponent_defenders": "Yuri Berchiche",
                "opponent_faced": "Yuri Berchiche",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.1241,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0523,
                "creation_factor": 0.8139,
                "fifa_overall": 79.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.1241,
                "goal_rate": 0.1472,
                "scorer_weight": 0.1394,
                "squad_weight_total": 1.3959,
                "weight_share": 0.0999,
                "finishing_factor": 1.0523,
                "appearance_weight": 1.0,
                "weight_rank": 4,
                "eligible_players": 14,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Mikel Oyarzabal",
                    "weight": 0.3544,
                    "already": 0,
                    "effective_weight": 0.3544,
                    "runner_up": "Gonçalo Guedes",
                    "runner_up_effective_weight": 0.2684
                  }
                ]
              }
            },
            {
              "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.8748,
                "expected_assists": 0.1607,
                "assist_rate": 0.1262,
                "assists": 0,
                "expected_goals": 0.1325,
                "goal_rate": 0.1472,
                "goals": 0,
                "shots_on_target": 0.4484,
                "total_shots": 1.4901,
                "rating": 7.114,
                "minutes": 84.32,
                "total_pass": 52.6881,
                "accurate_pass": 46.3515,
                "duels_won": 1.9522,
                "total_long_balls": 2.9801,
                "accurate_long_balls": 1.9936,
                "total_own_half_passes": 22.9788,
                "accurate_own_half_passes": 21.6614,
                "total_opp_half_passes": 29.7093,
                "accurate_opp_half_passes": 24.6901,
                "crosses_total": 2.952,
                "crosses_accurate": 0.8984,
                "touches": 64.081,
                "possession_lost": 10.4795,
                "dispossessed": 0.9242,
                "duels_lost": 2.8734,
                "aerial_won": 1.1,
                "aerial_lost": 0.3312,
                "interceptions": 0.6474,
                "tackles_won": 0.2934,
                "tackles": 0.8815,
                "clearances": 0.5649,
                "total_contest": 0.7399,
                "won_contest": 0.3759,
                "challenges_lost": 0.8483,
                "fouls": 0.4493,
                "fouls_drawn": 0.5709,
                "blocks": 0.1802,
                "big_chances_created": 0.3888,
                "big_chances_missed": 0.0745,
                "xgot": 0.182,
                "ball_carries": 15.7398,
                "total_progression": 49.1707,
                "progressive_carries": 0.6685,
                "shots_off_target": 1.0417,
                "duel_xg_multiplier": 1.0234,
                "dribbles_attempted": 3.0,
                "dribbles_successful": 1.3,
                "crosses_attempted": 1.9,
                "duel_win_rate": 0.496,
                "pressing_faced": "LOW",
                "matchup_zone": "Left Wing vs Right Back — Flank Battle",
                "numerical_situation": "1v1",
                "opponent_defenders": "Yuri Berchiche",
                "opponent_faced": "Yuri Berchiche",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.1241,
                "projected_assists": 0,
                "assist_probability": 0.1485,
                "finishing_factor": 1.0523,
                "creation_factor": 0.8139,
                "fifa_overall": 79.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.1485,
                "assist_rate": 0.1262,
                "provider_weight": 0.1308,
                "squad_weight_total": 0.8785,
                "weight_share": 0.1489,
                "creation_factor": 0.8139,
                "appearance_weight": 1.0,
                "weight_rank": 2,
                "eligible_players": 14,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Gonçalo Guedes",
                    "weight": 0.1642,
                    "already": 0,
                    "effective_weight": 0.1642,
                    "runner_up": "Carlos Soler",
                    "runner_up_effective_weight": 0.1308,
                    "blocked_own_goal": [
                      "Mikel Oyarzabal"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Gonçalo Guedes": {
          "player_id": 280979,
          "position": "F",
          "position_depth": "F",
          "is_starter": true,
          "shirt_number": 11,
          "height": 179,
          "market_value": 5700000,
          "stats": {
            "expected_goals": 0.2147,
            "goal_rate": 0.2943,
            "goals": 0,
            "shots_on_target": 1,
            "total_shots": 2,
            "expected_assists": 0.1314,
            "key_pass": 2,
            "rating": 7.0177,
            "minutes": 76,
            "total_pass": 26,
            "accurate_pass": 22,
            "duels_won": 3,
            "total_long_balls": 2,
            "accurate_long_balls": 2,
            "total_opp_half_passes": 20,
            "accurate_opp_half_passes": 16,
            "crosses_total": 2,
            "crosses_accurate": 0,
            "touches": 44,
            "possession_lost": 11.9598,
            "dispossessed": 1.5349,
            "duels_lost": 6,
            "aerial_lost": 1,
            "total_contest": 2,
            "won_contest": 1,
            "ball_recovery": 3,
            "challenges_lost": 1,
            "fouls": 1,
            "fouls_drawn": 1,
            "assist_rate": 0.2343,
            "assists": 1,
            "interceptions": 1,
            "tackles_won": 0,
            "tackles": 1,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.2105,
            "offsides": 1,
            "ball_carries": 14,
            "total_progression": 55,
            "progressive_carries": 2,
            "shots_off_target": 1,
            "duel_xg_multiplier": 0.865,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.3,
            "aerial_won": 2,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.18,
            "pressing_faced": "LOW",
            "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "numerical_situation": "1v2",
            "opponent_defenders": "Aymeric Laporte, Dani Vivian",
            "opponent_faced": "Aymeric Laporte, Dani Vivian",
            "antagonist_source": "attacking_duel",
            "projected_goals": 0,
            "goal_probability": 0.1932,
            "projected_assists": 1,
            "assist_probability": 0.1231,
            "finishing_factor": 1.25,
            "creation_factor": 1.25,
            "fifa_overall": 81.0
          },
          "latest_10_games": [
            {
              "match_id": 16421086.0,
              "match_date": "2026-10-25",
              "home_team": "Real Sociedad",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 85,
                "rating": 6.3,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.8881,
                "expected_assists": 0.263,
                "total_shots": 4,
                "shots_on_target": 0,
                "shots_off_target": 4,
                "total_pass": 39,
                "accurate_pass": 33,
                "key_pass": 4,
                "tackles": 0,
                "tackles_won": 0,
                "interceptions": 3,
                "clearances": 0,
                "aerial_won": 0,
                "duels_won": 1,
                "ball_recovery": 6,
                "saves": 0
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421073.0,
              "match_date": "2026-10-18",
              "home_team": "Málaga CF",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 29,
                "rating": 7.8,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.2936,
                "expected_assists": 0.0831,
                "total_shots": 3,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 13,
                "accurate_pass": 11,
                "key_pass": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421067.0,
              "match_date": "2026-10-11",
              "home_team": "Real Sociedad",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 56,
                "rating": 7.5,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1542,
                "expected_assists": 0.0096,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 18,
                "accurate_pass": 15,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416297.0,
              "match_date": "2026-09-20",
              "home_team": "Valencia",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Valencia",
              "stats": {
                "minutes": 90,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1485,
                "expected_assists": 0.0956,
                "total_shots": 3,
                "shots_on_target": 1,
                "total_pass": 27,
                "accurate_pass": 23,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "duels_won": 7,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416332.0,
              "match_date": "2026-09-13",
              "home_team": "Real Sociedad",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 72,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0216,
                "expected_assists": 0.0284,
                "total_shots": 1,
                "total_pass": 35,
                "accurate_pass": 29,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 6,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416319.0,
              "match_date": "2026-09-07",
              "home_team": "Elche",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Elche",
              "stats": {
                "minutes": 58,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0199,
                "expected_assists": 0.05,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 15,
                "accurate_pass": 13,
                "key_pass": 1,
                "tackles": 1,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416340.0,
              "match_date": "2026-09-03",
              "home_team": "Real Sociedad",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 19,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0406,
                "expected_assists": 0.035,
                "total_shots": 2,
                "shots_off_target": 1,
                "total_pass": 3,
                "accurate_pass": 3,
                "duels_won": 3,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416310.0,
              "match_date": "2026-08-29",
              "home_team": "Real Sociedad",
              "away_team": "Espanyol",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 12,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.3407,
                "expected_assists": 0.0364,
                "total_shots": 3,
                "shots_on_target": 3,
                "total_pass": 5,
                "accurate_pass": 4,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421051.0,
              "match_date": "2026-08-26",
              "home_team": "Real Madrid",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 16,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.033,
                "expected_assists": 0.0501,
                "total_shots": 1,
                "total_pass": 10,
                "accurate_pass": 9,
                "key_pass": 1,
                "tackles": 1,
                "duels_won": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083687.0,
              "match_date": "2026-05-17",
              "home_team": "Real Sociedad",
              "away_team": "Valencia",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Valencia",
              "stats": {
                "minutes": 11,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0081,
                "total_shots": 0,
                "total_pass": 7,
                "accurate_pass": 4,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 1,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 961,
            "combined_rank_score": 481.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 445.0,
            "sofascore_rating": 6.9,
            "sofascore_appearances": 32.0,
            "fifa_rank": 517.0,
            "fifa_overall": 81.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 5,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 7.0177,
            "source_file": "data/player_rankings.csv",
            "player_name": "Gonçalo Guedes",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Eduardo Camavinga",
                  "ranking": 956
                },
                {
                  "player_name": "Giuliano Simeone",
                  "ranking": 957
                },
                {
                  "player_name": "Gerónimo Rulli",
                  "ranking": 958
                },
                {
                  "player_name": "Mohamed Simakan",
                  "ranking": 959
                },
                {
                  "player_name": "Nico González",
                  "ranking": 960
                }
              ],
              "lower": [
                {
                  "player_name": "Samuel Klein",
                  "ranking": 962
                },
                {
                  "player_name": "Dani Ceballos",
                  "ranking": 963
                },
                {
                  "player_name": "Han-been Yang",
                  "ranking": 964
                },
                {
                  "player_name": "Alexsey Kozlov",
                  "ranking": 965
                },
                {
                  "player_name": "Ji-hun Cho",
                  "ranking": 966
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.756,
          "history_matches": 41,
          "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": 41,
            "data_confidence": 0.756,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.9989,
            "fbref_prior_metrics": {
              "squad": "Real Sociedad",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 0.0,
              "minutes": 50.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 10.8,
              "shots_on_target_pct": 50.0,
              "prior_reliability": 0.04
            },
            "rationale": "XGBoost regressor (F_service) evaluated 41 historical appearances across 7 target models; FBref 2026-2027 prior blended (La Liga, Real Sociedad, rel: 0.04, 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.2576,
                "goals": 0.3415,
                "goal_rate": 0.3415,
                "shots_on_target": 0.803,
                "total_shots": 2.1084,
                "expected_assists": 0.1363,
                "key_pass": 1.5405,
                "rating": 7.0177,
                "minutes": 75.76,
                "total_pass": 26.468,
                "accurate_pass": 21.6671,
                "duels_won": 3.2526,
                "total_long_balls": 1.9927,
                "accurate_long_balls": 1.5355,
                "total_opp_half_passes": 19.7039,
                "accurate_opp_half_passes": 15.8191,
                "crosses_total": 1.7058,
                "crosses_accurate": 0.2552,
                "touches": 43.632,
                "possession_lost": 11.973,
                "dispossessed": 1.5366,
                "duels_lost": 5.7028,
                "aerial_lost": 1.1068,
                "total_contest": 1.8629,
                "won_contest": 0.8637,
                "ball_recovery": 3.3077,
                "challenges_lost": 1.1108,
                "fouls": 0.9627,
                "fouls_drawn": 1.329,
                "assists": 0.2353,
                "assist_rate": 0.2353,
                "interceptions": 0.6005,
                "tackles_won": 0.4938,
                "tackles": 0.816,
                "clearances": 0.2134,
                "blocks": 0.0,
                "big_chances_created": 0.3141,
                "big_chances_missed": 0.3966,
                "xgot": 0.2525,
                "offsides": 0.7228,
                "ball_carries": 14.0781,
                "total_progression": 54.8188,
                "progressive_carries": 2.3912,
                "shots_off_target": 1.3054
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 6,
                  "trained_at": "2026-11-01T11:27:41.685145+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 612,
                    "rows": 17180
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-25",
                    "opponent": "Levante UD",
                    "minutes": 85.0,
                    "is_starting": true,
                    "weight": 0.1502,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Málaga CF",
                    "minutes": 29.0,
                    "is_starting": false,
                    "weight": 0.1277,
                    "rating": 7.8
                  },
                  {
                    "match_date": "2026-10-11",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 56.0,
                    "is_starting": true,
                    "weight": 0.1085,
                    "rating": 7.5
                  },
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Valencia",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0922,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Atlético Madrid",
                    "minutes": 72.0,
                    "is_starting": true,
                    "weight": 0.0784,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Elche",
                    "minutes": 58.0,
                    "is_starting": true,
                    "weight": 0.0666,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-09-03",
                    "opponent": "Celta Vigo",
                    "minutes": 19.0,
                    "is_starting": false,
                    "weight": 0.0566,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-08-29",
                    "opponent": "Espanyol",
                    "minutes": 12.0,
                    "is_starting": false,
                    "weight": 0.0481,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-08-26",
                    "opponent": "Real Madrid",
                    "minutes": 16.0,
                    "is_starting": false,
                    "weight": 0.0409,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-05-17",
                    "opponent": "Valencia",
                    "minutes": 11.0,
                    "is_starting": false,
                    "weight": 0.0348,
                    "rating": 6.6
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 1.0,
                  "accuratePass": 17.3399,
                  "expectedGoals": 0.2551,
                  "accurateOppositionHalfPasses": 12.6281,
                  "totalShots": 2.2047,
                  "totalOppositionHalfPasses": 15.5232
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.2576274275779724,
                    "model_output": 0.2576,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2767
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0987
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.036
                      },
                      {
                        "name": "goals",
                        "importance": 0.0336
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0236
                      }
                    ],
                    "decomposition": {
                      "base": 0.1929,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0671
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.035
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.017
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0143
                        },
                        {
                          "name": "aerialLost",
                          "contribution": -0.0098
                        }
                      ],
                      "others": 0.0037,
                      "total": 0.2576,
                      "log_link": true,
                      "margin_base": -1.645586,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.298454
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.126455
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": -0.059506
                        },
                        {
                          "name": "ballRecovery",
                          "margin": -0.052699
                        },
                        {
                          "name": "aerialLost",
                          "margin": -0.037739
                        }
                      ],
                      "others_margin": 0.014381
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.3415340483188629,
                    "model_output": 0.3415,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1491
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0805
                      },
                      {
                        "name": "goals",
                        "importance": 0.056
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0343
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 0.1972,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0736
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0378
                        },
                        {
                          "name": "goals",
                          "contribution": 0.0186
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": 0.0169
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0154
                        }
                      ],
                      "others": 0.0128,
                      "total": 0.3415,
                      "log_link": true,
                      "margin_base": -1.623746,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.317156
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.130853
                        },
                        {
                          "name": "goals",
                          "margin": 0.058376
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": 0.050357
                        },
                        {
                          "name": "ballRecovery",
                          "margin": -0.045826
                        }
                      ],
                      "others_margin": 0.038523
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.8029871582984924,
                    "model_output": 0.803,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2173
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0637
                      },
                      {
                        "name": "goals",
                        "importance": 0.0596
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0393
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 0.5269,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1817
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0622
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0601
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0289
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": 0.0202
                        }
                      ],
                      "others": 0.0432,
                      "total": 0.803,
                      "log_link": true,
                      "margin_base": -0.640773,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.296282
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.08412
                        },
                        {
                          "name": "ballRecovery",
                          "margin": -0.081187
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.039806
                        },
                        {
                          "name": "totalShots_p90",
                          "margin": 0.02695
                        }
                      ],
                      "others_margin": 0.055385
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 2.1083528995513916,
                    "model_output": 2.1084,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.3005
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0627
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0526
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0309
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0307
                      }
                    ],
                    "decomposition": {
                      "base": 1.3756,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.4788
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.1687
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0543
                        },
                        {
                          "name": "goals",
                          "contribution": 0.0406
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0351
                        }
                      ],
                      "others": 0.0639,
                      "total": 2.1084,
                      "log_link": false,
                      "margin_base": 1.375643,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.478799
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.16867
                        },
                        {
                          "name": "ballRecovery",
                          "margin": -0.054329
                        },
                        {
                          "name": "goals",
                          "margin": 0.040585
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.03514
                        }
                      ],
                      "others_margin": 0.063846
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.1363067775964737,
                    "model_output": 0.1363,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.1287
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1119
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0634
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0522
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.051
                      }
                    ],
                    "decomposition": {
                      "base": 0.065,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0151
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": 0.0118
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0108
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0093
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0045
                        }
                      ],
                      "others": 0.0198,
                      "total": 0.1363,
                      "log_link": true,
                      "margin_base": -2.733324,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.20837
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": 0.137448
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.110769
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.086985
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.039355
                        }
                      ],
                      "others_margin": 0.157548
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 1.5405497550964355,
                    "model_output": 1.5405,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1579
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1341
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0953
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.069
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0295
                      }
                    ],
                    "decomposition": {
                      "base": 0.6917,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1773
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0966
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": 0.1067
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.0649
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0547
                        }
                      ],
                      "others": 0.3486,
                      "total": 1.5405,
                      "log_link": true,
                      "margin_base": -0.368585,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.228242
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.105388
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": 0.104799
                        },
                        {
                          "name": "keyPass",
                          "margin": 0.058738
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.047006
                        }
                      ],
                      "others_margin": 0.25655
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 7.017702579498291,
                    "model_output": 7.0177,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0495
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.048
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0462
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0455
                      },
                      {
                        "name": "rating",
                        "importance": 0.0455
                      }
                    ],
                    "decomposition": {
                      "base": 6.7733,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0715
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0344
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0187
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": 0.0184
                        },
                        {
                          "name": "bigChanceMissed",
                          "contribution": 0.0168
                        }
                      ],
                      "others": 0.0846,
                      "total": 7.0177,
                      "log_link": false,
                      "margin_base": 6.773334,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.071469
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.034388
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.018675
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": 0.018402
                        },
                        {
                          "name": "bigChanceMissed",
                          "margin": 0.01678
                        }
                      ],
                      "others_margin": 0.084655
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 41,
                  "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.9989, quality 0.471)",
              "stats": {
                "expected_goals": 0.2573,
                "goals": 0.3412,
                "goal_rate": 0.3412,
                "shots_on_target": 0.8021,
                "total_shots": 2.1061,
                "expected_assists": 0.1362,
                "key_pass": 1.5389,
                "rating": 7.0177,
                "minutes": 75.76,
                "total_pass": 26.4389,
                "accurate_pass": 21.6433,
                "duels_won": 3.249,
                "total_long_balls": 1.9905,
                "accurate_long_balls": 1.5338,
                "total_opp_half_passes": 19.6822,
                "accurate_opp_half_passes": 15.8017,
                "crosses_total": 1.7039,
                "crosses_accurate": 0.2549,
                "touches": 43.584,
                "possession_lost": 11.9598,
                "dispossessed": 1.5349,
                "duels_lost": 5.6965,
                "aerial_lost": 1.1056,
                "total_contest": 1.8609,
                "won_contest": 0.8627,
                "ball_recovery": 3.3041,
                "challenges_lost": 1.1096,
                "fouls": 0.9616,
                "fouls_drawn": 1.3275,
                "assists": 0.235,
                "assist_rate": 0.235,
                "interceptions": 0.5998,
                "tackles_won": 0.4933,
                "tackles": 0.8151,
                "clearances": 0.2132,
                "blocks": 0.0,
                "big_chances_created": 0.3138,
                "big_chances_missed": 0.3962,
                "xgot": 0.2522,
                "offsides": 0.722,
                "ball_carries": 14.0626,
                "total_progression": 54.7585,
                "progressive_carries": 2.3886,
                "shots_off_target": 1.304
              },
              "params": {
                "market_value_eur": 5700000,
                "quality_factor": 0.4708,
                "boost_factor": 0.9989,
                "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.0028)",
              "stats": {
                "expected_goals": 0.2573,
                "goals": 0.3402,
                "goal_rate": 0.3402,
                "shots_on_target": 0.8127,
                "total_shots": 2.1258,
                "expected_assists": 0.1362,
                "key_pass": 1.5389,
                "rating": 7.0177,
                "minutes": 75.76,
                "total_pass": 26.4389,
                "accurate_pass": 21.6433,
                "duels_won": 3.249,
                "total_long_balls": 1.9905,
                "accurate_long_balls": 1.5338,
                "total_opp_half_passes": 19.6822,
                "accurate_opp_half_passes": 15.8017,
                "crosses_total": 1.703,
                "crosses_accurate": 0.2549,
                "touches": 43.584,
                "possession_lost": 11.9598,
                "dispossessed": 1.5349,
                "duels_lost": 5.6965,
                "aerial_lost": 1.1056,
                "total_contest": 1.8609,
                "won_contest": 0.8627,
                "ball_recovery": 3.3041,
                "challenges_lost": 1.1096,
                "fouls": 0.9589,
                "fouls_drawn": 1.3277,
                "assists": 0.2343,
                "assist_rate": 0.2343,
                "interceptions": 0.5981,
                "tackles_won": 0.4959,
                "tackles": 0.8151,
                "clearances": 0.2132,
                "blocks": 0.0,
                "big_chances_created": 0.3138,
                "big_chances_missed": 0.3962,
                "xgot": 0.2522,
                "offsides": 0.72,
                "ball_carries": 14.0626,
                "total_progression": 54.7585,
                "progressive_carries": 2.3886,
                "shots_off_target": 1.304
              },
              "params": {
                "blend_weight": 0.0028,
                "history_matches": 41,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.8418,
                "prior_reliability": 0.04,
                "competition": "La Liga",
                "squad": "Real Sociedad"
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 2.1061,
                  "after": 2.1258
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.8021,
                  "after": 0.8127
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.2573,
                "goals": 0.3402,
                "goal_rate": 0.3402,
                "shots_on_target": 0.8127,
                "total_shots": 2.1258,
                "expected_assists": 0.1362,
                "key_pass": 1.5389,
                "rating": 7.0177,
                "minutes": 75.76,
                "total_pass": 26.4389,
                "accurate_pass": 21.6433,
                "duels_won": 3.249,
                "total_long_balls": 1.9905,
                "accurate_long_balls": 1.5338,
                "total_opp_half_passes": 19.6822,
                "accurate_opp_half_passes": 15.8017,
                "crosses_total": 1.703,
                "crosses_accurate": 0.2549,
                "touches": 43.584,
                "possession_lost": 11.9598,
                "dispossessed": 1.5349,
                "duels_lost": 5.6965,
                "aerial_lost": 1.1056,
                "total_contest": 1.8609,
                "won_contest": 0.8627,
                "ball_recovery": 3.3041,
                "challenges_lost": 1.1096,
                "fouls": 0.9589,
                "fouls_drawn": 1.3277,
                "assists": 0.2343,
                "assist_rate": 0.2343,
                "interceptions": 0.5981,
                "tackles_won": 0.4959,
                "tackles": 0.8151,
                "clearances": 0.2132,
                "blocks": 0.0,
                "big_chances_created": 0.3138,
                "big_chances_missed": 0.3962,
                "xgot": 0.2522,
                "offsides": 0.72,
                "ball_carries": 14.0626,
                "total_progression": 54.7585,
                "progressive_carries": 2.3886,
                "shots_off_target": 1.304
              },
              "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.2226,
                "goals": 0.2943,
                "goal_rate": 0.2943,
                "shots_on_target": 0.703,
                "total_shots": 1.8388,
                "expected_assists": 0.1362,
                "key_pass": 1.5389,
                "rating": 7.0177,
                "minutes": 75.76,
                "total_pass": 26.4389,
                "accurate_pass": 21.6433,
                "duels_won": 3.249,
                "total_long_balls": 1.9905,
                "accurate_long_balls": 1.5338,
                "total_opp_half_passes": 19.6822,
                "accurate_opp_half_passes": 15.8017,
                "crosses_total": 1.703,
                "crosses_accurate": 0.2549,
                "touches": 43.584,
                "possession_lost": 11.9598,
                "dispossessed": 1.5349,
                "duels_lost": 5.6965,
                "aerial_lost": 1.1056,
                "total_contest": 1.8609,
                "won_contest": 0.8627,
                "ball_recovery": 3.3041,
                "challenges_lost": 1.1096,
                "fouls": 0.9589,
                "fouls_drawn": 1.3277,
                "assists": 0.2343,
                "assist_rate": 0.2343,
                "interceptions": 0.5981,
                "tackles_won": 0.4959,
                "tackles": 0.8151,
                "clearances": 0.2132,
                "blocks": 0.0,
                "big_chances_created": 0.3138,
                "big_chances_missed": 0.3427,
                "xgot": 0.2182,
                "offsides": 0.72,
                "ball_carries": 14.0626,
                "total_progression": 54.7585,
                "progressive_carries": 2.3886,
                "shots_off_target": 1.128,
                "duel_xg_multiplier": 0.865,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.5,
                "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": "Aymeric Laporte, Dani Vivian",
                "opponent_faced": "Aymeric Laporte, Dani Vivian",
                "antagonist_source": "attacking_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Aymeric Laporte, Dani Vivian",
                  "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.865,
                  "skill_edge": -0.0598,
                  "height_edge": -0.032,
                  "attacker_skill": 0.4708,
                  "defender_skill": 0.6037,
                  "attacker_role": "ST",
                  "attacker_mv_price_index": 1.0,
                  "defender_adjusted_parts": [
                    {
                      "player": "Aymeric Laporte",
                      "market_value": 8400000,
                      "role": "CB",
                      "price_index": 0.75,
                      "adjusted_quality": 0.5365
                    },
                    {
                      "player": "Dani Vivian",
                      "market_value": 18200000,
                      "role": "CB",
                      "price_index": 0.75,
                      "adjusted_quality": 0.6709
                    }
                  ],
                  "xg_override": 0.2226
                }
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 2.1258,
                  "after": 1.8388
                },
                {
                  "stat": "shotOffTarget",
                  "before": 1.304,
                  "after": 1.128
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.8127,
                  "after": 0.703
                },
                {
                  "stat": "bigChanceMissed",
                  "before": 0.3962,
                  "after": 0.3427
                },
                {
                  "stat": "goals",
                  "before": 0.3402,
                  "after": 0.2943
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.2573,
                  "after": 0.2226
                },
                {
                  "stat": "expectedGoalsOnTarget",
                  "before": 0.2522,
                  "after": 0.2182
                }
              ]
            },
            {
              "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.2226,
                "goal_rate": 0.2943,
                "goals": 0,
                "shots_on_target": 0.703,
                "total_shots": 1.8388,
                "expected_assists": 0.1362,
                "key_pass": 1.5389,
                "rating": 7.0177,
                "minutes": 75.76,
                "total_pass": 26.4389,
                "accurate_pass": 21.6433,
                "duels_won": 3.249,
                "total_long_balls": 1.9905,
                "accurate_long_balls": 1.5338,
                "total_opp_half_passes": 19.6822,
                "accurate_opp_half_passes": 15.8017,
                "crosses_total": 1.703,
                "crosses_accurate": 0.2549,
                "touches": 43.584,
                "possession_lost": 11.9598,
                "dispossessed": 1.5349,
                "duels_lost": 5.6965,
                "aerial_lost": 1.1056,
                "total_contest": 1.8609,
                "won_contest": 0.8627,
                "ball_recovery": 3.3041,
                "challenges_lost": 1.1096,
                "fouls": 0.9589,
                "fouls_drawn": 1.3277,
                "assist_rate": 0.2343,
                "assists": 0,
                "interceptions": 0.5981,
                "tackles_won": 0.4959,
                "tackles": 0.8151,
                "clearances": 0.2132,
                "blocks": 0.0,
                "big_chances_created": 0.3138,
                "big_chances_missed": 0.3427,
                "xgot": 0.2182,
                "offsides": 0.72,
                "ball_carries": 14.0626,
                "total_progression": 54.7585,
                "progressive_carries": 2.3886,
                "shots_off_target": 1.128,
                "duel_xg_multiplier": 0.865,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.5,
                "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": "Aymeric Laporte, Dani Vivian",
                "opponent_faced": "Aymeric Laporte, Dani Vivian",
                "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.25 (squad xG sum 1.3010, xG scale 0.9646, xA scale 0.9646, team xA 0.85 = 0.67 x lambda)",
              "stats": {
                "expected_goals": 0.2147,
                "goal_rate": 0.2943,
                "goals": 0,
                "shots_on_target": 0.703,
                "total_shots": 1.8388,
                "expected_assists": 0.1314,
                "key_pass": 1.5389,
                "rating": 7.0177,
                "minutes": 75.76,
                "total_pass": 26.4389,
                "accurate_pass": 21.6433,
                "duels_won": 3.249,
                "total_long_balls": 1.9905,
                "accurate_long_balls": 1.5338,
                "total_opp_half_passes": 19.6822,
                "accurate_opp_half_passes": 15.8017,
                "crosses_total": 1.703,
                "crosses_accurate": 0.2549,
                "touches": 43.584,
                "possession_lost": 11.9598,
                "dispossessed": 1.5349,
                "duels_lost": 5.6965,
                "aerial_lost": 1.1056,
                "total_contest": 1.8609,
                "won_contest": 0.8627,
                "ball_recovery": 3.3041,
                "challenges_lost": 1.1096,
                "fouls": 0.9589,
                "fouls_drawn": 1.3277,
                "assist_rate": 0.2343,
                "assists": 0,
                "interceptions": 0.5981,
                "tackles_won": 0.4959,
                "tackles": 0.8151,
                "clearances": 0.2132,
                "blocks": 0.0,
                "big_chances_created": 0.3138,
                "big_chances_missed": 0.3427,
                "xgot": 0.2105,
                "offsides": 0.72,
                "ball_carries": 14.0626,
                "total_progression": 54.7585,
                "progressive_carries": 2.3886,
                "shots_off_target": 1.128,
                "duel_xg_multiplier": 0.865,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.5,
                "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": "Aymeric Laporte, Dani Vivian",
                "opponent_faced": "Aymeric Laporte, Dani Vivian",
                "antagonist_source": "attacking_duel",
                "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": 1.255,
                "squad_xg_sum": 1.301,
                "squad_xa_sum": 0.8767,
                "team_expected_assists": 0.8457,
                "team_xa_to_xg_ratio": 0.6739,
                "bench_appearance_weighted": true,
                "xg_scale": 0.9646,
                "xa_scale": 0.9646,
                "opponent_lambda": 1.729,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.2226,
                  "after": 0.2147
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 81.0)",
              "stats": {
                "expected_goals": 0.2147,
                "goal_rate": 0.2943,
                "goals": 0,
                "shots_on_target": 0.703,
                "total_shots": 1.8388,
                "expected_assists": 0.1314,
                "key_pass": 1.5389,
                "rating": 7.0177,
                "minutes": 75.76,
                "total_pass": 26.4389,
                "accurate_pass": 21.6433,
                "duels_won": 3.249,
                "total_long_balls": 1.9905,
                "accurate_long_balls": 1.5338,
                "total_opp_half_passes": 19.6822,
                "accurate_opp_half_passes": 15.8017,
                "crosses_total": 1.703,
                "crosses_accurate": 0.2549,
                "touches": 43.584,
                "possession_lost": 11.9598,
                "dispossessed": 1.5349,
                "duels_lost": 5.6965,
                "aerial_lost": 1.1056,
                "total_contest": 1.8609,
                "won_contest": 0.8627,
                "ball_recovery": 3.3041,
                "challenges_lost": 1.1096,
                "fouls": 0.9589,
                "fouls_drawn": 1.3277,
                "assist_rate": 0.2343,
                "assists": 0,
                "interceptions": 0.5981,
                "tackles_won": 0.4959,
                "tackles": 0.8151,
                "clearances": 0.2132,
                "blocks": 0.0,
                "big_chances_created": 0.3138,
                "big_chances_missed": 0.3427,
                "xgot": 0.2105,
                "offsides": 0.72,
                "ball_carries": 14.0626,
                "total_progression": 54.7585,
                "progressive_carries": 2.3886,
                "shots_off_target": 1.128,
                "duel_xg_multiplier": 0.865,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.5,
                "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": "Aymeric Laporte, Dani Vivian",
                "opponent_faced": "Aymeric Laporte, Dani Vivian",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 1.25,
                "fifa_overall": 81.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": 961,
                "fifa_rank": 517.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 81.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.2147,
                "goal_rate": 0.2943,
                "goals": 0,
                "shots_on_target": 0.703,
                "total_shots": 1.8388,
                "expected_assists": 0.1314,
                "key_pass": 1.5389,
                "rating": 7.0177,
                "minutes": 75.76,
                "total_pass": 26.4389,
                "accurate_pass": 21.6433,
                "duels_won": 3.249,
                "total_long_balls": 1.9905,
                "accurate_long_balls": 1.5338,
                "total_opp_half_passes": 19.6822,
                "accurate_opp_half_passes": 15.8017,
                "crosses_total": 1.703,
                "crosses_accurate": 0.2549,
                "touches": 43.584,
                "possession_lost": 11.9598,
                "dispossessed": 1.5349,
                "duels_lost": 5.6965,
                "aerial_lost": 1.1056,
                "total_contest": 1.8609,
                "won_contest": 0.8627,
                "ball_recovery": 3.3041,
                "challenges_lost": 1.1096,
                "fouls": 0.9589,
                "fouls_drawn": 1.3277,
                "assist_rate": 0.2343,
                "assists": 0,
                "interceptions": 0.5981,
                "tackles_won": 0.4959,
                "tackles": 0.8151,
                "clearances": 0.2132,
                "blocks": 0.0,
                "big_chances_created": 0.3138,
                "big_chances_missed": 0.3427,
                "xgot": 0.2105,
                "offsides": 0.72,
                "ball_carries": 14.0626,
                "total_progression": 54.7585,
                "progressive_carries": 2.3886,
                "shots_off_target": 1.128,
                "duel_xg_multiplier": 0.865,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.5,
                "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": "Aymeric Laporte, Dani Vivian",
                "opponent_faced": "Aymeric Laporte, Dani Vivian",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.1932,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 1.25,
                "fifa_overall": 81.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.1932,
                "goal_rate": 0.2943,
                "scorer_weight": 0.2684,
                "squad_weight_total": 1.3959,
                "weight_share": 0.1923,
                "finishing_factor": 1.25,
                "appearance_weight": 1.0,
                "weight_rank": 2,
                "eligible_players": 14,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Mikel Oyarzabal",
                    "weight": 0.3544,
                    "already": 0,
                    "effective_weight": 0.3544,
                    "runner_up": "Gonçalo Guedes",
                    "runner_up_effective_weight": 0.2684
                  }
                ]
              }
            },
            {
              "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.2147,
                "goal_rate": 0.2943,
                "goals": 0,
                "shots_on_target": 0.703,
                "total_shots": 1.8388,
                "expected_assists": 0.1314,
                "key_pass": 1.5389,
                "rating": 7.0177,
                "minutes": 75.76,
                "total_pass": 26.4389,
                "accurate_pass": 21.6433,
                "duels_won": 3.249,
                "total_long_balls": 1.9905,
                "accurate_long_balls": 1.5338,
                "total_opp_half_passes": 19.6822,
                "accurate_opp_half_passes": 15.8017,
                "crosses_total": 1.703,
                "crosses_accurate": 0.2549,
                "touches": 43.584,
                "possession_lost": 11.9598,
                "dispossessed": 1.5349,
                "duels_lost": 5.6965,
                "aerial_lost": 1.1056,
                "total_contest": 1.8609,
                "won_contest": 0.8627,
                "ball_recovery": 3.3041,
                "challenges_lost": 1.1096,
                "fouls": 0.9589,
                "fouls_drawn": 1.3277,
                "assist_rate": 0.2343,
                "assists": 1,
                "interceptions": 0.5981,
                "tackles_won": 0.4959,
                "tackles": 0.8151,
                "clearances": 0.2132,
                "blocks": 0.0,
                "big_chances_created": 0.3138,
                "big_chances_missed": 0.3427,
                "xgot": 0.2105,
                "offsides": 0.72,
                "ball_carries": 14.0626,
                "total_progression": 54.7585,
                "progressive_carries": 2.3886,
                "shots_off_target": 1.128,
                "duel_xg_multiplier": 0.865,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.3,
                "aerial_won": 1.5,
                "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": "Aymeric Laporte, Dani Vivian",
                "opponent_faced": "Aymeric Laporte, Dani Vivian",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.1932,
                "projected_assists": 1,
                "assist_probability": 0.1231,
                "finishing_factor": 1.25,
                "creation_factor": 1.25,
                "fifa_overall": 81.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 1,
                "assist_probability": 0.1231,
                "assist_rate": 0.2343,
                "provider_weight": 0.1642,
                "squad_weight_total": 0.8785,
                "weight_share": 0.187,
                "creation_factor": 1.25,
                "appearance_weight": 1.0,
                "weight_rank": 1,
                "eligible_players": 14,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Gonçalo Guedes",
                    "weight": 0.1642,
                    "already": 0,
                    "effective_weight": 0.1642,
                    "runner_up": "Carlos Soler",
                    "runner_up_effective_weight": 0.1308,
                    "blocked_own_goal": [
                      "Mikel Oyarzabal"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Mikel Oyarzabal": {
          "player_id": 823622,
          "position": "F",
          "position_depth": "F",
          "is_starter": true,
          "shirt_number": 10,
          "height": 181,
          "market_value": 27000000,
          "stats": {
            "expected_goals": 0.2835,
            "goal_rate": 0.4099,
            "goals": 1,
            "shots_on_target": 1,
            "total_shots": 2,
            "expected_assists": 0.1092,
            "key_pass": 1,
            "rating": 7.1229,
            "minutes": 82,
            "total_pass": 31,
            "accurate_pass": 26,
            "duels_won": 4,
            "total_long_balls": 1,
            "accurate_long_balls": 1,
            "total_opp_half_passes": 20,
            "accurate_opp_half_passes": 15,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 45,
            "possession_lost": 10.7206,
            "dispossessed": 1.3487,
            "duels_lost": 4,
            "aerial_lost": 1,
            "total_contest": 1,
            "won_contest": 1,
            "ball_recovery": 3,
            "challenges_lost": 1,
            "fouls": 1,
            "fouls_drawn": 1,
            "assist_rate": 0.1255,
            "assists": 0,
            "interceptions": 0,
            "tackles_won": 1,
            "tackles": 1,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.2801,
            "offsides": 0,
            "ball_carries": 15,
            "total_progression": 67,
            "progressive_carries": 3,
            "shots_off_target": 1,
            "duel_xg_multiplier": 1.0246,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.4,
            "aerial_won": 2,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.217,
            "pressing_faced": "LOW",
            "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "numerical_situation": "1v2",
            "opponent_defenders": "Aymeric Laporte, Dani Vivian",
            "opponent_faced": "Aymeric Laporte, Dani Vivian",
            "antagonist_source": "attacking_duel",
            "projected_goals": 1,
            "goal_probability": 0.2469,
            "projected_assists": 0,
            "assist_probability": 0.1034,
            "finishing_factor": 1.25,
            "creation_factor": 1.0754,
            "fifa_overall": 90.0
          },
          "latest_10_games": [
            {
              "match_id": 16421086.0,
              "match_date": "2026-10-25",
              "home_team": "Real Sociedad",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 90,
                "rating": 7.2,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0249,
                "expected_assists": 0.0337,
                "total_shots": 1,
                "shots_on_target": 0,
                "shots_off_target": 1,
                "total_pass": 39,
                "accurate_pass": 34,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 0,
                "clearances": 0,
                "aerial_won": 0,
                "duels_won": 4,
                "ball_recovery": 2,
                "saves": 0
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421073.0,
              "match_date": "2026-10-18",
              "home_team": "Málaga CF",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 90,
                "rating": 9.3,
                "goal_rate": 2.0,
                "goals": 2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.3536,
                "expected_assists": 0.1865,
                "total_shots": 5,
                "shots_on_target": 3,
                "total_pass": 60,
                "accurate_pass": 53,
                "key_pass": 1,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421067.0,
              "match_date": "2026-10-11",
              "home_team": "Real Sociedad",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 34,
                "rating": 7.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.8269,
                "expected_assists": 0.0634,
                "total_shots": 3,
                "shots_on_target": 1,
                "total_pass": 6,
                "accurate_pass": 6,
                "tackles": 1,
                "tackles_won": 1,
                "aerial_won": 1,
                "duels_won": 5,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416297.0,
              "match_date": "2026-09-20",
              "home_team": "Valencia",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Valencia",
              "stats": {
                "minutes": 61,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.5377,
                "expected_assists": 0.1525,
                "total_shots": 3,
                "shots_on_target": 1,
                "shots_off_target": 2,
                "total_pass": 12,
                "accurate_pass": 10,
                "key_pass": 4,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416332.0,
              "match_date": "2026-09-13",
              "home_team": "Real Sociedad",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 79,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0366,
                "expected_assists": 0.0379,
                "total_shots": 1,
                "total_pass": 23,
                "accurate_pass": 18,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 1,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416319.0,
              "match_date": "2026-09-07",
              "home_team": "Elche",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Elche",
              "stats": {
                "minutes": 70,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.09,
                "total_shots": 0,
                "total_pass": 22,
                "accurate_pass": 18,
                "tackles": 1,
                "tackles_won": 1,
                "aerial_won": 2,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416340.0,
              "match_date": "2026-09-03",
              "home_team": "Real Sociedad",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1853,
                "expected_assists": 0.0318,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 32,
                "accurate_pass": 24,
                "key_pass": 1,
                "tackles": 1,
                "aerial_won": 1,
                "duels_won": 5,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416310.0,
              "match_date": "2026-08-29",
              "home_team": "Real Sociedad",
              "away_team": "Espanyol",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 89,
                "rating": 7.3,
                "assist_rate": 2.0,
                "assists": 2,
                "expected_goals": 0.1597,
                "expected_assists": 0.4623,
                "total_shots": 4,
                "shots_on_target": 2,
                "total_pass": 27,
                "accurate_pass": 18,
                "key_pass": 2,
                "aerial_won": 1,
                "duels_won": 5,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421051.0,
              "match_date": "2026-08-26",
              "home_team": "Real Madrid",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 57,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1764,
                "expected_assists": 0.0268,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 26,
                "accurate_pass": 21,
                "key_pass": 1,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416293.0,
              "match_date": "2026-08-21",
              "home_team": "Real Betis",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 32,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0735,
                "total_shots": 0,
                "total_pass": 17,
                "accurate_pass": 15,
                "key_pass": 1,
                "interceptions": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 31,
            "combined_rank_score": 26.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 40.0,
            "sofascore_rating": 7.8667,
            "sofascore_appearances": 6.0,
            "fifa_rank": 13.0,
            "fifa_overall": 90.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 1,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 7.1229,
            "source_file": "data/player_rankings.csv",
            "player_name": "Mikel Oyarzabal",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Joshua Kimmich",
                  "ranking": 26
                },
                {
                  "player_name": "Ljupche Doriev",
                  "ranking": 27
                },
                {
                  "player_name": "Rafael Romo",
                  "ranking": 28
                },
                {
                  "player_name": "Michael Olise",
                  "ranking": 29
                },
                {
                  "player_name": "Marko Arnautović",
                  "ranking": 30
                }
              ],
              "lower": [
                {
                  "player_name": "Vitinha",
                  "ranking": 32
                },
                {
                  "player_name": "Fermín López",
                  "ranking": 33
                },
                {
                  "player_name": "Bianneider Tamayo",
                  "ranking": 34
                },
                {
                  "player_name": "Virgil van Dijk",
                  "ranking": 35
                },
                {
                  "player_name": "Remo Freuler",
                  "ranking": 36
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.78,
          "history_matches": 44,
          "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": 44,
            "data_confidence": 0.78,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0058,
            "fbref_prior_metrics": {
              "squad": "Real Sociedad",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 4.0,
              "starts": 3.0,
              "minutes": 268.0,
              "goals_per90": 0.0,
              "assists_per90": 0.6666666666666666,
              "shots_per90": 2.35,
              "shots_on_target_pct": 57.1,
              "prior_reliability": 0.2
            },
            "rationale": "XGBoost regressor (F_service) evaluated 44 historical appearances across 7 target models; FBref 2026-2027 prior blended (La Liga, Real Sociedad, rel: 0.20, gls/90: 0.0, ast/90: 0.6666666666666666)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.285,
                "goals": 0.4032,
                "goal_rate": 0.4032,
                "shots_on_target": 0.8892,
                "total_shots": 2.2779,
                "expected_assists": 0.1126,
                "key_pass": 1.412,
                "rating": 7.1229,
                "minutes": 81.82,
                "total_pass": 31.2789,
                "accurate_pass": 25.7058,
                "duels_won": 3.6427,
                "total_long_balls": 1.1148,
                "accurate_long_balls": 0.6762,
                "total_opp_half_passes": 19.7316,
                "accurate_opp_half_passes": 15.1389,
                "crosses_total": 0.3631,
                "crosses_accurate": 0.0702,
                "touches": 44.8967,
                "possession_lost": 10.6588,
                "dispossessed": 1.3409,
                "duels_lost": 4.324,
                "aerial_lost": 0.7608,
                "total_contest": 1.3591,
                "won_contest": 0.6234,
                "ball_recovery": 3.0575,
                "challenges_lost": 0.7591,
                "fouls": 0.8761,
                "fouls_drawn": 1.2718,
                "assists": 0.1183,
                "assist_rate": 0.1183,
                "interceptions": 0.2582,
                "tackles_won": 0.7311,
                "tackles": 0.8601,
                "clearances": 0.2189,
                "blocks": 0.0186,
                "big_chances_created": 0.2536,
                "big_chances_missed": 0.4816,
                "xgot": 0.2818,
                "offsides": 0.0949,
                "ball_carries": 15.3494,
                "total_progression": 66.78,
                "progressive_carries": 3.1485,
                "shots_off_target": 1.3887
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 6,
                  "trained_at": "2026-11-01T11:27:41.685145+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 612,
                    "rows": 17180
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-25",
                    "opponent": "Levante UD",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1501,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Málaga CF",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1276,
                    "rating": 9.3
                  },
                  {
                    "match_date": "2026-10-11",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 34.0,
                    "is_starting": false,
                    "weight": 0.1085,
                    "rating": 7.6
                  },
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Valencia",
                    "minutes": 61.0,
                    "is_starting": true,
                    "weight": 0.0922,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Atlético Madrid",
                    "minutes": 79.0,
                    "is_starting": true,
                    "weight": 0.0784,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Elche",
                    "minutes": 70.0,
                    "is_starting": true,
                    "weight": 0.0666,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-09-03",
                    "opponent": "Celta Vigo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0566,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-08-29",
                    "opponent": "Espanyol",
                    "minutes": 89.0,
                    "is_starting": true,
                    "weight": 0.0481,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-08-26",
                    "opponent": "Real Madrid",
                    "minutes": 57.0,
                    "is_starting": true,
                    "weight": 0.0409,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-08-21",
                    "opponent": "Real Betis",
                    "minutes": 32.0,
                    "is_starting": false,
                    "weight": 0.0348,
                    "rating": 6.4
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 1.0,
                  "accuratePass": 23.1376,
                  "expectedGoals": 0.2824,
                  "accurateOppositionHalfPasses": 13.6591,
                  "totalShots": 2.0874,
                  "totalOppositionHalfPasses": 17.5372
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.28500425815582275,
                    "model_output": 0.285,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2767
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0987
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.036
                      },
                      {
                        "name": "goals",
                        "importance": 0.0336
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0236
                      }
                    ],
                    "decomposition": {
                      "base": 0.1929,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0622
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0407
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0219
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0173
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0166
                        }
                      ],
                      "others": 0.0104,
                      "total": 0.285,
                      "log_link": true,
                      "margin_base": -1.645586,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.279372
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.147999
                        },
                        {
                          "name": "ballRecovery",
                          "margin": -0.076967
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.061152
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": -0.058669
                        }
                      ],
                      "others_margin": 0.037449
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.4031985402107239,
                    "model_output": 0.4032,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1491
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0805
                      },
                      {
                        "name": "goals",
                        "importance": 0.056
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0343
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 0.1972,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0835
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.044
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0359
                        },
                        {
                          "name": "goals",
                          "contribution": 0.0248
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0184
                        }
                      ],
                      "others": 0.0362,
                      "total": 0.4032,
                      "log_link": true,
                      "margin_base": -1.623746,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.353227
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.145513
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.104914
                        },
                        {
                          "name": "goals",
                          "margin": 0.066513
                        },
                        {
                          "name": "ballRecovery",
                          "margin": -0.048814
                        }
                      ],
                      "others_margin": 0.094067
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.8891950845718384,
                    "model_output": 0.8892,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2173
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0637
                      },
                      {
                        "name": "goals",
                        "importance": 0.0596
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0393
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 0.5269,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1791
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0659
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.065
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0324
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.0336
                        }
                      ],
                      "others": 0.1181,
                      "total": 0.8892,
                      "log_link": true,
                      "margin_base": -0.640773,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.29258
                        },
                        {
                          "name": "ballRecovery",
                          "margin": -0.097919
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.096675
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.044975
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": 0.044613
                        }
                      ],
                      "others_margin": 0.14241
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 2.277848482131958,
                    "model_output": 2.2778,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.3005
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0627
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0526
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0309
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0307
                      }
                    ],
                    "decomposition": {
                      "base": 1.3756,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.5149
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.2132
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0931
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0591
                        },
                        {
                          "name": "rating",
                          "contribution": 0.0395
                        }
                      ],
                      "others": 0.1006,
                      "total": 2.2778,
                      "log_link": false,
                      "margin_base": 1.375643,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.514915
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.213193
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.093066
                        },
                        {
                          "name": "ballRecovery",
                          "margin": -0.059075
                        },
                        {
                          "name": "rating",
                          "margin": 0.039518
                        }
                      ],
                      "others_margin": 0.100589
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.11255931854248047,
                    "model_output": 0.1126,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.1287
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1119
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0634
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0522
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.051
                      }
                    ],
                    "decomposition": {
                      "base": 0.065,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0113
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": 0.0125
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0102
                        },
                        {
                          "name": "aerial_dominance",
                          "contribution": -0.0093
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.0041
                        }
                      ],
                      "others": 0.0188,
                      "total": 0.1126,
                      "log_link": true,
                      "margin_base": -2.733324,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.160779
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": 0.151381
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.108208
                        },
                        {
                          "name": "aerial_dominance",
                          "margin": -0.098546
                        },
                        {
                          "name": "totalPass",
                          "margin": 0.045198
                        }
                      ],
                      "others_margin": 0.18203
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 1.4119529724121094,
                    "model_output": 1.412,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1579
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1341
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0953
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.069
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0295
                      }
                    ],
                    "decomposition": {
                      "base": 0.6917,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1712
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.1035
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": 0.1148
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.1148
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.0542
                        }
                      ],
                      "others": 0.1618,
                      "total": 1.412,
                      "log_link": true,
                      "margin_base": -0.368585,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": 0.221161
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.11328
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": 0.112258
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.100922
                        },
                        {
                          "name": "keyPass",
                          "margin": 0.044298
                        }
                      ],
                      "others_margin": 0.121641
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 7.122947692871094,
                    "model_output": 7.1229,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0495
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.048
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0462
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0455
                      },
                      {
                        "name": "rating",
                        "importance": 0.0455
                      }
                    ],
                    "decomposition": {
                      "base": 6.7733,
                      "items": [
                        {
                          "name": "rating",
                          "contribution": 0.1094
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0798
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0642
                        },
                        {
                          "name": "aerial_dominance",
                          "contribution": -0.0295
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.029
                        }
                      ],
                      "others": 0.0967,
                      "total": 7.1229,
                      "log_link": false,
                      "margin_base": 6.773334,
                      "item_margins": [
                        {
                          "name": "rating",
                          "margin": 0.109423
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.079822
                        },
                        {
                          "name": "is_starting_11",
                          "margin": 0.064229
                        },
                        {
                          "name": "aerial_dominance",
                          "margin": -0.029541
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.029002
                        }
                      ],
                      "others_margin": 0.09668
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "starter",
                  "history_matches": 44,
                  "role_matches": 38,
                  "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.0058, quality 0.694)",
              "stats": {
                "expected_goals": 0.2867,
                "goals": 0.4055,
                "goal_rate": 0.4055,
                "shots_on_target": 0.8944,
                "total_shots": 2.2912,
                "expected_assists": 0.1132,
                "key_pass": 1.4201,
                "rating": 7.1229,
                "minutes": 81.82,
                "total_pass": 31.4603,
                "accurate_pass": 25.8549,
                "duels_won": 3.6638,
                "total_long_balls": 1.1213,
                "accurate_long_balls": 0.6801,
                "total_opp_half_passes": 19.846,
                "accurate_opp_half_passes": 15.2267,
                "crosses_total": 0.3652,
                "crosses_accurate": 0.0706,
                "touches": 45.1571,
                "possession_lost": 10.7206,
                "dispossessed": 1.3487,
                "duels_lost": 4.3491,
                "aerial_lost": 0.7652,
                "total_contest": 1.367,
                "won_contest": 0.627,
                "ball_recovery": 3.0752,
                "challenges_lost": 0.7635,
                "fouls": 0.8812,
                "fouls_drawn": 1.2792,
                "assists": 0.119,
                "assist_rate": 0.119,
                "interceptions": 0.2597,
                "tackles_won": 0.7353,
                "tackles": 0.8651,
                "clearances": 0.2202,
                "blocks": 0.0187,
                "big_chances_created": 0.2551,
                "big_chances_missed": 0.4844,
                "xgot": 0.2834,
                "offsides": 0.0955,
                "ball_carries": 15.4384,
                "total_progression": 67.1673,
                "progressive_carries": 3.1668,
                "shots_off_target": 1.3968
              },
              "params": {
                "market_value_eur": 27000000,
                "quality_factor": 0.6941,
                "boost_factor": 1.0058,
                "reference_quality": 0.505,
                "history_matches": 44,
                "history_shrink": 0.102,
                "market_value_known": true
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0133)",
              "stats": {
                "expected_goals": 0.2867,
                "goals": 0.4001,
                "goal_rate": 0.4001,
                "shots_on_target": 0.8987,
                "total_shots": 2.2891,
                "expected_assists": 0.1132,
                "key_pass": 1.4201,
                "rating": 7.1229,
                "minutes": 81.82,
                "total_pass": 31.4603,
                "accurate_pass": 25.8549,
                "duels_won": 3.6638,
                "total_long_balls": 1.1213,
                "accurate_long_balls": 0.6801,
                "total_opp_half_passes": 19.846,
                "accurate_opp_half_passes": 15.2267,
                "crosses_total": 0.3684,
                "crosses_accurate": 0.0706,
                "touches": 45.1571,
                "possession_lost": 10.7206,
                "dispossessed": 1.3487,
                "duels_lost": 4.3491,
                "aerial_lost": 0.7652,
                "total_contest": 1.367,
                "won_contest": 0.627,
                "ball_recovery": 3.0752,
                "challenges_lost": 0.7635,
                "fouls": 0.8776,
                "fouls_drawn": 1.2904,
                "assists": 0.1255,
                "assist_rate": 0.1255,
                "interceptions": 0.2603,
                "tackles_won": 0.7255,
                "tackles": 0.8651,
                "clearances": 0.2202,
                "blocks": 0.0187,
                "big_chances_created": 0.2551,
                "big_chances_missed": 0.4844,
                "xgot": 0.2834,
                "offsides": 0.0942,
                "ball_carries": 15.4384,
                "total_progression": 67.1673,
                "progressive_carries": 3.1668,
                "shots_off_target": 1.3968
              },
              "params": {
                "blend_weight": 0.0133,
                "history_matches": 44,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.9091,
                "prior_reliability": 0.2,
                "competition": "La Liga",
                "squad": "Real Sociedad"
              },
              "changes": [
                {
                  "stat": "wasFouled",
                  "before": 1.2792,
                  "after": 1.2904
                },
                {
                  "stat": "wonTackle",
                  "before": 0.7353,
                  "after": 0.7255
                },
                {
                  "stat": "goalAssist",
                  "before": 0.119,
                  "after": 0.1255
                },
                {
                  "stat": "goals",
                  "before": 0.4055,
                  "after": 0.4001
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.2867,
                "goals": 0.4001,
                "goal_rate": 0.4001,
                "shots_on_target": 0.8987,
                "total_shots": 2.2955,
                "expected_assists": 0.1132,
                "key_pass": 1.4201,
                "rating": 7.1229,
                "minutes": 81.82,
                "total_pass": 31.4603,
                "accurate_pass": 25.8549,
                "duels_won": 3.6638,
                "total_long_balls": 1.1213,
                "accurate_long_balls": 0.6801,
                "total_opp_half_passes": 19.846,
                "accurate_opp_half_passes": 15.2267,
                "crosses_total": 0.3684,
                "crosses_accurate": 0.0706,
                "touches": 45.1571,
                "possession_lost": 10.7206,
                "dispossessed": 1.3487,
                "duels_lost": 4.3491,
                "aerial_lost": 0.7652,
                "total_contest": 1.367,
                "won_contest": 0.627,
                "ball_recovery": 3.0752,
                "challenges_lost": 0.7635,
                "fouls": 0.8776,
                "fouls_drawn": 1.2904,
                "assists": 0.1255,
                "assist_rate": 0.1255,
                "interceptions": 0.2603,
                "tackles_won": 0.7255,
                "tackles": 0.8651,
                "clearances": 0.2202,
                "blocks": 0.0187,
                "big_chances_created": 0.2551,
                "big_chances_missed": 0.4844,
                "xgot": 0.2834,
                "offsides": 0.0942,
                "ball_carries": 15.4384,
                "total_progression": 67.1673,
                "progressive_carries": 3.1668,
                "shots_off_target": 1.3968
              },
              "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.2938,
                "goals": 0.4099,
                "goal_rate": 0.4099,
                "shots_on_target": 0.9208,
                "total_shots": 2.352,
                "expected_assists": 0.1132,
                "key_pass": 1.4201,
                "rating": 7.1229,
                "minutes": 81.82,
                "total_pass": 31.4603,
                "accurate_pass": 25.8549,
                "duels_won": 3.6638,
                "total_long_balls": 1.1213,
                "accurate_long_balls": 0.6801,
                "total_opp_half_passes": 19.846,
                "accurate_opp_half_passes": 15.2267,
                "crosses_total": 0.3684,
                "crosses_accurate": 0.0706,
                "touches": 45.1571,
                "possession_lost": 10.7206,
                "dispossessed": 1.3487,
                "duels_lost": 4.3491,
                "aerial_lost": 0.7652,
                "total_contest": 1.367,
                "won_contest": 0.627,
                "ball_recovery": 3.0752,
                "challenges_lost": 0.7635,
                "fouls": 0.8776,
                "fouls_drawn": 1.2904,
                "assists": 0.1255,
                "assist_rate": 0.1255,
                "interceptions": 0.2603,
                "tackles_won": 0.7255,
                "tackles": 0.8651,
                "clearances": 0.2202,
                "blocks": 0.0187,
                "big_chances_created": 0.2551,
                "big_chances_missed": 0.4963,
                "xgot": 0.2904,
                "offsides": 0.0942,
                "ball_carries": 15.4384,
                "total_progression": 67.1673,
                "progressive_carries": 3.1668,
                "shots_off_target": 1.4312,
                "duel_xg_multiplier": 1.0246,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.4,
                "aerial_won": 1.6,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.217,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Aymeric Laporte, Dani Vivian",
                "opponent_faced": "Aymeric Laporte, Dani Vivian",
                "antagonist_source": "attacking_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Aymeric Laporte, Dani Vivian",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                  "duel_win_rate": 0.217,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v2",
                  "xg_multiplier": 1.0246,
                  "skill_edge": 0.0407,
                  "height_edge": -0.024,
                  "attacker_skill": 0.6941,
                  "defender_skill": 0.6037,
                  "attacker_role": "ST",
                  "attacker_mv_price_index": 1.0,
                  "defender_adjusted_parts": [
                    {
                      "player": "Aymeric Laporte",
                      "market_value": 8400000,
                      "role": "CB",
                      "price_index": 0.75,
                      "adjusted_quality": 0.5365
                    },
                    {
                      "player": "Dani Vivian",
                      "market_value": 18200000,
                      "role": "CB",
                      "price_index": 0.75,
                      "adjusted_quality": 0.6709
                    }
                  ],
                  "xg_override": 0.2938
                }
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 2.2955,
                  "after": 2.352
                },
                {
                  "stat": "shotOffTarget",
                  "before": 1.3968,
                  "after": 1.4312
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.8987,
                  "after": 0.9208
                },
                {
                  "stat": "bigChanceMissed",
                  "before": 0.4844,
                  "after": 0.4963
                },
                {
                  "stat": "goals",
                  "before": 0.4001,
                  "after": 0.4099
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.2867,
                  "after": 0.2938
                },
                {
                  "stat": "expectedGoalsOnTarget",
                  "before": 0.2834,
                  "after": 0.2904
                }
              ]
            },
            {
              "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.2938,
                "goal_rate": 0.4099,
                "goals": 0,
                "shots_on_target": 0.9208,
                "total_shots": 2.352,
                "expected_assists": 0.1132,
                "key_pass": 1.4201,
                "rating": 7.1229,
                "minutes": 81.82,
                "total_pass": 31.4603,
                "accurate_pass": 25.8549,
                "duels_won": 3.6638,
                "total_long_balls": 1.1213,
                "accurate_long_balls": 0.6801,
                "total_opp_half_passes": 19.846,
                "accurate_opp_half_passes": 15.2267,
                "crosses_total": 0.3684,
                "crosses_accurate": 0.0706,
                "touches": 45.1571,
                "possession_lost": 10.7206,
                "dispossessed": 1.3487,
                "duels_lost": 4.3491,
                "aerial_lost": 0.7652,
                "total_contest": 1.367,
                "won_contest": 0.627,
                "ball_recovery": 3.0752,
                "challenges_lost": 0.7635,
                "fouls": 0.8776,
                "fouls_drawn": 1.2904,
                "assist_rate": 0.1255,
                "assists": 0,
                "interceptions": 0.2603,
                "tackles_won": 0.7255,
                "tackles": 0.8651,
                "clearances": 0.2202,
                "blocks": 0.0187,
                "big_chances_created": 0.2551,
                "big_chances_missed": 0.4963,
                "xgot": 0.2904,
                "offsides": 0.0942,
                "ball_carries": 15.4384,
                "total_progression": 67.1673,
                "progressive_carries": 3.1668,
                "shots_off_target": 1.4312,
                "duel_xg_multiplier": 1.0246,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.4,
                "aerial_won": 1.6,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.217,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Aymeric Laporte, Dani Vivian",
                "opponent_faced": "Aymeric Laporte, Dani Vivian",
                "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.25 (squad xG sum 1.3010, xG scale 0.9646, xA scale 0.9646, team xA 0.85 = 0.67 x lambda)",
              "stats": {
                "expected_goals": 0.2835,
                "goal_rate": 0.4099,
                "goals": 0,
                "shots_on_target": 0.9208,
                "total_shots": 2.352,
                "expected_assists": 0.1092,
                "key_pass": 1.4201,
                "rating": 7.1229,
                "minutes": 81.82,
                "total_pass": 31.4603,
                "accurate_pass": 25.8549,
                "duels_won": 3.6638,
                "total_long_balls": 1.1213,
                "accurate_long_balls": 0.6801,
                "total_opp_half_passes": 19.846,
                "accurate_opp_half_passes": 15.2267,
                "crosses_total": 0.3684,
                "crosses_accurate": 0.0706,
                "touches": 45.1571,
                "possession_lost": 10.7206,
                "dispossessed": 1.3487,
                "duels_lost": 4.3491,
                "aerial_lost": 0.7652,
                "total_contest": 1.367,
                "won_contest": 0.627,
                "ball_recovery": 3.0752,
                "challenges_lost": 0.7635,
                "fouls": 0.8776,
                "fouls_drawn": 1.2904,
                "assist_rate": 0.1255,
                "assists": 0,
                "interceptions": 0.2603,
                "tackles_won": 0.7255,
                "tackles": 0.8651,
                "clearances": 0.2202,
                "blocks": 0.0187,
                "big_chances_created": 0.2551,
                "big_chances_missed": 0.4963,
                "xgot": 0.2801,
                "offsides": 0.0942,
                "ball_carries": 15.4384,
                "total_progression": 67.1673,
                "progressive_carries": 3.1668,
                "shots_off_target": 1.4312,
                "duel_xg_multiplier": 1.0246,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.4,
                "aerial_won": 1.6,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.217,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Aymeric Laporte, Dani Vivian",
                "opponent_faced": "Aymeric Laporte, Dani Vivian",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 1.0754
              },
              "params": {
                "team_lambda": 1.255,
                "squad_xg_sum": 1.301,
                "squad_xa_sum": 0.8767,
                "team_expected_assists": 0.8457,
                "team_xa_to_xg_ratio": 0.6739,
                "bench_appearance_weighted": true,
                "xg_scale": 0.9646,
                "xa_scale": 0.9646,
                "opponent_lambda": 1.729,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.2938,
                  "after": 0.2835
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 90.0)",
              "stats": {
                "expected_goals": 0.2835,
                "goal_rate": 0.4099,
                "goals": 0,
                "shots_on_target": 0.9208,
                "total_shots": 2.352,
                "expected_assists": 0.1092,
                "key_pass": 1.4201,
                "rating": 7.1229,
                "minutes": 81.82,
                "total_pass": 31.4603,
                "accurate_pass": 25.8549,
                "duels_won": 3.6638,
                "total_long_balls": 1.1213,
                "accurate_long_balls": 0.6801,
                "total_opp_half_passes": 19.846,
                "accurate_opp_half_passes": 15.2267,
                "crosses_total": 0.3684,
                "crosses_accurate": 0.0706,
                "touches": 45.1571,
                "possession_lost": 10.7206,
                "dispossessed": 1.3487,
                "duels_lost": 4.3491,
                "aerial_lost": 0.7652,
                "total_contest": 1.367,
                "won_contest": 0.627,
                "ball_recovery": 3.0752,
                "challenges_lost": 0.7635,
                "fouls": 0.8776,
                "fouls_drawn": 1.2904,
                "assist_rate": 0.1255,
                "assists": 0,
                "interceptions": 0.2603,
                "tackles_won": 0.7255,
                "tackles": 0.8651,
                "clearances": 0.2202,
                "blocks": 0.0187,
                "big_chances_created": 0.2551,
                "big_chances_missed": 0.4963,
                "xgot": 0.2801,
                "offsides": 0.0942,
                "ball_carries": 15.4384,
                "total_progression": 67.1673,
                "progressive_carries": 3.1668,
                "shots_off_target": 1.4312,
                "duel_xg_multiplier": 1.0246,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.4,
                "aerial_won": 1.6,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.217,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Aymeric Laporte, Dani Vivian",
                "opponent_faced": "Aymeric Laporte, Dani Vivian",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 1.0754,
                "fifa_overall": 90.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": 31,
                "fifa_rank": 13.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 90.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "expected_goals": 0.2835,
                "goal_rate": 0.4099,
                "goals": 1,
                "shots_on_target": 0.9208,
                "total_shots": 2.352,
                "expected_assists": 0.1092,
                "key_pass": 1.4201,
                "rating": 7.1229,
                "minutes": 81.82,
                "total_pass": 31.4603,
                "accurate_pass": 25.8549,
                "duels_won": 3.6638,
                "total_long_balls": 1.1213,
                "accurate_long_balls": 0.6801,
                "total_opp_half_passes": 19.846,
                "accurate_opp_half_passes": 15.2267,
                "crosses_total": 0.3684,
                "crosses_accurate": 0.0706,
                "touches": 45.1571,
                "possession_lost": 10.7206,
                "dispossessed": 1.3487,
                "duels_lost": 4.3491,
                "aerial_lost": 0.7652,
                "total_contest": 1.367,
                "won_contest": 0.627,
                "ball_recovery": 3.0752,
                "challenges_lost": 0.7635,
                "fouls": 0.8776,
                "fouls_drawn": 1.2904,
                "assist_rate": 0.1255,
                "assists": 0,
                "interceptions": 0.2603,
                "tackles_won": 0.7255,
                "tackles": 0.8651,
                "clearances": 0.2202,
                "blocks": 0.0187,
                "big_chances_created": 0.2551,
                "big_chances_missed": 0.4963,
                "xgot": 0.2801,
                "offsides": 0.0942,
                "ball_carries": 15.4384,
                "total_progression": 67.1673,
                "progressive_carries": 3.1668,
                "shots_off_target": 1.4312,
                "duel_xg_multiplier": 1.0246,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.4,
                "aerial_won": 1.6,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.217,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Aymeric Laporte, Dani Vivian",
                "opponent_faced": "Aymeric Laporte, Dani Vivian",
                "antagonist_source": "attacking_duel",
                "projected_goals": 1,
                "goal_probability": 0.2469,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 1.0754,
                "fifa_overall": 90.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 1,
                "goal_probability": 0.2469,
                "goal_rate": 0.4099,
                "scorer_weight": 0.3544,
                "squad_weight_total": 1.3959,
                "weight_share": 0.2539,
                "finishing_factor": 1.25,
                "appearance_weight": 1.0,
                "weight_rank": 1,
                "eligible_players": 14,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Mikel Oyarzabal",
                    "weight": 0.3544,
                    "already": 0,
                    "effective_weight": 0.3544,
                    "runner_up": "Gonçalo Guedes",
                    "runner_up_effective_weight": 0.2684
                  }
                ]
              }
            },
            {
              "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.2835,
                "goal_rate": 0.4099,
                "goals": 1,
                "shots_on_target": 0.9208,
                "total_shots": 2.352,
                "expected_assists": 0.1092,
                "key_pass": 1.4201,
                "rating": 7.1229,
                "minutes": 81.82,
                "total_pass": 31.4603,
                "accurate_pass": 25.8549,
                "duels_won": 3.6638,
                "total_long_balls": 1.1213,
                "accurate_long_balls": 0.6801,
                "total_opp_half_passes": 19.846,
                "accurate_opp_half_passes": 15.2267,
                "crosses_total": 0.3684,
                "crosses_accurate": 0.0706,
                "touches": 45.1571,
                "possession_lost": 10.7206,
                "dispossessed": 1.3487,
                "duels_lost": 4.3491,
                "aerial_lost": 0.7652,
                "total_contest": 1.367,
                "won_contest": 0.627,
                "ball_recovery": 3.0752,
                "challenges_lost": 0.7635,
                "fouls": 0.8776,
                "fouls_drawn": 1.2904,
                "assist_rate": 0.1255,
                "assists": 0,
                "interceptions": 0.2603,
                "tackles_won": 0.7255,
                "tackles": 0.8651,
                "clearances": 0.2202,
                "blocks": 0.0187,
                "big_chances_created": 0.2551,
                "big_chances_missed": 0.4963,
                "xgot": 0.2801,
                "offsides": 0.0942,
                "ball_carries": 15.4384,
                "total_progression": 67.1673,
                "progressive_carries": 3.1668,
                "shots_off_target": 1.4312,
                "duel_xg_multiplier": 1.0246,
                "dribbles_attempted": 2.0,
                "dribbles_successful": 0.4,
                "aerial_won": 1.6,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.217,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Aymeric Laporte, Dani Vivian",
                "opponent_faced": "Aymeric Laporte, Dani Vivian",
                "antagonist_source": "attacking_duel",
                "projected_goals": 1,
                "goal_probability": 0.2469,
                "projected_assists": 0,
                "assist_probability": 0.1034,
                "finishing_factor": 1.25,
                "creation_factor": 1.0754,
                "fifa_overall": 90.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.1034,
                "assist_rate": 0.1255,
                "provider_weight": 0.1174,
                "squad_weight_total": 0.8785,
                "weight_share": 0.1337,
                "creation_factor": 1.0754,
                "appearance_weight": 1.0,
                "weight_rank": 4,
                "eligible_players": 14,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Gonçalo Guedes",
                    "weight": 0.1642,
                    "already": 0,
                    "effective_weight": 0.1642,
                    "runner_up": "Carlos Soler",
                    "runner_up_effective_weight": 0.1308,
                    "blocked_own_goal": [
                      "Mikel Oyarzabal"
                    ]
                  }
                ]
              }
            }
          ]
        }
      },
      "bench_players": {
        "Unai Marrero": {
          "player_id": 1094782,
          "position": "G",
          "position_depth": "G_BENCH",
          "is_starter": false,
          "shirt_number": 13,
          "height": 187,
          "market_value": 1100000,
          "stats": {
            "saves": 0,
            "goals_prevented": -0.0058,
            "rating": 7.0489,
            "minutes": 4,
            "total_pass": 6,
            "accurate_pass": 4,
            "total_long_balls": 4,
            "accurate_long_balls": 2,
            "touches": 8,
            "clearances": 0,
            "ball_recovery": 2,
            "high_claims": 0,
            "punches": 0.234,
            "aerial_won": 0,
            "sweeper_actions": 0,
            "sweeper_accurate": 0,
            "saves_inside_box": 1,
            "possession_lost": 2.1715,
            "duels_won": 0,
            "duels_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "total_own_half_passes": 3,
            "accurate_own_half_passes": 2,
            "bench_appearance_probability": 0.109,
            "bench_expected_minutes": 4.39,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 4,
            "projected_substitution_expected_count": 2.572,
            "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": 74.0
          },
          "latest_10_games": [
            {
              "match_id": 16416319.0,
              "match_date": "2026-09-07",
              "home_team": "Elche",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Elche",
              "stats": {
                "minutes": 90,
                "rating": 8.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0029,
                "total_shots": 0,
                "total_pass": 37,
                "accurate_pass": 26,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 11,
                "saves": 8,
                "goals_prevented": -0.0376
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083719.0,
              "match_date": "2026-05-23",
              "home_team": "Espanyol",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 90,
                "rating": 7.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0038,
                "total_shots": 0,
                "total_pass": 38,
                "accurate_pass": 21,
                "clearances": 1,
                "ball_recovery": 13,
                "saves": 7,
                "goals_prevented": 0.7581
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 3493,
            "combined_rank_score": 1479.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 52.0,
            "sofascore_rating": 7.7,
            "sofascore_appearances": 1.0,
            "fifa_rank": 2906.0,
            "fifa_overall": 74.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 4,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 7.0489,
            "source_file": "data/player_rankings.csv",
            "player_name": "Unai Marrero",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Tyrhys Dolan",
                  "ranking": 3488
                },
                {
                  "player_name": "Yann Gboho",
                  "ranking": 3489
                },
                {
                  "player_name": "Ansu Fati",
                  "ranking": 3490
                },
                {
                  "player_name": "Marcus Edwards",
                  "ranking": 3491
                },
                {
                  "player_name": "Ismaël Doukouré",
                  "ranking": 3492
                }
              ],
              "lower": [
                {
                  "player_name": "Ilan Kebbal",
                  "ranking": 3494
                },
                {
                  "player_name": "Mousa Al Tamari",
                  "ranking": 3495
                },
                {
                  "player_name": "Baptiste Santamaria",
                  "ranking": 3496
                },
                {
                  "player_name": "Quentin Merlin",
                  "ranking": 3497
                },
                {
                  "player_name": "Eddie Nketiah",
                  "ranking": 3498
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.375,
          "history_matches": 2,
          "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": 2,
            "data_confidence": 0.375,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 4.392222187561249,
            "bench_appearance_prob": 0.10873737216187492,
            "market_value_adjustment": 0.9855,
            "fbref_prior_metrics": {
              "squad": "Real Sociedad",
              "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 G_service (2 historical appearances) to 4.4 expected mins (appearance prob 0.11); FBref playing time empirical prior: 0.0 sub appearances, 0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost G_service raw output over 3 target models",
              "stats": {
                "saves": 3.0357,
                "goals_prevented": -0.0381,
                "rating": 7.0489,
                "minutes": 28.5,
                "total_pass": 37.4595,
                "accurate_pass": 23.7027,
                "total_long_balls": 27.4595,
                "accurate_long_balls": 13.7027,
                "touches": 52.5405,
                "clearances": 1.5405,
                "ball_recovery": 11.9189,
                "high_claims": 1.0,
                "punches": 1.5405,
                "aerial_won": 0.5405,
                "sweeper_actions": 1.0,
                "sweeper_accurate": 1.0,
                "saves_inside_box": 5.4595,
                "possession_lost": 14.2973,
                "duels_won": 0.5405,
                "duels_lost": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.0,
                "total_own_half_passes": 19.9189,
                "accurate_own_half_passes": 15.7027
              },
              "trace": {
                "model": {
                  "position_service": "G",
                  "schema_version": 5,
                  "trained_at": "2026-11-01T11:25:22.869020+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 201,
                    "rows": 7418
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Elche",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.5405,
                    "rating": 8.7
                  },
                  {
                    "match_date": "2026-05-23",
                    "opponent": "Espanyol",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.4595,
                    "rating": 7.7
                  }
                ],
                "feature_row": {
                  "history_matches": 2.0,
                  "is_starting_11": 0.0,
                  "accurateOwnHalfPasses": 15.7027,
                  "accurateLongBalls": 13.7027,
                  "possessionLostCtrl": 14.2973,
                  "goalkeeperValueNormalized": 0.4835,
                  "sweeper_accuracy": 0.4595,
                  "accurateKeeperSweeper": 1.0
                },
                "per_target": [
                  {
                    "target": "saves",
                    "predicted": 3.035710573196411,
                    "model_output": 3.0357,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "save_contribution",
                        "importance": 0.0391
                      },
                      {
                        "name": "goalsPrevented",
                        "importance": 0.0375
                      },
                      {
                        "name": "savedShotsFromInsideTheBox",
                        "importance": 0.0373
                      },
                      {
                        "name": "accurateLongBalls",
                        "importance": 0.0364
                      },
                      {
                        "name": "rating",
                        "importance": 0.0359
                      }
                    ],
                    "decomposition": {
                      "base": 2.922,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1135
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": 0.0539
                        },
                        {
                          "name": "rating",
                          "contribution": 0.0526
                        },
                        {
                          "name": "commanding_index",
                          "contribution": 0.0385
                        },
                        {
                          "name": "savedShotsFromInsideTheBox",
                          "contribution": 0.0373
                        }
                      ],
                      "others": 0.0449,
                      "total": 3.0357,
                      "log_link": true,
                      "margin_base": 1.072276,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.039605
                        },
                        {
                          "name": "ballRecovery",
                          "margin": 0.019025
                        },
                        {
                          "name": "rating",
                          "margin": 0.018208
                        },
                        {
                          "name": "commanding_index",
                          "margin": 0.013112
                        },
                        {
                          "name": "savedShotsFromInsideTheBox",
                          "margin": 0.012552
                        }
                      ],
                      "others_margin": 0.014878
                    }
                  },
                  {
                    "target": "goalsPrevented",
                    "predicted": -0.038087788969278336,
                    "model_output": -0.0381,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0381
                      },
                      {
                        "name": "totalOwnHalfPasses",
                        "importance": 0.0373
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0364
                      },
                      {
                        "name": "sweeper_actions_p90",
                        "importance": 0.0359
                      },
                      {
                        "name": "accurateOwnHalfPasses",
                        "importance": 0.0355
                      }
                    ],
                    "decomposition": {
                      "base": -0.0283,
                      "items": [
                        {
                          "name": "accurateKeeperSweeper",
                          "contribution": 0.0453
                        },
                        {
                          "name": "punches",
                          "contribution": -0.0411
                        },
                        {
                          "name": "accurateLongBalls",
                          "contribution": -0.0158
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.0127
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0118
                        }
                      ],
                      "others": 0.0263,
                      "total": -0.0381,
                      "log_link": false,
                      "margin_base": -0.028288,
                      "item_margins": [
                        {
                          "name": "accurateKeeperSweeper",
                          "margin": 0.045337
                        },
                        {
                          "name": "punches",
                          "margin": -0.041099
                        },
                        {
                          "name": "accurateLongBalls",
                          "margin": -0.015757
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": -0.012682
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.01176
                        }
                      ],
                      "others_margin": 0.02616
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 7.048864841461182,
                    "model_output": 7.0489,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0399
                      },
                      {
                        "name": "accurateKeeperSweeper",
                        "importance": 0.0395
                      },
                      {
                        "name": "goalkeeperValueNormalized",
                        "importance": 0.0383
                      },
                      {
                        "name": "accurateOwnHalfPasses",
                        "importance": 0.0383
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0363
                      }
                    ],
                    "decomposition": {
                      "base": 6.9871,
                      "items": [
                        {
                          "name": "rating",
                          "contribution": 0.0454
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0278
                        },
                        {
                          "name": "accurateKeeperSweeper",
                          "contribution": 0.0212
                        },
                        {
                          "name": "distribution_accuracy",
                          "contribution": 0.0205
                        },
                        {
                          "name": "sweeper_accuracy",
                          "contribution": -0.0202
                        }
                      ],
                      "others": -0.0329,
                      "total": 7.0489,
                      "log_link": false,
                      "margin_base": 6.987111,
                      "item_margins": [
                        {
                          "name": "rating",
                          "margin": 0.045414
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": 0.027757
                        },
                        {
                          "name": "accurateKeeperSweeper",
                          "margin": 0.021197
                        },
                        {
                          "name": "distribution_accuracy",
                          "margin": 0.020489
                        },
                        {
                          "name": "sweeper_accuracy",
                          "margin": -0.020168
                        }
                      ],
                      "others_margin": -0.032935
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "substitute",
                  "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.9855, quality 0.437)",
              "stats": {
                "saves": 2.9917,
                "goals_prevented": -0.0375,
                "rating": 7.0489,
                "minutes": 28.5,
                "total_pass": 36.9163,
                "accurate_pass": 23.359,
                "total_long_balls": 27.0613,
                "accurate_long_balls": 13.504,
                "touches": 51.7787,
                "clearances": 1.5182,
                "ball_recovery": 11.7461,
                "high_claims": 0.9855,
                "punches": 1.5182,
                "aerial_won": 0.5327,
                "sweeper_actions": 0.9855,
                "sweeper_accurate": 0.9855,
                "saves_inside_box": 5.3803,
                "possession_lost": 14.09,
                "duels_won": 0.5327,
                "duels_lost": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.0,
                "total_own_half_passes": 19.6301,
                "accurate_own_half_passes": 15.475
              },
              "params": {
                "market_value_eur": 1100000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9855,
                "reference_quality": 0.505,
                "history_matches": 2,
                "history_shrink": 0.7143,
                "market_value_known": true
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 28.5 to 4.4 expected minutes (appearance prob 0.11)",
              "stats": {
                "saves": 0.4611,
                "goals_prevented": -0.0058,
                "rating": 7.0489,
                "minutes": 4.39,
                "total_pass": 5.6893,
                "accurate_pass": 3.5999,
                "total_long_balls": 4.1705,
                "accurate_long_balls": 2.0811,
                "touches": 7.9798,
                "clearances": 0.234,
                "ball_recovery": 1.8102,
                "high_claims": 0.1519,
                "punches": 0.234,
                "aerial_won": 0.0821,
                "sweeper_actions": 0.1519,
                "sweeper_accurate": 0.1519,
                "saves_inside_box": 0.8292,
                "possession_lost": 2.1715,
                "duels_won": 0.0821,
                "duels_lost": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.0,
                "total_own_half_passes": 3.0253,
                "accurate_own_half_passes": 2.3849,
                "bench_appearance_probability": 0.109,
                "bench_expected_minutes": 4.39
              },
              "params": {
                "expected_minutes": 4.39,
                "projection_minutes": 28.5,
                "minutes_scale": 0.1541,
                "appearance_probability": 0.109
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "saves": 0.4611,
                "goals_prevented": -0.0058,
                "rating": 7.0489,
                "minutes": 4.39,
                "total_pass": 5.6893,
                "accurate_pass": 3.5999,
                "total_long_balls": 4.1705,
                "accurate_long_balls": 2.0811,
                "touches": 7.9798,
                "clearances": 0.234,
                "ball_recovery": 1.8102,
                "high_claims": 0.1519,
                "punches": 0.234,
                "aerial_won": 0.0821,
                "sweeper_actions": 0.1519,
                "sweeper_accurate": 0.1519,
                "saves_inside_box": 0.8292,
                "possession_lost": 2.1715,
                "duels_won": 0.0821,
                "duels_lost": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.0,
                "total_own_half_passes": 3.0253,
                "accurate_own_half_passes": 2.3849,
                "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.4611,
                "goals_prevented": -0.0058,
                "rating": 7.0489,
                "minutes": 4.39,
                "total_pass": 5.6893,
                "accurate_pass": 3.5999,
                "total_long_balls": 4.1705,
                "accurate_long_balls": 2.0811,
                "touches": 7.9798,
                "clearances": 0.234,
                "ball_recovery": 1.8102,
                "high_claims": 0.1519,
                "punches": 0.234,
                "aerial_won": 0.0821,
                "sweeper_actions": 0.1519,
                "sweeper_accurate": 0.1519,
                "saves_inside_box": 0.8292,
                "possession_lost": 2.1715,
                "duels_won": 0.0821,
                "duels_lost": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.0,
                "total_own_half_passes": 3.0253,
                "accurate_own_half_passes": 2.3849,
                "bench_appearance_probability": 0.109,
                "bench_expected_minutes": 4.39,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "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": 4,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 74.0)",
              "stats": {
                "saves": 0.4611,
                "goals_prevented": -0.0058,
                "rating": 7.0489,
                "minutes": 4.39,
                "total_pass": 5.6893,
                "accurate_pass": 3.5999,
                "total_long_balls": 4.1705,
                "accurate_long_balls": 2.0811,
                "touches": 7.9798,
                "clearances": 0.234,
                "ball_recovery": 1.8102,
                "high_claims": 0.1519,
                "punches": 0.234,
                "aerial_won": 0.0821,
                "sweeper_actions": 0.1519,
                "sweeper_accurate": 0.1519,
                "saves_inside_box": 0.8292,
                "possession_lost": 2.1715,
                "duels_won": 0.0821,
                "duels_lost": 0.0,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.0,
                "total_own_half_passes": 3.0253,
                "accurate_own_half_passes": 2.3849,
                "bench_appearance_probability": 0.109,
                "bench_expected_minutes": 4.39,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "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": 74.0
              },
              "params": {
                "match_squad_rank": 4,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3493,
                "fifa_rank": 2906.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 74.0
              }
            }
          ]
        },
        "Héctor Fort": {
          "player_id": 1402908,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 22,
          "height": 185,
          "market_value": 14600000,
          "stats": {
            "interceptions": 0,
            "tackles": 1,
            "tackles_won": 0,
            "clearances": 1,
            "aerial_won": 0,
            "total_shots": 0,
            "rating": 6.6648,
            "minutes": 14,
            "total_pass": 3,
            "accurate_pass": 3,
            "duels_won": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 1,
            "accurate_own_half_passes": 1,
            "total_opp_half_passes": 2,
            "accurate_opp_half_passes": 2,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 8,
            "possession_lost": 1.4121,
            "dispossessed": 0.2975,
            "duels_lost": 1,
            "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.006,
            "expected_assists": 0.0055,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 1,
            "total_progression": 6,
            "progressive_carries": 0,
            "key_pass": 0,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.323,
            "bench_expected_minutes": 14.12,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 4,
            "projected_substitution_expected_count": 2.572,
            "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": 72.0
          },
          "latest_10_games": [
            {
              "match_id": 16421086.0,
              "match_date": "2026-10-25",
              "home_team": "Real Sociedad",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 62,
                "rating": 6.9,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0265,
                "expected_assists": 0.3275,
                "total_shots": 1,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "total_pass": 30,
                "accurate_pass": 27,
                "key_pass": 2,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 0,
                "clearances": 1,
                "aerial_won": 0,
                "duels_won": 1,
                "ball_recovery": 3,
                "saves": 0
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421073.0,
              "match_date": "2026-10-18",
              "home_team": "Málaga CF",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 61,
                "rating": 6.7,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_assists": 0.0078,
                "total_shots": 0,
                "total_pass": 36,
                "accurate_pass": 36,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "duels_won": 1,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421067.0,
              "match_date": "2026-10-11",
              "home_team": "Real Sociedad",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 9,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0,
                "total_shots": 0
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416319.0,
              "match_date": "2026-09-07",
              "home_team": "Elche",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Elche",
              "stats": {
                "minutes": 9,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0003,
                "total_shots": 0,
                "total_pass": 1,
                "accurate_pass": 1,
                "tackles": 1,
                "interceptions": 1,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083743.0,
              "match_date": "2026-05-23",
              "home_team": "Girona FC",
              "away_team": "Elche",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Elche",
              "opponent": "Girona FC",
              "stats": {
                "minutes": 14,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "total_pass": 1,
                "accurate_pass": 1,
                "clearances": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083608.0,
              "match_date": "2026-05-12",
              "home_team": "Real Betis",
              "away_team": "Elche",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 64,
                "rating": 7.3,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0349,
                "expected_assists": 0.0177,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 27,
                "accurate_pass": 23,
                "tackles": 2,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083578.0,
              "match_date": "2026-05-09",
              "home_team": "Elche",
              "away_team": "Deportivo Alavés",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Elche",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 11,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "total_shots": 0,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083401.0,
              "match_date": "2026-05-03",
              "home_team": "Celta Vigo",
              "away_team": "Elche",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Elche",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 21,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0342,
                "expected_assists": 0.0033,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 7,
                "accurate_pass": 6,
                "clearances": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083252.0,
              "match_date": "2026-04-26",
              "home_team": "Real Oviedo",
              "away_team": "Elche",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "Real Oviedo",
              "stats": {
                "minutes": 62,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0033,
                "total_shots": 0,
                "total_pass": 12,
                "accurate_pass": 7,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083183.0,
              "match_date": "2025-12-21",
              "home_team": "Elche",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 12,
                "rating": 8.1,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.182,
                "expected_assists": 0.0,
                "total_shots": 1,
                "shots_on_target": 1,
                "tackles": 1,
                "clearances": 1,
                "duels_won": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 4463,
            "combined_rank_score": 2486.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 706.0,
            "sofascore_rating": 6.6929,
            "sofascore_appearances": 14.0,
            "fifa_rank": 4266.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.6648,
            "source_file": "data/player_rankings.csv",
            "player_name": "Hector Fort",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Valeriy Bondar",
                  "ranking": 4458
                },
                {
                  "player_name": "Volodymyr Brazhko",
                  "ranking": 4459
                },
                {
                  "player_name": "Jhohan Romaña",
                  "ranking": 4460
                },
                {
                  "player_name": "Branco Ampuero",
                  "ranking": 4461
                },
                {
                  "player_name": "Diego Rossi",
                  "ranking": 4462
                }
              ],
              "lower": [
                {
                  "player_name": "Agustín Palavecino",
                  "ranking": 4464
                },
                {
                  "player_name": "Ben Cabango",
                  "ranking": 4465
                },
                {
                  "player_name": "Federico Pereira",
                  "ranking": 4466
                },
                {
                  "player_name": "Alex Palmer",
                  "ranking": 4467
                },
                {
                  "player_name": "Cédric Itten",
                  "ranking": 4468
                }
              ]
            }
          },
          "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": 14.116228879425961,
            "bench_appearance_prob": 0.32346494906481643,
            "market_value_adjustment": 1.0046,
            "fbref_prior_metrics": {
              "squad": "Real Sociedad",
              "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 D_service (18 historical appearances) to 14.1 expected mins (appearance prob 0.32); FBref playing time empirical prior: 0.0 sub appearances, 0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 7 target models",
              "stats": {
                "interceptions": 0.3075,
                "tackles": 0.6652,
                "tackles_won": 0.4196,
                "clearances": 0.6978,
                "aerial_won": 0.2457,
                "total_shots": 0.185,
                "rating": 6.6648,
                "minutes": 13.77,
                "total_pass": 3.233,
                "accurate_pass": 2.8217,
                "duels_won": 0.7128,
                "total_long_balls": 0.4094,
                "accurate_long_balls": 0.2492,
                "total_own_half_passes": 1.0735,
                "accurate_own_half_passes": 1.0109,
                "total_opp_half_passes": 2.1596,
                "accurate_opp_half_passes": 1.8108,
                "crosses_total": 0.1602,
                "crosses_accurate": 0.0736,
                "touches": 7.3939,
                "possession_lost": 1.3712,
                "dispossessed": 0.2961,
                "duels_lost": 1.1942,
                "aerial_lost": 0.1199,
                "total_contest": 0.1935,
                "won_contest": 0.0736,
                "ball_recovery": 0.5741,
                "challenges_lost": 0.2688,
                "fouls": 0.3895,
                "fouls_drawn": 0.1019,
                "blocks": 0.0,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0059,
                "expected_assists": 0.0054,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 1.3858,
                "total_progression": 5.9129,
                "progressive_carries": 0.1846,
                "key_pass": 0.0736,
                "shots_off_target": 0.185
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 6,
                  "trained_at": "2026-11-01T11:26:13.602980+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 631,
                    "rows": 22117
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-25",
                    "opponent": "Levante UD",
                    "minutes": 62.0,
                    "is_starting": true,
                    "weight": 0.1585,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Málaga CF",
                    "minutes": 61.0,
                    "is_starting": true,
                    "weight": 0.1347,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-10-11",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 9.0,
                    "is_starting": false,
                    "weight": 0.1145,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Elche",
                    "minutes": 9.0,
                    "is_starting": false,
                    "weight": 0.0973,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-05-23",
                    "opponent": "Girona FC",
                    "minutes": 14.0,
                    "is_starting": false,
                    "weight": 0.0827,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-05-12",
                    "opponent": "Real Betis",
                    "minutes": 64.0,
                    "is_starting": true,
                    "weight": 0.0703,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-05-09",
                    "opponent": "Deportivo Alavés",
                    "minutes": 11.0,
                    "is_starting": false,
                    "weight": 0.0598,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-05-03",
                    "opponent": "Celta Vigo",
                    "minutes": 21.0,
                    "is_starting": false,
                    "weight": 0.0508,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-04-26",
                    "opponent": "Real Oviedo",
                    "minutes": 62.0,
                    "is_starting": true,
                    "weight": 0.0432,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2025-12-21",
                    "opponent": "Rayo Vallecano",
                    "minutes": 12.0,
                    "is_starting": true,
                    "weight": 0.0367,
                    "rating": 8.1
                  }
                ],
                "feature_row": {
                  "history_matches": 18.0,
                  "is_starting_11": 0.0,
                  "totalClearance": 0.9216,
                  "aerialWon": 0.1258,
                  "totalClearance_p90": 2.9104,
                  "totalTackle": 0.8097,
                  "totalTackle_p90": 2.4622
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.3075254559516907,
                    "model_output": 0.3075,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2892
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0467
                      },
                      {
                        "name": "touches",
                        "importance": 0.0285
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0256
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0216
                      }
                    ],
                    "decomposition": {
                      "base": 0.8711,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.4644
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0427
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0171
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0139
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0103
                        }
                      ],
                      "others": -0.0152,
                      "total": 0.3075,
                      "log_link": true,
                      "margin_base": -0.137969,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.761566
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.110821
                        },
                        {
                          "name": "totalPass",
                          "margin": -0.048155
                        },
                        {
                          "name": "accuratePass",
                          "margin": -0.040899
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.031428
                        }
                      ],
                      "others_margin": -0.04836
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 0.6652418971061707,
                    "model_output": 0.6652,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2446
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0686
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0555
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0437
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0249
                      }
                    ],
                    "decomposition": {
                      "base": 1.3875,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.7651
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": 0.0381
                        },
                        {
                          "name": "totalTackle",
                          "contribution": -0.0288
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.0225
                        },
                        {
                          "name": "press_vulnerability",
                          "contribution": 0.0201
                        }
                      ],
                      "others": -0.0091,
                      "total": 0.6652,
                      "log_link": true,
                      "margin_base": 0.327503,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.801712
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": 0.059388
                        },
                        {
                          "name": "totalTackle",
                          "margin": -0.044513
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.034992
                        },
                        {
                          "name": "press_vulnerability",
                          "margin": 0.030228
                        }
                      ],
                      "others_margin": -0.01349
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.4196092486381531,
                    "model_output": 0.4196,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1951
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0637
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0498
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0427
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0237
                      }
                    ],
                    "decomposition": {
                      "base": 0.8482,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.4659
                        },
                        {
                          "name": "totalTackle",
                          "contribution": -0.0175
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0132
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0132
                        },
                        {
                          "name": "challengeLost",
                          "contribution": 0.0122
                        }
                      ],
                      "others": 0.0426,
                      "total": 0.4196,
                      "log_link": true,
                      "margin_base": -0.164613,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.796862
                        },
                        {
                          "name": "totalTackle",
                          "margin": -0.046981
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.036826
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": 0.036803
                        },
                        {
                          "name": "challengeLost",
                          "margin": 0.033028
                        }
                      ],
                      "others_margin": 0.107021
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 0.6978281736373901,
                    "model_output": 0.6978,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2927
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.1441
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.033
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0239
                      }
                    ],
                    "decomposition": {
                      "base": 3.4157,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -2.1785
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.3007
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.1144
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0631
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0395
                        }
                      ],
                      "others": -0.0217,
                      "total": 0.6978,
                      "log_link": true,
                      "margin_base": 1.228383,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -1.01554
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.27845
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": -0.130255
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.079902
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.053401
                        }
                      ],
                      "others_margin": -0.030617
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.24572353065013885,
                    "model_output": 0.2457,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1566
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.1557
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0794
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0422
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.027
                      }
                    ],
                    "decomposition": {
                      "base": 1.3697,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.7926
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.2094
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0418
                        },
                        {
                          "name": "aerialLost",
                          "contribution": -0.0237
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0163
                        }
                      ],
                      "others": -0.0402,
                      "total": 0.2457,
                      "log_link": true,
                      "margin_base": 0.314594,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.864263
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.450742
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.120553
                        },
                        {
                          "name": "aerialLost",
                          "margin": -0.075578
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.055515
                        }
                      ],
                      "others_margin": -0.151491
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.1850045919418335,
                    "model_output": 0.185,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0952
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0683
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.0339
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0311
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.4812,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2257
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0229
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0183
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0136
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.0078
                        }
                      ],
                      "others": -0.0079,
                      "total": 0.185,
                      "log_link": false,
                      "margin_base": 0.481248,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.225742
                        },
                        {
                          "name": "totalProgression",
                          "margin": -0.022895
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.018252
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.013606
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": -0.007836
                        }
                      ],
                      "others_margin": -0.007913
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.664750576019287,
                    "model_output": 6.6648,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "accuratePass",
                        "importance": 0.0681
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.063
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.057
                      },
                      {
                        "name": "rating",
                        "importance": 0.0377
                      },
                      {
                        "name": "touches",
                        "importance": 0.0302
                      }
                    ],
                    "decomposition": {
                      "base": 6.7988,
                      "items": [
                        {
                          "name": "totalPass",
                          "contribution": -0.0438
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0176
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0159
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0134
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0118
                        }
                      ],
                      "others": -0.0315,
                      "total": 6.6648,
                      "log_link": false,
                      "margin_base": 6.798781,
                      "item_margins": [
                        {
                          "name": "totalPass",
                          "margin": -0.043836
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.017644
                        },
                        {
                          "name": "accuratePass",
                          "margin": -0.015918
                        },
                        {
                          "name": "is_starting_11",
                          "margin": -0.013369
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.011793
                        }
                      ],
                      "others_margin": -0.03147
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "substitute",
                  "history_matches": 18,
                  "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 1.0046, quality 0.575)",
              "stats": {
                "interceptions": 0.3089,
                "tackles": 0.6683,
                "tackles_won": 0.4215,
                "clearances": 0.701,
                "aerial_won": 0.2469,
                "total_shots": 0.1859,
                "rating": 6.6648,
                "minutes": 13.77,
                "total_pass": 3.2479,
                "accurate_pass": 2.8347,
                "duels_won": 0.7161,
                "total_long_balls": 0.4113,
                "accurate_long_balls": 0.2503,
                "total_own_half_passes": 1.0784,
                "accurate_own_half_passes": 1.0156,
                "total_opp_half_passes": 2.1695,
                "accurate_opp_half_passes": 1.8191,
                "crosses_total": 0.1609,
                "crosses_accurate": 0.0739,
                "touches": 7.4279,
                "possession_lost": 1.3775,
                "dispossessed": 0.2975,
                "duels_lost": 1.1997,
                "aerial_lost": 0.1205,
                "total_contest": 0.1944,
                "won_contest": 0.0739,
                "ball_recovery": 0.5767,
                "challenges_lost": 0.27,
                "fouls": 0.3913,
                "fouls_drawn": 0.1024,
                "blocks": 0.0,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0059,
                "expected_assists": 0.0054,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 1.3922,
                "total_progression": 5.9401,
                "progressive_carries": 0.1854,
                "key_pass": 0.0739,
                "shots_off_target": 0.1859
              },
              "params": {
                "market_value_eur": 14600000,
                "quality_factor": 0.5748,
                "boost_factor": 1.0046,
                "reference_quality": 0.505,
                "history_matches": 18,
                "history_shrink": 0.2174,
                "market_value_known": true
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 13.8 to 14.1 expected minutes (appearance prob 0.32)",
              "stats": {
                "interceptions": 0.3167,
                "tackles": 0.6851,
                "tackles_won": 0.4321,
                "clearances": 0.7186,
                "aerial_won": 0.2531,
                "total_shots": 0.1906,
                "rating": 6.6648,
                "minutes": 14.12,
                "total_pass": 3.3296,
                "accurate_pass": 2.906,
                "duels_won": 0.7341,
                "total_long_balls": 0.4216,
                "accurate_long_balls": 0.2566,
                "total_own_half_passes": 1.1055,
                "accurate_own_half_passes": 1.0411,
                "total_opp_half_passes": 2.224,
                "accurate_opp_half_passes": 1.8648,
                "crosses_total": 0.1649,
                "crosses_accurate": 0.0758,
                "touches": 7.6147,
                "possession_lost": 1.4121,
                "dispossessed": 0.2975,
                "duels_lost": 1.2299,
                "aerial_lost": 0.1205,
                "total_contest": 0.1993,
                "won_contest": 0.0758,
                "ball_recovery": 0.5912,
                "challenges_lost": 0.27,
                "fouls": 0.4011,
                "fouls_drawn": 0.105,
                "blocks": 0.0,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.006,
                "expected_assists": 0.0055,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 1.4272,
                "total_progression": 6.0895,
                "progressive_carries": 0.1901,
                "key_pass": 0.0758,
                "shots_off_target": 0.1906,
                "bench_appearance_probability": 0.323,
                "bench_expected_minutes": 14.12
              },
              "params": {
                "expected_minutes": 14.12,
                "projection_minutes": 13.77,
                "minutes_scale": 1.0251,
                "appearance_probability": 0.323
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 0.3167,
                "tackles": 0.6851,
                "tackles_won": 0.4321,
                "clearances": 0.7186,
                "aerial_won": 0.2531,
                "total_shots": 0.1906,
                "rating": 6.6648,
                "minutes": 14.12,
                "total_pass": 3.3296,
                "accurate_pass": 2.906,
                "duels_won": 0.7341,
                "total_long_balls": 0.4216,
                "accurate_long_balls": 0.2566,
                "total_own_half_passes": 1.1055,
                "accurate_own_half_passes": 1.0411,
                "total_opp_half_passes": 2.224,
                "accurate_opp_half_passes": 1.8648,
                "crosses_total": 0.1649,
                "crosses_accurate": 0.0758,
                "touches": 7.6147,
                "possession_lost": 1.4121,
                "dispossessed": 0.2975,
                "duels_lost": 1.2299,
                "aerial_lost": 0.1205,
                "total_contest": 0.1993,
                "won_contest": 0.0758,
                "ball_recovery": 0.5912,
                "challenges_lost": 0.27,
                "fouls": 0.4011,
                "fouls_drawn": 0.105,
                "blocks": 0.0,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.006,
                "expected_assists": 0.0055,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 1.4272,
                "total_progression": 6.0895,
                "progressive_carries": 0.1901,
                "key_pass": 0.0758,
                "shots_off_target": 0.1906,
                "bench_appearance_probability": 0.323,
                "bench_expected_minutes": 14.12
              },
              "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.3167,
                "tackles": 0.6851,
                "tackles_won": 0.4321,
                "clearances": 0.7186,
                "aerial_won": 0.2531,
                "total_shots": 0.1906,
                "rating": 6.6648,
                "minutes": 14.12,
                "total_pass": 3.3296,
                "accurate_pass": 2.906,
                "duels_won": 0.7341,
                "total_long_balls": 0.4216,
                "accurate_long_balls": 0.2566,
                "total_own_half_passes": 1.1055,
                "accurate_own_half_passes": 1.0411,
                "total_opp_half_passes": 2.224,
                "accurate_opp_half_passes": 1.8648,
                "crosses_total": 0.1649,
                "crosses_accurate": 0.0758,
                "touches": 7.6147,
                "possession_lost": 1.4121,
                "dispossessed": 0.2975,
                "duels_lost": 1.2299,
                "aerial_lost": 0.1205,
                "total_contest": 0.1993,
                "won_contest": 0.0758,
                "ball_recovery": 0.5912,
                "challenges_lost": 0.27,
                "fouls": 0.4011,
                "fouls_drawn": 0.105,
                "blocks": 0.0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.006,
                "expected_assists": 0.0055,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 1.4272,
                "total_progression": 6.0895,
                "progressive_carries": 0.1901,
                "key_pass": 0.0758,
                "shots_off_target": 0.1906,
                "bench_appearance_probability": 0.323,
                "bench_expected_minutes": 14.12,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "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.323,
                "projected_substitutes": 4,
                "scoreline_reset": true
              }
            },
            {
              "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": {
                "interceptions": 0.3167,
                "tackles": 0.6851,
                "tackles_won": 0.4321,
                "clearances": 0.7186,
                "aerial_won": 0.2531,
                "total_shots": 0.1906,
                "rating": 6.6648,
                "minutes": 14.12,
                "total_pass": 3.3296,
                "accurate_pass": 2.906,
                "duels_won": 0.7341,
                "total_long_balls": 0.4216,
                "accurate_long_balls": 0.2566,
                "total_own_half_passes": 1.1055,
                "accurate_own_half_passes": 1.0411,
                "total_opp_half_passes": 2.224,
                "accurate_opp_half_passes": 1.8648,
                "crosses_total": 0.1649,
                "crosses_accurate": 0.0758,
                "touches": 7.6147,
                "possession_lost": 1.4121,
                "dispossessed": 0.2975,
                "duels_lost": 1.2299,
                "aerial_lost": 0.1205,
                "total_contest": 0.1993,
                "won_contest": 0.0758,
                "ball_recovery": 0.5912,
                "challenges_lost": 0.27,
                "fouls": 0.4011,
                "fouls_drawn": 0.105,
                "blocks": 0.0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.006,
                "expected_assists": 0.0055,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 1.4272,
                "total_progression": 6.0895,
                "progressive_carries": 0.1901,
                "key_pass": 0.0758,
                "shots_off_target": 0.1906,
                "bench_appearance_probability": 0.323,
                "bench_expected_minutes": 14.12,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "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": 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": 4463,
                "fifa_rank": 4266.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 72.0
              }
            }
          ]
        },
        "Igor Zubeldia": {
          "player_id": 838159,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 5,
          "height": 180,
          "market_value": 6300000,
          "stats": {
            "interceptions": 0,
            "tackles": 1,
            "tackles_won": 0,
            "clearances": 2,
            "aerial_won": 1,
            "total_shots": 0,
            "rating": 6.7388,
            "minutes": 25,
            "total_pass": 10,
            "accurate_pass": 8,
            "duels_won": 1,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "total_own_half_passes": 7,
            "accurate_own_half_passes": 6,
            "total_opp_half_passes": 4,
            "accurate_opp_half_passes": 3,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 16,
            "possession_lost": 2.2325,
            "dispossessed": 0.1946,
            "duels_lost": 1,
            "aerial_lost": 1,
            "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.0029,
            "expected_assists": 0.0009,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 2,
            "total_progression": 0,
            "progressive_carries": 0,
            "key_pass": 0,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.316,
            "bench_expected_minutes": 24.88,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 4,
            "projected_substitution_expected_count": 2.572,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "available_bench_not_projected_used",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 80.0
          },
          "latest_10_games": [
            {
              "match_id": 16421073.0,
              "match_date": "2026-10-18",
              "home_team": "Málaga CF",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 29,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0004,
                "total_shots": 0,
                "total_pass": 15,
                "accurate_pass": 12,
                "clearances": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421067.0,
              "match_date": "2026-10-11",
              "home_team": "Real Sociedad",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 21,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0121,
                "expected_assists": 0.0,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 5,
                "accurate_pass": 4,
                "clearances": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416319.0,
              "match_date": "2026-09-07",
              "home_team": "Elche",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Elche",
              "stats": {
                "minutes": 90,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0014,
                "total_shots": 0,
                "total_pass": 29,
                "accurate_pass": 23,
                "tackles": 4,
                "tackles_won": 3,
                "interceptions": 1,
                "clearances": 7,
                "aerial_won": 1,
                "duels_won": 5,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416340.0,
              "match_date": "2026-09-03",
              "home_team": "Real Sociedad",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 90,
                "rating": 7.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0125,
                "total_shots": 0,
                "total_pass": 56,
                "accurate_pass": 52,
                "key_pass": 1,
                "tackles": 3,
                "tackles_won": 2,
                "interceptions": 2,
                "clearances": 4,
                "duels_won": 4,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416310.0,
              "match_date": "2026-08-29",
              "home_team": "Real Sociedad",
              "away_team": "Espanyol",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 90,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0483,
                "total_shots": 0,
                "total_pass": 52,
                "accurate_pass": 41,
                "key_pass": 1,
                "tackles": 3,
                "interceptions": 2,
                "clearances": 3,
                "aerial_won": 3,
                "duels_won": 6,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421051.0,
              "match_date": "2026-08-26",
              "home_team": "Real Madrid",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 33,
                "rating": 6.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0038,
                "total_shots": 0,
                "total_pass": 20,
                "accurate_pass": 17,
                "tackles": 3,
                "tackles_won": 2,
                "interceptions": 1,
                "clearances": 1,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416293.0,
              "match_date": "2026-08-21",
              "home_team": "Real Betis",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 90,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.007,
                "total_shots": 0,
                "total_pass": 75,
                "accurate_pass": 65,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 1,
                "aerial_won": 3,
                "duels_won": 4,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083719.0,
              "match_date": "2026-05-23",
              "home_team": "Espanyol",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0056,
                "total_shots": 0,
                "total_pass": 46,
                "accurate_pass": 44,
                "tackles": 3,
                "tackles_won": 1,
                "clearances": 4,
                "duels_won": 3,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083687.0,
              "match_date": "2026-05-17",
              "home_team": "Real Sociedad",
              "away_team": "Valencia",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Valencia",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0238,
                "total_shots": 0,
                "total_pass": 77,
                "accurate_pass": 72,
                "tackles": 3,
                "tackles_won": 2,
                "interceptions": 1,
                "clearances": 6,
                "aerial_won": 3,
                "duels_won": 6,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083624.0,
              "match_date": "2026-05-14",
              "home_team": "Girona FC",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Girona FC",
              "stats": {
                "minutes": 9,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "total_shots": 0
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 1740,
            "combined_rank_score": 696.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 698.0,
            "sofascore_rating": 6.7,
            "sofascore_appearances": 4.0,
            "fifa_rank": 694.0,
            "fifa_overall": 80.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 13,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.7388,
            "source_file": "data/player_rankings.csv",
            "player_name": "Igor Zubeldia",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Nicko Sensoli",
                  "ranking": 1735
                },
                {
                  "player_name": "Giorgos Masouras",
                  "ranking": 1736
                },
                {
                  "player_name": "Ramiro González",
                  "ranking": 1737
                },
                {
                  "player_name": "Ho-yeong Seong",
                  "ranking": 1738
                },
                {
                  "player_name": "Bekzod Sulaymonov",
                  "ranking": 1739
                }
              ],
              "lower": [
                {
                  "player_name": "Muhriddin  Pazildinov",
                  "ranking": 1741
                },
                {
                  "player_name": "Vicente Vega",
                  "ranking": 1742
                },
                {
                  "player_name": "Enes Mahmutović",
                  "ranking": 1743
                },
                {
                  "player_name": "Ľubomír Šatka",
                  "ranking": 1744
                },
                {
                  "player_name": "Myeong-heui Choi",
                  "ranking": 1745
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.784,
          "history_matches": 32,
          "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": 32,
            "data_confidence": 0.784,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 24.88,
            "bench_appearance_prob": 0.316,
            "market_value_adjustment": 0.9989,
            "fbref_prior_metrics": {
              "squad": "Real Sociedad",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 4.0,
              "starts": 3.0,
              "sub_appearances": 1.0,
              "minutes_per_sub": 34.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "prior_reliability": 0.2267
            },
            "rationale": "Bench projection scaled from XGBoost D_service (32 historical appearances) to 24.9 expected mins (appearance prob 0.32); FBref playing time empirical prior: 1.0 sub appearances, 34.0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 7 target models",
              "stats": {
                "interceptions": 0.3378,
                "tackles": 0.5855,
                "tackles_won": 0.3136,
                "clearances": 1.5824,
                "aerial_won": 0.5646,
                "total_shots": 0.1076,
                "rating": 6.7388,
                "minutes": 24.35,
                "total_pass": 10.0722,
                "accurate_pass": 8.3089,
                "duels_won": 0.7252,
                "total_long_balls": 0.8344,
                "accurate_long_balls": 0.1408,
                "total_own_half_passes": 6.6007,
                "accurate_own_half_passes": 5.7466,
                "total_opp_half_passes": 3.4715,
                "accurate_opp_half_passes": 2.5623,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 15.3484,
                "possession_lost": 2.1873,
                "dispossessed": 0.1948,
                "duels_lost": 0.848,
                "aerial_lost": 0.6532,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 0.6188,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.0,
                "blocks": 0.2696,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0028,
                "expected_assists": 0.0009,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 2.2128,
                "total_progression": 0.0769,
                "progressive_carries": 0.0,
                "key_pass": 0.0,
                "shots_off_target": 0.1076
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 6,
                  "trained_at": "2026-11-01T11:26:13.602980+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 631,
                    "rows": 22117
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Málaga CF",
                    "minutes": 29.0,
                    "is_starting": false,
                    "weight": 0.1508,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-10-11",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 21.0,
                    "is_starting": false,
                    "weight": 0.1282,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Elche",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.109,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-09-03",
                    "opponent": "Celta Vigo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0926,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-08-29",
                    "opponent": "Espanyol",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0787,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-08-26",
                    "opponent": "Real Madrid",
                    "minutes": 33.0,
                    "is_starting": false,
                    "weight": 0.0669,
                    "rating": 6.0
                  },
                  {
                    "match_date": "2026-08-21",
                    "opponent": "Real Betis",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0569,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-05-23",
                    "opponent": "Espanyol",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0484,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-05-17",
                    "opponent": "Valencia",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0411,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-05-14",
                    "opponent": "Girona FC",
                    "minutes": 9.0,
                    "is_starting": false,
                    "weight": 0.0349,
                    "rating": 6.4
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 0.0,
                  "totalClearance": 3.3218,
                  "aerialWon": 0.9805,
                  "totalClearance_p90": 4.662,
                  "totalTackle": 1.7444,
                  "totalTackle_p90": 2.1024
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.3378421664237976,
                    "model_output": 0.3378,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2892
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0467
                      },
                      {
                        "name": "touches",
                        "importance": 0.0285
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0256
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0216
                      }
                    ],
                    "decomposition": {
                      "base": 0.8711,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.4865
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": -0.0128
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0083
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": -0.0064
                        },
                        {
                          "name": "interceptionWon_p90",
                          "contribution": -0.0049
                        }
                      ],
                      "others": -0.0144,
                      "total": 0.3378,
                      "log_link": true,
                      "margin_base": -0.137969,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.817562
                        },
                        {
                          "name": "ballRecovery_p90",
                          "margin": -0.033727
                        },
                        {
                          "name": "ballRecovery",
                          "margin": -0.022528
                        },
                        {
                          "name": "duelWon_p90",
                          "margin": -0.017639
                        },
                        {
                          "name": "interceptionWon_p90",
                          "margin": -0.013803
                        }
                      ],
                      "others_margin": -0.041948
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 0.5855464935302734,
                    "model_output": 0.5855,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2446
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0686
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0555
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0437
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0249
                      }
                    ],
                    "decomposition": {
                      "base": 1.3875,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.7585
                        },
                        {
                          "name": "challengeLost",
                          "contribution": -0.0246
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.0223
                        },
                        {
                          "name": "totalTackle",
                          "contribution": 0.0216
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.017
                        }
                      ],
                      "others": -0.0352,
                      "total": 0.5855,
                      "log_link": true,
                      "margin_base": 0.327503,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.791068
                        },
                        {
                          "name": "challengeLost",
                          "margin": -0.039956
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": -0.037625
                        },
                        {
                          "name": "totalTackle",
                          "margin": 0.036474
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.027727
                        }
                      ],
                      "others_margin": -0.058264
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.3136189579963684,
                    "model_output": 0.3136,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1951
                      },
                      {
                        "name": "totalTackle",
                        "importance": 0.0637
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0498
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0427
                      },
                      {
                        "name": "press_vulnerability",
                        "importance": 0.0237
                      }
                    ],
                    "decomposition": {
                      "base": 0.8482,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.478
                        },
                        {
                          "name": "challengeLost",
                          "contribution": -0.0188
                        },
                        {
                          "name": "totalTackle",
                          "contribution": 0.0165
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0144
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.0098
                        }
                      ],
                      "others": -0.0497,
                      "total": 0.3136,
                      "log_link": true,
                      "margin_base": -0.164613,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.829106
                        },
                        {
                          "name": "challengeLost",
                          "margin": -0.052135
                        },
                        {
                          "name": "totalTackle",
                          "margin": 0.045915
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.039969
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.027465
                        }
                      ],
                      "others_margin": -0.147133
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 1.582412600517273,
                    "model_output": 1.5824,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2927
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.1441
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.033
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0239
                      }
                    ],
                    "decomposition": {
                      "base": 3.4157,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -2.2072
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.1014
                        },
                        {
                          "name": "totalClearance",
                          "contribution": 0.0651
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0619
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0633
                        }
                      ],
                      "others": 0.0822,
                      "total": 1.5824,
                      "log_link": true,
                      "margin_base": 1.228383,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -1.038999
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.080592
                        },
                        {
                          "name": "totalClearance",
                          "margin": 0.048485
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.044029
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.043091
                        }
                      ],
                      "others_margin": 0.053369
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.5645778179168701,
                    "model_output": 0.5646,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1566
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.1557
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0794
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0422
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.027
                      }
                    ],
                    "decomposition": {
                      "base": 1.3697,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.8324
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0664
                        },
                        {
                          "name": "aerialLost",
                          "contribution": 0.0338
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.027
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0216
                        }
                      ],
                      "others": 0.0113,
                      "total": 0.5646,
                      "log_link": true,
                      "margin_base": 0.314594,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.935825
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.131974
                        },
                        {
                          "name": "aerialLost",
                          "margin": 0.06926
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.052126
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": 0.039896
                        }
                      ],
                      "others_margin": 0.020245
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.10755758732557297,
                    "model_output": 0.1076,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0952
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0683
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.0339
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0311
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.4812,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1899
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0925
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0169
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0132
                        },
                        {
                          "name": "totalProgression",
                          "contribution": 0.0106
                        }
                      ],
                      "others": -0.0717,
                      "total": 0.1076,
                      "log_link": false,
                      "margin_base": 0.481248,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.189885
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.092451
                        },
                        {
                          "name": "rating",
                          "margin": -0.016877
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.013208
                        },
                        {
                          "name": "totalProgression",
                          "margin": 0.010613
                        }
                      ],
                      "others_margin": -0.071883
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.738800525665283,
                    "model_output": 6.7388,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "accuratePass",
                        "importance": 0.0681
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.063
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.057
                      },
                      {
                        "name": "rating",
                        "importance": 0.0377
                      },
                      {
                        "name": "touches",
                        "importance": 0.0302
                      }
                    ],
                    "decomposition": {
                      "base": 6.7988,
                      "items": [
                        {
                          "name": "rating",
                          "contribution": -0.017
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0163
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.016
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": -0.0108
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0101
                        }
                      ],
                      "others": 0.0102,
                      "total": 6.7388,
                      "log_link": false,
                      "margin_base": 6.798781,
                      "item_margins": [
                        {
                          "name": "rating",
                          "margin": -0.017025
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.016288
                        },
                        {
                          "name": "is_starting_11",
                          "margin": -0.016025
                        },
                        {
                          "name": "duelWon_p90",
                          "margin": -0.010757
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.01006
                        }
                      ],
                      "others_margin": 0.010176
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "substitute",
                  "history_matches": 32,
                  "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.9989, quality 0.478)",
              "stats": {
                "interceptions": 0.3375,
                "tackles": 0.5849,
                "tackles_won": 0.3133,
                "clearances": 1.5807,
                "aerial_won": 0.564,
                "total_shots": 0.1075,
                "rating": 6.7388,
                "minutes": 24.35,
                "total_pass": 10.0611,
                "accurate_pass": 8.2998,
                "duels_won": 0.7244,
                "total_long_balls": 0.8335,
                "accurate_long_balls": 0.1406,
                "total_own_half_passes": 6.5934,
                "accurate_own_half_passes": 5.7403,
                "total_opp_half_passes": 3.4677,
                "accurate_opp_half_passes": 2.5595,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 15.3315,
                "possession_lost": 2.1849,
                "dispossessed": 0.1946,
                "duels_lost": 0.8471,
                "aerial_lost": 0.6525,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 0.6181,
                "challenges_lost": 0.0,
                "fouls": 0.0,
                "fouls_drawn": 0.0,
                "blocks": 0.2693,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0028,
                "expected_assists": 0.0009,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 2.2104,
                "total_progression": 0.0768,
                "progressive_carries": 0.0,
                "key_pass": 0.0,
                "shots_off_target": 0.1075
              },
              "params": {
                "market_value_eur": 6300000,
                "quality_factor": 0.4781,
                "boost_factor": 0.9989,
                "reference_quality": 0.505,
                "history_matches": 32,
                "history_shrink": 0.1351,
                "market_value_known": true
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0199)",
              "stats": {
                "interceptions": 0.3387,
                "tackles": 0.5849,
                "tackles_won": 0.3134,
                "clearances": 1.5807,
                "aerial_won": 0.564,
                "total_shots": 0.1054,
                "rating": 6.7388,
                "minutes": 24.35,
                "total_pass": 10.0611,
                "accurate_pass": 8.2998,
                "duels_won": 0.7244,
                "total_long_balls": 0.8335,
                "accurate_long_balls": 0.1406,
                "total_own_half_passes": 6.5934,
                "accurate_own_half_passes": 5.7403,
                "total_opp_half_passes": 3.4677,
                "accurate_opp_half_passes": 2.5595,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 15.3315,
                "possession_lost": 2.1849,
                "dispossessed": 0.1946,
                "duels_lost": 0.8471,
                "aerial_lost": 0.6525,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 0.6181,
                "challenges_lost": 0.0,
                "fouls": 0.0048,
                "fouls_drawn": 0.0016,
                "blocks": 0.2693,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0028,
                "expected_assists": 0.0009,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 2.2104,
                "total_progression": 0.0768,
                "progressive_carries": 0.0,
                "key_pass": 0.0,
                "shots_off_target": 0.1075
              },
              "params": {
                "blend_weight": 0.0199,
                "history_matches": 32,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.2706,
                "prior_reliability": 0.2267,
                "competition": "La Liga",
                "squad": "Real Sociedad"
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 24.4 to 24.9 expected minutes (appearance prob 0.32)",
              "stats": {
                "interceptions": 0.3461,
                "tackles": 0.5976,
                "tackles_won": 0.3202,
                "clearances": 1.6151,
                "aerial_won": 0.5763,
                "total_shots": 0.1098,
                "rating": 6.7388,
                "minutes": 24.88,
                "total_pass": 10.2801,
                "accurate_pass": 8.4805,
                "duels_won": 0.7402,
                "total_long_balls": 0.8516,
                "accurate_long_balls": 0.1437,
                "total_own_half_passes": 6.7369,
                "accurate_own_half_passes": 5.8652,
                "total_opp_half_passes": 3.5432,
                "accurate_opp_half_passes": 2.6152,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 15.6652,
                "possession_lost": 2.2325,
                "dispossessed": 0.1946,
                "duels_lost": 0.8655,
                "aerial_lost": 0.6525,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 0.6316,
                "challenges_lost": 0.0,
                "fouls": 0.0049,
                "fouls_drawn": 0.0016,
                "blocks": 0.2752,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0029,
                "expected_assists": 0.0009,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 2.2585,
                "total_progression": 0.0785,
                "progressive_carries": 0.0,
                "key_pass": 0.0,
                "shots_off_target": 0.1098,
                "bench_appearance_probability": 0.316,
                "bench_expected_minutes": 24.88
              },
              "params": {
                "expected_minutes": 24.88,
                "projection_minutes": 24.35,
                "minutes_scale": 1.0218,
                "appearance_probability": 0.316
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 0.3461,
                "tackles": 0.5976,
                "tackles_won": 0.3202,
                "clearances": 1.6151,
                "aerial_won": 0.5763,
                "total_shots": 0.1098,
                "rating": 6.7388,
                "minutes": 24.88,
                "total_pass": 10.2801,
                "accurate_pass": 8.4805,
                "duels_won": 0.7402,
                "total_long_balls": 0.8516,
                "accurate_long_balls": 0.1437,
                "total_own_half_passes": 6.7369,
                "accurate_own_half_passes": 5.8652,
                "total_opp_half_passes": 3.5432,
                "accurate_opp_half_passes": 2.6152,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 15.6652,
                "possession_lost": 2.2325,
                "dispossessed": 0.1946,
                "duels_lost": 0.8655,
                "aerial_lost": 0.6525,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 0.6316,
                "challenges_lost": 0.0,
                "fouls": 0.0049,
                "fouls_drawn": 0.0016,
                "blocks": 0.2752,
                "goals": 0.0,
                "goal_rate": 0.0,
                "assists": 0.0,
                "assist_rate": 0.0,
                "expected_goals": 0.0029,
                "expected_assists": 0.0009,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 2.2585,
                "total_progression": 0.0785,
                "progressive_carries": 0.0,
                "key_pass": 0.0,
                "shots_off_target": 0.1098,
                "bench_appearance_probability": 0.316,
                "bench_expected_minutes": 24.88
              },
              "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.3461,
                "tackles": 0.5976,
                "tackles_won": 0.3202,
                "clearances": 1.6151,
                "aerial_won": 0.5763,
                "total_shots": 0.1098,
                "rating": 6.7388,
                "minutes": 24.88,
                "total_pass": 10.2801,
                "accurate_pass": 8.4805,
                "duels_won": 0.7402,
                "total_long_balls": 0.8516,
                "accurate_long_balls": 0.1437,
                "total_own_half_passes": 6.7369,
                "accurate_own_half_passes": 5.8652,
                "total_opp_half_passes": 3.5432,
                "accurate_opp_half_passes": 2.6152,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 15.6652,
                "possession_lost": 2.2325,
                "dispossessed": 0.1946,
                "duels_lost": 0.8655,
                "aerial_lost": 0.6525,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 0.6316,
                "challenges_lost": 0.0,
                "fouls": 0.0049,
                "fouls_drawn": 0.0016,
                "blocks": 0.2752,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0029,
                "expected_assists": 0.0009,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 2.2585,
                "total_progression": 0.0785,
                "progressive_carries": 0.0,
                "key_pass": 0.0,
                "shots_off_target": 0.1098,
                "bench_appearance_probability": 0.316,
                "bench_expected_minutes": 24.88,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "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.316,
                "projected_substitutes": 4,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 80.0)",
              "stats": {
                "interceptions": 0.3461,
                "tackles": 0.5976,
                "tackles_won": 0.3202,
                "clearances": 1.6151,
                "aerial_won": 0.5763,
                "total_shots": 0.1098,
                "rating": 6.7388,
                "minutes": 24.88,
                "total_pass": 10.2801,
                "accurate_pass": 8.4805,
                "duels_won": 0.7402,
                "total_long_balls": 0.8516,
                "accurate_long_balls": 0.1437,
                "total_own_half_passes": 6.7369,
                "accurate_own_half_passes": 5.8652,
                "total_opp_half_passes": 3.5432,
                "accurate_opp_half_passes": 2.6152,
                "crosses_total": 0.0,
                "crosses_accurate": 0.0,
                "touches": 15.6652,
                "possession_lost": 2.2325,
                "dispossessed": 0.1946,
                "duels_lost": 0.8655,
                "aerial_lost": 0.6525,
                "total_contest": 0.0,
                "won_contest": 0.0,
                "ball_recovery": 0.6316,
                "challenges_lost": 0.0,
                "fouls": 0.0049,
                "fouls_drawn": 0.0016,
                "blocks": 0.2752,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0029,
                "expected_assists": 0.0009,
                "shots_on_target": 0.0,
                "big_chances_created": 0.0,
                "xgot": 0.0,
                "ball_carries": 2.2585,
                "total_progression": 0.0785,
                "progressive_carries": 0.0,
                "key_pass": 0.0,
                "shots_off_target": 0.1098,
                "bench_appearance_probability": 0.316,
                "bench_expected_minutes": 24.88,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "available_bench_not_projected_used",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 80.0
              },
              "params": {
                "match_squad_rank": 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": 1740,
                "fifa_rank": 694.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 80.0
              }
            }
          ]
        },
        "Arsen Zakharyan": {
          "player_id": 1066045,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 23,
          "height": 183,
          "market_value": 8700000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0193,
            "assist_rate": 0.0467,
            "assists": 0,
            "expected_goals": 0.031,
            "goal_rate": 0.0511,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 0,
            "rating": 6.6805,
            "minutes": 12,
            "total_pass": 7,
            "accurate_pass": 5,
            "duels_won": 0,
            "total_long_balls": 1,
            "accurate_long_balls": 1,
            "total_own_half_passes": 2,
            "accurate_own_half_passes": 2,
            "total_opp_half_passes": 5,
            "accurate_opp_half_passes": 4,
            "crosses_total": 1,
            "crosses_accurate": 0,
            "touches": 10,
            "possession_lost": 3.4776,
            "dispossessed": 0.1973,
            "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.026,
            "ball_carries": 3,
            "total_progression": 7,
            "progressive_carries": 0,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.698,
            "bench_expected_minutes": 12.21,
            "projected_substitution_order": 1,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 4,
            "projected_substitution_expected_count": 2.572,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0303,
            "projected_assists": 0,
            "assist_probability": 0.019,
            "finishing_factor": 1.052,
            "creation_factor": 1.2287,
            "fifa_overall": 73.0
          },
          "latest_10_games": [
            {
              "match_id": 16421086.0,
              "match_date": "2026-10-25",
              "home_team": "Real Sociedad",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 5,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0725,
                "expected_assists": 0.0017,
                "total_shots": 1,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "total_pass": 3,
                "accurate_pass": 3,
                "tackles": 0,
                "tackles_won": 0,
                "interceptions": 0,
                "clearances": 0,
                "aerial_won": 0,
                "duels_won": 0,
                "ball_recovery": 0,
                "saves": 0
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421067.0,
              "match_date": "2026-10-11",
              "home_team": "Real Sociedad",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 56,
                "rating": 7.9,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.07,
                "expected_assists": 0.0135,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 21,
                "accurate_pass": 16,
                "clearances": 2,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416297.0,
              "match_date": "2026-09-20",
              "home_team": "Valencia",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Valencia",
              "stats": {
                "minutes": 10,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0004,
                "total_shots": 0,
                "total_pass": 2,
                "accurate_pass": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416332.0,
              "match_date": "2026-09-13",
              "home_team": "Real Sociedad",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 11,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0565,
                "total_shots": 0,
                "total_pass": 13,
                "accurate_pass": 10
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416293.0,
              "match_date": "2026-08-21",
              "home_team": "Real Betis",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 8,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0006,
                "total_shots": 0,
                "total_pass": 2,
                "accurate_pass": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083687.0,
              "match_date": "2026-05-17",
              "home_team": "Real Sociedad",
              "away_team": "Valencia",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Valencia",
              "stats": {
                "minutes": 57,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.1816,
                "total_shots": 0,
                "total_pass": 34,
                "accurate_pass": 27,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 2,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14081808.0,
              "match_date": "2026-03-20",
              "home_team": "Villarreal",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 8,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.48,
                "expected_assists": 0.0533,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 12,
                "accurate_pass": 9
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083602.0,
              "match_date": "2026-03-07",
              "home_team": "Atlético Madrid",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 25,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0028,
                "total_shots": 0,
                "total_pass": 10,
                "accurate_pass": 8,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14081818.0,
              "match_date": "2026-02-28",
              "home_team": "Mallorca",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Mallorca",
              "stats": {
                "minutes": 63,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0937,
                "expected_assists": 0.233,
                "total_shots": 3,
                "shots_off_target": 1,
                "total_pass": 16,
                "accurate_pass": 15,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14081792.0,
              "match_date": "2026-02-21",
              "home_team": "Real Sociedad",
              "away_team": "Real Oviedo",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Real Oviedo",
              "stats": {
                "minutes": 13,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.3302,
                "expected_assists": 0.0005,
                "total_shots": 4,
                "shots_on_target": 2,
                "shots_off_target": 1,
                "total_pass": 7,
                "accurate_pass": 4,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 4159,
            "combined_rank_score": 2169.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 822.0,
            "sofascore_rating": 6.6,
            "sofascore_appearances": 1.0,
            "fifa_rank": 3517.0,
            "fifa_overall": 73.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 16,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.6805,
            "source_file": "data/player_rankings.csv",
            "player_name": "Arsen Zakharyan",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Mujaid",
                  "ranking": 4154
                },
                {
                  "player_name": "Adriano Bertaccini",
                  "ranking": 4155
                },
                {
                  "player_name": "Matthieu Epolo",
                  "ranking": 4156
                },
                {
                  "player_name": "Regan Slater",
                  "ranking": 4157
                },
                {
                  "player_name": "Abdelkahar Kadri",
                  "ranking": 4158
                }
              ],
              "lower": [
                {
                  "player_name": "Nicolò Tresoldi",
                  "ranking": 4160
                },
                {
                  "player_name": "Santiago Arias",
                  "ranking": 4161
                },
                {
                  "player_name": "Carlos Forbs",
                  "ranking": 4162
                },
                {
                  "player_name": "Kees Smit",
                  "ranking": 4163
                },
                {
                  "player_name": "Tjaronn Chery",
                  "ranking": 4164
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.75,
          "history_matches": 22,
          "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": 22,
            "data_confidence": 0.75,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 12.21,
            "bench_appearance_prob": 0.698,
            "market_value_adjustment": 1.0001,
            "fbref_prior_metrics": {
              "squad": "Real Sociedad",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 1.0,
              "starts": 0.0,
              "sub_appearances": 1.0,
              "minutes_per_sub": 4.0,
              "prior_reliability": 0.0
            },
            "rationale": "Bench projection scaled from XGBoost M_service (22 historical appearances) to 12.2 expected mins (appearance prob 0.70); FBref playing time empirical prior: 1.0 sub appearances, 4.0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 0.3362,
                "expected_assists": 0.0306,
                "assists": 0.0499,
                "assist_rate": 0.0499,
                "expected_goals": 0.0493,
                "goals": 0.0546,
                "goal_rate": 0.0546,
                "shots_on_target": 0.2041,
                "total_shots": 0.5096,
                "rating": 6.6805,
                "minutes": 13.05,
                "total_pass": 7.2664,
                "accurate_pass": 5.535,
                "duels_won": 0.4614,
                "total_long_balls": 0.8829,
                "accurate_long_balls": 0.5723,
                "total_own_half_passes": 1.9839,
                "accurate_own_half_passes": 1.724,
                "total_opp_half_passes": 5.2824,
                "accurate_opp_half_passes": 3.811,
                "crosses_total": 1.156,
                "crosses_accurate": 0.0365,
                "touches": 11.2052,
                "possession_lost": 3.7164,
                "dispossessed": 0.1973,
                "duels_lost": 0.9054,
                "aerial_won": 0.0866,
                "aerial_lost": 0.3186,
                "interceptions": 0.0,
                "tackles_won": 0.0889,
                "tackles": 0.181,
                "clearances": 0.0192,
                "total_contest": 0.1786,
                "won_contest": 0.0,
                "challenges_lost": 0.0917,
                "fouls": 0.1789,
                "fouls_drawn": 0.1938,
                "blocks": 0.1347,
                "big_chances_created": 0.0138,
                "big_chances_missed": 0.1425,
                "xgot": 0.0413,
                "ball_carries": 3.07,
                "total_progression": 7.6886,
                "progressive_carries": 0.2926,
                "shots_off_target": 0.3055
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 7,
                  "trained_at": "2026-11-01T11:27:07.750726+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 905,
                    "rows": 25067
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-25",
                    "opponent": "Levante UD",
                    "minutes": 5.0,
                    "is_starting": false,
                    "weight": 0.1543,
                    "rating": 0.0
                  },
                  {
                    "match_date": "2026-10-11",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 56.0,
                    "is_starting": true,
                    "weight": 0.1312,
                    "rating": 7.9
                  },
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Valencia",
                    "minutes": 10.0,
                    "is_starting": false,
                    "weight": 0.1115,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Atlético Madrid",
                    "minutes": 11.0,
                    "is_starting": false,
                    "weight": 0.0948,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-21",
                    "opponent": "Real Betis",
                    "minutes": 8.0,
                    "is_starting": false,
                    "weight": 0.0806,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-05-17",
                    "opponent": "Valencia",
                    "minutes": 57.0,
                    "is_starting": true,
                    "weight": 0.0685,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-03-20",
                    "opponent": "Villarreal",
                    "minutes": 8.0,
                    "is_starting": false,
                    "weight": 0.0582,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-03-07",
                    "opponent": "Atlético Madrid",
                    "minutes": 25.0,
                    "is_starting": false,
                    "weight": 0.0495,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-02-28",
                    "opponent": "Mallorca",
                    "minutes": 63.0,
                    "is_starting": true,
                    "weight": 0.0421,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-02-21",
                    "opponent": "Real Oviedo",
                    "minutes": 13.0,
                    "is_starting": false,
                    "weight": 0.0357,
                    "rating": 6.3
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 0.0,
                  "totalShots": 0.6812,
                  "creative_index": 0.1178,
                  "expectedGoals": 0.0654,
                  "expectedAssists": 0.0426,
                  "keyPass": 0.2306
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.33622226119041443,
                    "model_output": 0.3362,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1578
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1373
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0712
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0516
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0289
                      }
                    ],
                    "decomposition": {
                      "base": 0.8902,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.4465
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0384
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0235
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0119
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0104
                        }
                      ],
                      "others": -0.0233,
                      "total": 0.3362,
                      "log_link": true,
                      "margin_base": -0.116298,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.696284
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.0905
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": -0.059627
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.031779
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.028579
                        }
                      ],
                      "others_margin": -0.066917
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.03064700961112976,
                    "model_output": 0.0306,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1181
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.1136
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.1034
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0572
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0473
                      }
                    ],
                    "decomposition": {
                      "base": 0.0847,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0414
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0046
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0035
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.002
                        },
                        {
                          "name": "goalAssist",
                          "contribution": -0.0016
                        }
                      ],
                      "others": -0.005,
                      "total": 0.0306,
                      "log_link": true,
                      "margin_base": -2.468924,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.672173
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.111549
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.094766
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.056048
                        },
                        {
                          "name": "goalAssist",
                          "margin": -0.045289
                        }
                      ],
                      "others_margin": -0.148567
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.04992124065756798,
                    "model_output": 0.0499,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0627
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0445
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0417
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0324
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0293
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.022
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.006
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0052
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.004
                        },
                        {
                          "name": "totalCross",
                          "contribution": 0.0041
                        }
                      ],
                      "others": -0.0101,
                      "total": 0.0499,
                      "log_link": true,
                      "margin_base": -2.463472,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.298398
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.100041
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.095673
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.073593
                        },
                        {
                          "name": "totalCross",
                          "margin": 0.070879
                        }
                      ],
                      "others_margin": -0.184199
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.049280211329460144,
                    "model_output": 0.0493,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedGoals",
                        "importance": 0.1255
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0756
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0438
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0265
                      }
                    ],
                    "decomposition": {
                      "base": 0.0918,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0376
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0043
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0041
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0037
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": 0.0021
                        }
                      ],
                      "others": -0.0031,
                      "total": 0.0493,
                      "log_link": true,
                      "margin_base": -2.387963,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.527083
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.082436
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.078998
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.070609
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": 0.040578
                        }
                      ],
                      "others_margin": -0.061718
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.05460435524582863,
                    "model_output": 0.0546,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0923
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.067
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.041
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0334
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.0946,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.043
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0064
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0049
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": 0.0035
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0033
                        }
                      ],
                      "others": 0.0043,
                      "total": 0.0546,
                      "log_link": true,
                      "margin_base": -2.358385,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.606904
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.133091
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.102662
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "margin": 0.066768
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.063556
                        }
                      ],
                      "others_margin": 0.084865
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.20408284664154053,
                    "model_output": 0.2041,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.117
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0884
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0772
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0315
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0258
                      }
                    ],
                    "decomposition": {
                      "base": 0.3179,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1344
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": 0.0168
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.017
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0155
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": 0.0116
                        }
                      ],
                      "others": -0.0093,
                      "total": 0.2041,
                      "log_link": true,
                      "margin_base": -1.146086,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.549343
                        },
                        {
                          "name": "ballRecovery_p90",
                          "margin": 0.087595
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.081433
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.073917
                        },
                        {
                          "name": "interceptionWon",
                          "margin": 0.055653
                        }
                      ],
                      "others_margin": -0.044565
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.509556233882904,
                    "model_output": 0.5096,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1349
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1208
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0462
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.044
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0312
                      }
                    ],
                    "decomposition": {
                      "base": 0.9849,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.5069
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0984
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0545
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": 0.0287
                        },
                        {
                          "name": "goalAssist",
                          "contribution": -0.0281
                        }
                      ],
                      "others": 0.0749,
                      "total": 0.5096,
                      "log_link": false,
                      "margin_base": 0.984935,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.506936
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.098413
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.054549
                        },
                        {
                          "name": "ballRecovery",
                          "margin": 0.028704
                        },
                        {
                          "name": "goalAssist",
                          "margin": -0.028087
                        }
                      ],
                      "others_margin": 0.074804
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.680523872375488,
                    "model_output": 6.6805,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "rating",
                        "importance": 0.0864
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0749
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0486
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0482
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 6.8574,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0933
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0348
                        },
                        {
                          "name": "rating",
                          "contribution": -0.021
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0118
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.008
                        }
                      ],
                      "others": -0.0316,
                      "total": 6.6805,
                      "log_link": false,
                      "margin_base": 6.857404,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.093302
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.034794
                        },
                        {
                          "name": "rating",
                          "margin": -0.021014
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.011821
                        },
                        {
                          "name": "totalPass",
                          "margin": -0.007951
                        }
                      ],
                      "others_margin": -0.031641
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "substitute",
                  "history_matches": 22,
                  "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 1.0001, quality 0.507)",
              "stats": {
                "key_pass": 0.3363,
                "expected_assists": 0.0307,
                "assists": 0.0499,
                "assist_rate": 0.0499,
                "expected_goals": 0.0493,
                "goals": 0.0546,
                "goal_rate": 0.0546,
                "shots_on_target": 0.2041,
                "total_shots": 0.5096,
                "rating": 6.6805,
                "minutes": 13.05,
                "total_pass": 7.2671,
                "accurate_pass": 5.5356,
                "duels_won": 0.4614,
                "total_long_balls": 0.883,
                "accurate_long_balls": 0.5724,
                "total_own_half_passes": 1.9841,
                "accurate_own_half_passes": 1.7242,
                "total_opp_half_passes": 5.2829,
                "accurate_opp_half_passes": 3.8114,
                "crosses_total": 1.1561,
                "crosses_accurate": 0.0365,
                "touches": 11.2063,
                "possession_lost": 3.7168,
                "dispossessed": 0.1973,
                "duels_lost": 0.9055,
                "aerial_won": 0.0866,
                "aerial_lost": 0.3186,
                "interceptions": 0.0,
                "tackles_won": 0.0889,
                "tackles": 0.181,
                "clearances": 0.0192,
                "total_contest": 0.1786,
                "won_contest": 0.0,
                "challenges_lost": 0.0917,
                "fouls": 0.1789,
                "fouls_drawn": 0.1938,
                "blocks": 0.1347,
                "big_chances_created": 0.0138,
                "big_chances_missed": 0.1425,
                "xgot": 0.0413,
                "ball_carries": 3.0703,
                "total_progression": 7.6894,
                "progressive_carries": 0.2926,
                "shots_off_target": 0.3055
              },
              "params": {
                "market_value_eur": 8700000,
                "quality_factor": 0.5071,
                "boost_factor": 1.0001,
                "reference_quality": 0.505,
                "history_matches": 22,
                "history_shrink": 0.1852,
                "market_value_known": true
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 13.1 to 12.2 expected minutes (appearance prob 0.70)",
              "stats": {
                "key_pass": 0.3147,
                "expected_assists": 0.0287,
                "assists": 0.0467,
                "assist_rate": 0.0467,
                "expected_goals": 0.0461,
                "goals": 0.0511,
                "goal_rate": 0.0511,
                "shots_on_target": 0.191,
                "total_shots": 0.4768,
                "rating": 6.6805,
                "minutes": 12.21,
                "total_pass": 6.7993,
                "accurate_pass": 5.1793,
                "duels_won": 0.4317,
                "total_long_balls": 0.8262,
                "accurate_long_balls": 0.5356,
                "total_own_half_passes": 1.8564,
                "accurate_own_half_passes": 1.6132,
                "total_opp_half_passes": 4.9429,
                "accurate_opp_half_passes": 3.5661,
                "crosses_total": 1.0817,
                "crosses_accurate": 0.0342,
                "touches": 10.485,
                "possession_lost": 3.4776,
                "dispossessed": 0.1973,
                "duels_lost": 0.8472,
                "aerial_won": 0.081,
                "aerial_lost": 0.3186,
                "interceptions": 0.0,
                "tackles_won": 0.0832,
                "tackles": 0.1693,
                "clearances": 0.018,
                "total_contest": 0.1671,
                "won_contest": 0.0,
                "challenges_lost": 0.0917,
                "fouls": 0.1674,
                "fouls_drawn": 0.1813,
                "blocks": 0.126,
                "big_chances_created": 0.0129,
                "big_chances_missed": 0.1333,
                "xgot": 0.0386,
                "ball_carries": 2.8727,
                "total_progression": 7.1945,
                "progressive_carries": 0.2738,
                "shots_off_target": 0.2858,
                "bench_appearance_probability": 0.698,
                "bench_expected_minutes": 12.21
              },
              "params": {
                "expected_minutes": 12.21,
                "projection_minutes": 13.05,
                "minutes_scale": 0.9356,
                "appearance_probability": 0.698
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0.3147,
                "expected_assists": 0.0287,
                "assists": 0.0467,
                "assist_rate": 0.0467,
                "expected_goals": 0.0461,
                "goals": 0.0511,
                "goal_rate": 0.0511,
                "shots_on_target": 0.191,
                "total_shots": 0.4768,
                "rating": 6.6805,
                "minutes": 12.21,
                "total_pass": 6.7993,
                "accurate_pass": 5.1793,
                "duels_won": 0.4317,
                "total_long_balls": 0.8262,
                "accurate_long_balls": 0.5356,
                "total_own_half_passes": 1.8564,
                "accurate_own_half_passes": 1.6132,
                "total_opp_half_passes": 4.9429,
                "accurate_opp_half_passes": 3.5661,
                "crosses_total": 1.0817,
                "crosses_accurate": 0.0342,
                "touches": 10.485,
                "possession_lost": 3.4776,
                "dispossessed": 0.1973,
                "duels_lost": 0.8472,
                "aerial_won": 0.081,
                "aerial_lost": 0.3186,
                "interceptions": 0.0,
                "tackles_won": 0.0832,
                "tackles": 0.1693,
                "clearances": 0.018,
                "total_contest": 0.1671,
                "won_contest": 0.0,
                "challenges_lost": 0.0917,
                "fouls": 0.1674,
                "fouls_drawn": 0.1813,
                "blocks": 0.126,
                "big_chances_created": 0.0129,
                "big_chances_missed": 0.1333,
                "xgot": 0.0386,
                "ball_carries": 2.8727,
                "total_progression": 7.1945,
                "progressive_carries": 0.2738,
                "shots_off_target": 0.2858,
                "bench_appearance_probability": 0.698,
                "bench_expected_minutes": 12.21
              },
              "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.3147,
                "expected_assists": 0.0287,
                "assist_rate": 0.0467,
                "assists": 0,
                "expected_goals": 0.0461,
                "goal_rate": 0.0511,
                "goals": 0,
                "shots_on_target": 0.191,
                "total_shots": 0.4768,
                "rating": 6.6805,
                "minutes": 12.21,
                "total_pass": 6.7993,
                "accurate_pass": 5.1793,
                "duels_won": 0.4317,
                "total_long_balls": 0.8262,
                "accurate_long_balls": 0.5356,
                "total_own_half_passes": 1.8564,
                "accurate_own_half_passes": 1.6132,
                "total_opp_half_passes": 4.9429,
                "accurate_opp_half_passes": 3.5661,
                "crosses_total": 1.0817,
                "crosses_accurate": 0.0342,
                "touches": 10.485,
                "possession_lost": 3.4776,
                "dispossessed": 0.1973,
                "duels_lost": 0.8472,
                "aerial_won": 0.081,
                "aerial_lost": 0.3186,
                "interceptions": 0.0,
                "tackles_won": 0.0832,
                "tackles": 0.1693,
                "clearances": 0.018,
                "total_contest": 0.1671,
                "won_contest": 0.0,
                "challenges_lost": 0.0917,
                "fouls": 0.1674,
                "fouls_drawn": 0.1813,
                "blocks": 0.126,
                "big_chances_created": 0.0129,
                "big_chances_missed": 0.1333,
                "xgot": 0.0386,
                "ball_carries": 2.8727,
                "total_progression": 7.1945,
                "progressive_carries": 0.2738,
                "shots_off_target": 0.2858,
                "bench_appearance_probability": 0.698,
                "bench_expected_minutes": 12.21,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "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": 1
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.25 (squad xG sum 1.3010, xG scale 0.9646, xA scale 0.9646, team xA 0.85 = 0.67 x lambda)",
              "stats": {
                "key_pass": 0.3147,
                "expected_assists": 0.0193,
                "assist_rate": 0.0467,
                "assists": 0,
                "expected_goals": 0.031,
                "goal_rate": 0.0511,
                "goals": 0,
                "shots_on_target": 0.191,
                "total_shots": 0.4768,
                "rating": 6.6805,
                "minutes": 12.21,
                "total_pass": 6.7993,
                "accurate_pass": 5.1793,
                "duels_won": 0.4317,
                "total_long_balls": 0.8262,
                "accurate_long_balls": 0.5356,
                "total_own_half_passes": 1.8564,
                "accurate_own_half_passes": 1.6132,
                "total_opp_half_passes": 4.9429,
                "accurate_opp_half_passes": 3.5661,
                "crosses_total": 1.0817,
                "crosses_accurate": 0.0342,
                "touches": 10.485,
                "possession_lost": 3.4776,
                "dispossessed": 0.1973,
                "duels_lost": 0.8472,
                "aerial_won": 0.081,
                "aerial_lost": 0.3186,
                "interceptions": 0.0,
                "tackles_won": 0.0832,
                "tackles": 0.1693,
                "clearances": 0.018,
                "total_contest": 0.1671,
                "won_contest": 0.0,
                "challenges_lost": 0.0917,
                "fouls": 0.1674,
                "fouls_drawn": 0.1813,
                "blocks": 0.126,
                "big_chances_created": 0.0129,
                "big_chances_missed": 0.1333,
                "xgot": 0.026,
                "ball_carries": 2.8727,
                "total_progression": 7.1945,
                "progressive_carries": 0.2738,
                "shots_off_target": 0.2858,
                "bench_appearance_probability": 0.698,
                "bench_expected_minutes": 12.21,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "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.052,
                "creation_factor": 1.2287
              },
              "params": {
                "team_lambda": 1.255,
                "squad_xg_sum": 1.301,
                "squad_xa_sum": 0.8767,
                "team_expected_assists": 0.8457,
                "team_xa_to_xg_ratio": 0.6739,
                "bench_appearance_weighted": true,
                "xg_scale": 0.9646,
                "xa_scale": 0.9646,
                "opponent_lambda": 1.729,
                "scoreline_reset": true,
                "appearance_weight": 0.698
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0461,
                  "after": 0.031
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0287,
                  "after": 0.0193
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 73.0)",
              "stats": {
                "key_pass": 0.3147,
                "expected_assists": 0.0193,
                "assist_rate": 0.0467,
                "assists": 0,
                "expected_goals": 0.031,
                "goal_rate": 0.0511,
                "goals": 0,
                "shots_on_target": 0.191,
                "total_shots": 0.4768,
                "rating": 6.6805,
                "minutes": 12.21,
                "total_pass": 6.7993,
                "accurate_pass": 5.1793,
                "duels_won": 0.4317,
                "total_long_balls": 0.8262,
                "accurate_long_balls": 0.5356,
                "total_own_half_passes": 1.8564,
                "accurate_own_half_passes": 1.6132,
                "total_opp_half_passes": 4.9429,
                "accurate_opp_half_passes": 3.5661,
                "crosses_total": 1.0817,
                "crosses_accurate": 0.0342,
                "touches": 10.485,
                "possession_lost": 3.4776,
                "dispossessed": 0.1973,
                "duels_lost": 0.8472,
                "aerial_won": 0.081,
                "aerial_lost": 0.3186,
                "interceptions": 0.0,
                "tackles_won": 0.0832,
                "tackles": 0.1693,
                "clearances": 0.018,
                "total_contest": 0.1671,
                "won_contest": 0.0,
                "challenges_lost": 0.0917,
                "fouls": 0.1674,
                "fouls_drawn": 0.1813,
                "blocks": 0.126,
                "big_chances_created": 0.0129,
                "big_chances_missed": 0.1333,
                "xgot": 0.026,
                "ball_carries": 2.8727,
                "total_progression": 7.1945,
                "progressive_carries": 0.2738,
                "shots_off_target": 0.2858,
                "bench_appearance_probability": 0.698,
                "bench_expected_minutes": 12.21,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "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.052,
                "creation_factor": 1.2287,
                "fifa_overall": 73.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": 4159,
                "fifa_rank": 3517.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.3147,
                "expected_assists": 0.0193,
                "assist_rate": 0.0467,
                "assists": 0,
                "expected_goals": 0.031,
                "goal_rate": 0.0511,
                "goals": 0,
                "shots_on_target": 0.191,
                "total_shots": 0.4768,
                "rating": 6.6805,
                "minutes": 12.21,
                "total_pass": 6.7993,
                "accurate_pass": 5.1793,
                "duels_won": 0.4317,
                "total_long_balls": 0.8262,
                "accurate_long_balls": 0.5356,
                "total_own_half_passes": 1.8564,
                "accurate_own_half_passes": 1.6132,
                "total_opp_half_passes": 4.9429,
                "accurate_opp_half_passes": 3.5661,
                "crosses_total": 1.0817,
                "crosses_accurate": 0.0342,
                "touches": 10.485,
                "possession_lost": 3.4776,
                "dispossessed": 0.1973,
                "duels_lost": 0.8472,
                "aerial_won": 0.081,
                "aerial_lost": 0.3186,
                "interceptions": 0.0,
                "tackles_won": 0.0832,
                "tackles": 0.1693,
                "clearances": 0.018,
                "total_contest": 0.1671,
                "won_contest": 0.0,
                "challenges_lost": 0.0917,
                "fouls": 0.1674,
                "fouls_drawn": 0.1813,
                "blocks": 0.126,
                "big_chances_created": 0.0129,
                "big_chances_missed": 0.1333,
                "xgot": 0.026,
                "ball_carries": 2.8727,
                "total_progression": 7.1945,
                "progressive_carries": 0.2738,
                "shots_off_target": 0.2858,
                "bench_appearance_probability": 0.698,
                "bench_expected_minutes": 12.21,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0303,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.052,
                "creation_factor": 1.2287,
                "fifa_overall": 73.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0303,
                "goal_rate": 0.0511,
                "scorer_weight": 0.0326,
                "squad_weight_total": 1.3959,
                "weight_share": 0.0234,
                "finishing_factor": 1.052,
                "appearance_weight": 0.698,
                "weight_rank": 11,
                "eligible_players": 14,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Mikel Oyarzabal",
                    "weight": 0.3544,
                    "already": 0,
                    "effective_weight": 0.3544,
                    "runner_up": "Gonçalo Guedes",
                    "runner_up_effective_weight": 0.2684
                  }
                ]
              }
            },
            {
              "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.3147,
                "expected_assists": 0.0193,
                "assist_rate": 0.0467,
                "assists": 0,
                "expected_goals": 0.031,
                "goal_rate": 0.0511,
                "goals": 0,
                "shots_on_target": 0.191,
                "total_shots": 0.4768,
                "rating": 6.6805,
                "minutes": 12.21,
                "total_pass": 6.7993,
                "accurate_pass": 5.1793,
                "duels_won": 0.4317,
                "total_long_balls": 0.8262,
                "accurate_long_balls": 0.5356,
                "total_own_half_passes": 1.8564,
                "accurate_own_half_passes": 1.6132,
                "total_opp_half_passes": 4.9429,
                "accurate_opp_half_passes": 3.5661,
                "crosses_total": 1.0817,
                "crosses_accurate": 0.0342,
                "touches": 10.485,
                "possession_lost": 3.4776,
                "dispossessed": 0.1973,
                "duels_lost": 0.8472,
                "aerial_won": 0.081,
                "aerial_lost": 0.3186,
                "interceptions": 0.0,
                "tackles_won": 0.0832,
                "tackles": 0.1693,
                "clearances": 0.018,
                "total_contest": 0.1671,
                "won_contest": 0.0,
                "challenges_lost": 0.0917,
                "fouls": 0.1674,
                "fouls_drawn": 0.1813,
                "blocks": 0.126,
                "big_chances_created": 0.0129,
                "big_chances_missed": 0.1333,
                "xgot": 0.026,
                "ball_carries": 2.8727,
                "total_progression": 7.1945,
                "progressive_carries": 0.2738,
                "shots_off_target": 0.2858,
                "bench_appearance_probability": 0.698,
                "bench_expected_minutes": 12.21,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0303,
                "projected_assists": 0,
                "assist_probability": 0.019,
                "finishing_factor": 1.052,
                "creation_factor": 1.2287,
                "fifa_overall": 73.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.019,
                "assist_rate": 0.0467,
                "provider_weight": 0.0237,
                "squad_weight_total": 0.8785,
                "weight_share": 0.027,
                "creation_factor": 1.2287,
                "appearance_weight": 0.698,
                "weight_rank": 9,
                "eligible_players": 14,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Gonçalo Guedes",
                    "weight": 0.1642,
                    "already": 0,
                    "effective_weight": 0.1642,
                    "runner_up": "Carlos Soler",
                    "runner_up_effective_weight": 0.1308,
                    "blocked_own_goal": [
                      "Mikel Oyarzabal"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Brais Méndez": {
          "player_id": 845385,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 23,
          "height": 184,
          "market_value": 7800000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.0321,
            "assist_rate": 0.071,
            "assists": 0,
            "expected_goals": 0.0591,
            "goal_rate": 0.1002,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "rating": 6.7945,
            "minutes": 22,
            "total_pass": 14,
            "accurate_pass": 12,
            "duels_won": 2,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "total_own_half_passes": 5,
            "accurate_own_half_passes": 4,
            "total_opp_half_passes": 10,
            "accurate_opp_half_passes": 7,
            "crosses_total": 1,
            "crosses_accurate": 1,
            "touches": 22,
            "possession_lost": 5.7368,
            "dispossessed": 0.3551,
            "duels_lost": 2,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 1,
            "tackles": 1,
            "clearances": 1,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 1,
            "fouls_drawn": 1,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.1909,
            "ball_carries": 5,
            "total_progression": 5,
            "progressive_carries": 0,
            "shots_off_target": 1,
            "bench_appearance_probability": 0.509,
            "bench_expected_minutes": 22.21,
            "projected_substitution_order": 3,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 4,
            "projected_substitution_expected_count": 2.572,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0558,
            "projected_assists": 0,
            "assist_probability": 0.0311,
            "finishing_factor": 0.8815,
            "creation_factor": 1.0494,
            "fifa_overall": 78.0
          },
          "latest_10_games": [
            {
              "match_id": 14083687.0,
              "match_date": "2026-05-17",
              "home_team": "Real Sociedad",
              "away_team": "Valencia",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Valencia",
              "stats": {
                "minutes": 57,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.1553,
                "total_shots": 0,
                "total_pass": 38,
                "accurate_pass": 37,
                "key_pass": 1,
                "tackles": 3,
                "tackles_won": 1,
                "interceptions": 1,
                "aerial_won": 2,
                "duels_won": 9,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083346.0,
              "match_date": "2026-04-22",
              "home_team": "Real Sociedad",
              "away_team": "Getafe",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Getafe",
              "stats": {
                "minutes": 56,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 1.2031,
                "expected_assists": 0.0237,
                "total_shots": 4,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 31,
                "accurate_pass": 25,
                "key_pass": 1,
                "tackles": 1,
                "interceptions": 1,
                "aerial_won": 3,
                "duels_won": 9,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083152.0,
              "match_date": "2026-04-11",
              "home_team": "Real Sociedad",
              "away_team": "Deportivo Alavés",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 54,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.02,
                "expected_assists": 0.0294,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 32,
                "accurate_pass": 28,
                "tackles": 3,
                "tackles_won": 1,
                "aerial_won": 1,
                "duels_won": 5,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083701.0,
              "match_date": "2026-04-04",
              "home_team": "Real Sociedad",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 26,
                "rating": 7.3,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.9528,
                "expected_assists": 0.009,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 11,
                "accurate_pass": 7,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14081808.0,
              "match_date": "2026-03-20",
              "home_team": "Villarreal",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 68,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1122,
                "expected_assists": 0.2037,
                "total_shots": 3,
                "shots_off_target": 1,
                "total_pass": 53,
                "accurate_pass": 43,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083652.0,
              "match_date": "2026-03-15",
              "home_team": "Real Sociedad",
              "away_team": "Osasuna",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 64,
                "rating": 8.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.6717,
                "total_shots": 0,
                "total_pass": 22,
                "accurate_pass": 18,
                "key_pass": 1,
                "tackles": 1,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083602.0,
              "match_date": "2026-03-07",
              "home_team": "Atlético Madrid",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 16,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0215,
                "total_shots": 0,
                "total_pass": 23,
                "accurate_pass": 19,
                "key_pass": 1,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14081792.0,
              "match_date": "2026-02-21",
              "home_team": "Real Sociedad",
              "away_team": "Real Oviedo",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Real Oviedo",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.3748,
                "expected_assists": 0.0344,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 47,
                "accurate_pass": 37,
                "key_pass": 2,
                "tackles": 4,
                "tackles_won": 1,
                "clearances": 1,
                "duels_won": 10,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083195.0,
              "match_date": "2026-02-01",
              "home_team": "Athletic Club",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 20,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.019,
                "total_shots": 0,
                "total_pass": 7,
                "accurate_pass": 6,
                "tackles": 2,
                "tackles_won": 2,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083136.0,
              "match_date": "2026-01-25",
              "home_team": "Real Sociedad",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 9,
                "rating": 7.2,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.8371,
                "expected_assists": 0.0141,
                "total_shots": 2,
                "shots_on_target": 1,
                "total_pass": 7,
                "accurate_pass": 5,
                "tackles": 1,
                "duels_won": 1,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 2265,
            "combined_rank_score": 828.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 435.0,
            "sofascore_rating": 6.9103,
            "sofascore_appearances": 29.0,
            "fifa_rank": 1221.0,
            "fifa_overall": 78.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 11,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.7945,
            "source_file": "data/player_rankings.csv",
            "player_name": "Brais Méndez",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Malo Gusto",
                  "ranking": 2260
                },
                {
                  "player_name": "Aldrix Jara",
                  "ranking": 2261
                },
                {
                  "player_name": "Yehor Yarmoliuk",
                  "ranking": 2262
                },
                {
                  "player_name": "Chimy Ávila",
                  "ranking": 2263
                },
                {
                  "player_name": "Andrés Martín",
                  "ranking": 2264
                }
              ],
              "lower": [
                {
                  "player_name": "Bafodé Diakité",
                  "ranking": 2266
                },
                {
                  "player_name": "Kwasi Sibo",
                  "ranking": 2267
                },
                {
                  "player_name": "Jordan Henderson",
                  "ranking": 2268
                },
                {
                  "player_name": "Andoni Gorosabel",
                  "ranking": 2269
                },
                {
                  "player_name": "Jeong-Yeon Wu",
                  "ranking": 2270
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.75,
          "history_matches": 29,
          "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": 29,
            "data_confidence": 0.75,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 22.20527948921528,
            "bench_appearance_prob": 0.5093308858734218,
            "market_value_adjustment": 0.9996,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost M_service (29 historical appearances) to 22.2 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.4792,
                "expected_assists": 0.0591,
                "assists": 0.0643,
                "assist_rate": 0.0643,
                "expected_goals": 0.109,
                "goals": 0.0907,
                "goal_rate": 0.0907,
                "shots_on_target": 0.3107,
                "total_shots": 0.802,
                "rating": 6.7945,
                "minutes": 20.1,
                "total_pass": 13.0859,
                "accurate_pass": 10.5518,
                "duels_won": 2.0064,
                "total_long_balls": 0.5072,
                "accurate_long_balls": 0.3319,
                "total_own_half_passes": 4.3682,
                "accurate_own_half_passes": 4.0544,
                "total_opp_half_passes": 8.7177,
                "accurate_opp_half_passes": 6.4974,
                "crosses_total": 1.1806,
                "crosses_accurate": 0.4876,
                "touches": 19.9836,
                "possession_lost": 5.195,
                "dispossessed": 0.3552,
                "duels_lost": 1.528,
                "aerial_won": 0.499,
                "aerial_lost": 0.2405,
                "interceptions": 0.0,
                "tackles_won": 0.8018,
                "tackles": 0.9284,
                "clearances": 0.5039,
                "total_contest": 0.312,
                "won_contest": 0.0,
                "challenges_lost": 0.0,
                "fouls": 0.6204,
                "fouls_drawn": 0.579,
                "blocks": 0.1076,
                "big_chances_created": 0.1167,
                "big_chances_missed": 0.0717,
                "xgot": 0.3521,
                "ball_carries": 4.7872,
                "total_progression": 4.097,
                "progressive_carries": 0.3604,
                "shots_off_target": 0.4913
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 7,
                  "trained_at": "2026-11-01T11:27:07.750726+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 905,
                    "rows": 25067
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-05-17",
                    "opponent": "Valencia",
                    "minutes": 57.0,
                    "is_starting": true,
                    "weight": 0.1514,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-04-22",
                    "opponent": "Getafe",
                    "minutes": 56.0,
                    "is_starting": true,
                    "weight": 0.1287,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-04-11",
                    "opponent": "Deportivo Alavés",
                    "minutes": 54.0,
                    "is_starting": true,
                    "weight": 0.1094,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-04-04",
                    "opponent": "Levante UD",
                    "minutes": 26.0,
                    "is_starting": false,
                    "weight": 0.093,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-03-20",
                    "opponent": "Villarreal",
                    "minutes": 68.0,
                    "is_starting": true,
                    "weight": 0.079,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-03-15",
                    "opponent": "Osasuna",
                    "minutes": 64.0,
                    "is_starting": true,
                    "weight": 0.0672,
                    "rating": 8.0
                  },
                  {
                    "match_date": "2026-03-07",
                    "opponent": "Atlético Madrid",
                    "minutes": 16.0,
                    "is_starting": false,
                    "weight": 0.0571,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-02-21",
                    "opponent": "Real Oviedo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0485,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-02-01",
                    "opponent": "Athletic Club",
                    "minutes": 20.0,
                    "is_starting": false,
                    "weight": 0.0412,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-01-25",
                    "opponent": "Celta Vigo",
                    "minutes": 9.0,
                    "is_starting": false,
                    "weight": 0.0351,
                    "rating": 7.2
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 0.0,
                  "totalShots": 1.3088,
                  "creative_index": 0.3543,
                  "expectedGoals": 0.3215,
                  "expectedAssists": 0.1083,
                  "keyPass": 0.7232
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.47920358180999756,
                    "model_output": 0.4792,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1578
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1373
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0712
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0516
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0289
                      }
                    ],
                    "decomposition": {
                      "base": 0.8902,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.4275
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0418
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0349
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0293
                        },
                        {
                          "name": "totalCross",
                          "contribution": 0.0169
                        }
                      ],
                      "others": 0.022,
                      "total": 0.4792,
                      "log_link": true,
                      "margin_base": -0.116298,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.654348
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.086582
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.071721
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.064389
                        },
                        {
                          "name": "totalCross",
                          "margin": 0.037577
                        }
                      ],
                      "others_margin": 0.046967
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.05908714979887009,
                    "model_output": 0.0591,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1181
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.1136
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.1034
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0572
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0473
                      }
                    ],
                    "decomposition": {
                      "base": 0.0847,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.039
                        },
                        {
                          "name": "totalCross",
                          "contribution": 0.0054
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0043
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0029
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0024
                        }
                      ],
                      "others": 0.0042,
                      "total": 0.0591,
                      "log_link": true,
                      "margin_base": -2.468924,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.617851
                        },
                        {
                          "name": "totalCross",
                          "margin": 0.111127
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.080253
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.054612
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.044603
                        }
                      ],
                      "others_margin": 0.07666
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.06430228054523468,
                    "model_output": 0.0643,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0627
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0445
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0417
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0324
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0293
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0209
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0058
                        },
                        {
                          "name": "totalCross",
                          "contribution": 0.0046
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0043
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0035
                        }
                      ],
                      "others": -0.0025,
                      "total": 0.0643,
                      "log_link": true,
                      "margin_base": -2.463472,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.282018
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.086216
                        },
                        {
                          "name": "totalCross",
                          "margin": 0.063102
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.059076
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.051708
                        }
                      ],
                      "others_margin": -0.037204
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.1090329959988594,
                    "model_output": 0.109,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedGoals",
                        "importance": 0.1255
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0756
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0438
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0265
                      }
                    ],
                    "decomposition": {
                      "base": 0.0918,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0375
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0281
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0092
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.0055
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0032
                        }
                      ],
                      "others": 0.0087,
                      "total": 0.109,
                      "log_link": true,
                      "margin_base": -2.387963,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.524504
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.416253
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.10531
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": 0.058856
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.032522
                        }
                      ],
                      "others_margin": 0.083422
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.09074705839157104,
                    "model_output": 0.0907,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0923
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.067
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.041
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0334
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.0946,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0392
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0152
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0154
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0067
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.0066
                        }
                      ],
                      "others": -0.0086,
                      "total": 0.0907,
                      "log_link": true,
                      "margin_base": -2.358385,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.535277
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.242028
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.197309
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.07556
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": 0.068614
                        }
                      ],
                      "others_margin": -0.089528
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.31070783734321594,
                    "model_output": 0.3107,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.117
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0884
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0772
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0315
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0258
                      }
                    ],
                    "decomposition": {
                      "base": 0.3179,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1417
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0444
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0517
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0171
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0074
                        }
                      ],
                      "others": 0.0139,
                      "total": 0.3107,
                      "log_link": true,
                      "margin_base": -1.146086,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.590386
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.22495
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.210481
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.060858
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.02533
                        }
                      ],
                      "others_margin": 0.045951
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.8020121455192566,
                    "model_output": 0.802,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1349
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1208
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0462
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.044
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0312
                      }
                    ],
                    "decomposition": {
                      "base": 0.9849,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.5204
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.2755
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0619
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0292
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": 0.0223
                        }
                      ],
                      "others": -0.0514,
                      "total": 0.802,
                      "log_link": false,
                      "margin_base": 0.984935,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.520413
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.275484
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.061879
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.029248
                        },
                        {
                          "name": "interceptionWon",
                          "margin": 0.022336
                        }
                      ],
                      "others_margin": -0.051456
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.794490814208984,
                    "model_output": 6.7945,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "rating",
                        "importance": 0.0864
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0749
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0486
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0482
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 6.8574,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1095
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0334
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0226
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0187
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0158
                        }
                      ],
                      "others": 0.0229,
                      "total": 6.7945,
                      "log_link": false,
                      "margin_base": 6.857404,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.109458
                        },
                        {
                          "name": "rating",
                          "margin": -0.033359
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.022556
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.018695
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.01577
                        }
                      ],
                      "others_margin": 0.022884
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "substitute",
                  "history_matches": 29,
                  "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.9996, quality 0.496)",
              "stats": {
                "key_pass": 0.479,
                "expected_assists": 0.0591,
                "assists": 0.0643,
                "assist_rate": 0.0643,
                "expected_goals": 0.109,
                "goals": 0.0907,
                "goal_rate": 0.0907,
                "shots_on_target": 0.3106,
                "total_shots": 0.8017,
                "rating": 6.7945,
                "minutes": 20.1,
                "total_pass": 13.0807,
                "accurate_pass": 10.5476,
                "duels_won": 2.0056,
                "total_long_balls": 0.507,
                "accurate_long_balls": 0.3318,
                "total_own_half_passes": 4.3665,
                "accurate_own_half_passes": 4.0528,
                "total_opp_half_passes": 8.7142,
                "accurate_opp_half_passes": 6.4948,
                "crosses_total": 1.1801,
                "crosses_accurate": 0.4874,
                "touches": 19.9756,
                "possession_lost": 5.1929,
                "dispossessed": 0.3551,
                "duels_lost": 1.5274,
                "aerial_won": 0.4988,
                "aerial_lost": 0.2404,
                "interceptions": 0.0,
                "tackles_won": 0.8015,
                "tackles": 0.928,
                "clearances": 0.5037,
                "total_contest": 0.3119,
                "won_contest": 0.0,
                "challenges_lost": 0.0,
                "fouls": 0.6202,
                "fouls_drawn": 0.5788,
                "blocks": 0.1076,
                "big_chances_created": 0.1167,
                "big_chances_missed": 0.0717,
                "xgot": 0.352,
                "ball_carries": 4.7853,
                "total_progression": 4.0954,
                "progressive_carries": 0.3603,
                "shots_off_target": 0.4911
              },
              "params": {
                "market_value_eur": 7800000,
                "quality_factor": 0.4963,
                "boost_factor": 0.9996,
                "reference_quality": 0.505,
                "history_matches": 29,
                "history_shrink": 0.1471,
                "market_value_known": true
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 20.1 to 22.2 expected minutes (appearance prob 0.51)",
              "stats": {
                "key_pass": 0.5292,
                "expected_assists": 0.0653,
                "assists": 0.071,
                "assist_rate": 0.071,
                "expected_goals": 0.1204,
                "goals": 0.1002,
                "goal_rate": 0.1002,
                "shots_on_target": 0.3431,
                "total_shots": 0.8857,
                "rating": 6.7945,
                "minutes": 22.21,
                "total_pass": 14.4508,
                "accurate_pass": 11.6524,
                "duels_won": 2.2157,
                "total_long_balls": 0.5601,
                "accurate_long_balls": 0.3666,
                "total_own_half_passes": 4.8238,
                "accurate_own_half_passes": 4.4773,
                "total_opp_half_passes": 9.6269,
                "accurate_opp_half_passes": 7.1751,
                "crosses_total": 1.3037,
                "crosses_accurate": 0.5385,
                "touches": 22.0678,
                "possession_lost": 5.7368,
                "dispossessed": 0.3551,
                "duels_lost": 1.6874,
                "aerial_won": 0.551,
                "aerial_lost": 0.2404,
                "interceptions": 0.0,
                "tackles_won": 0.8854,
                "tackles": 1.0252,
                "clearances": 0.5565,
                "total_contest": 0.3446,
                "won_contest": 0.0,
                "challenges_lost": 0.0,
                "fouls": 0.6852,
                "fouls_drawn": 0.6394,
                "blocks": 0.1189,
                "big_chances_created": 0.1289,
                "big_chances_missed": 0.0792,
                "xgot": 0.3889,
                "ball_carries": 5.2865,
                "total_progression": 4.5244,
                "progressive_carries": 0.398,
                "shots_off_target": 0.5425,
                "bench_appearance_probability": 0.509,
                "bench_expected_minutes": 22.21
              },
              "params": {
                "expected_minutes": 22.21,
                "projection_minutes": 20.1,
                "minutes_scale": 1.1047,
                "appearance_probability": 0.509
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0.5292,
                "expected_assists": 0.0653,
                "assists": 0.071,
                "assist_rate": 0.071,
                "expected_goals": 0.1204,
                "goals": 0.1002,
                "goal_rate": 0.1002,
                "shots_on_target": 0.3431,
                "total_shots": 0.8857,
                "rating": 6.7945,
                "minutes": 22.21,
                "total_pass": 14.4508,
                "accurate_pass": 11.6524,
                "duels_won": 2.2157,
                "total_long_balls": 0.5601,
                "accurate_long_balls": 0.3666,
                "total_own_half_passes": 4.8238,
                "accurate_own_half_passes": 4.4773,
                "total_opp_half_passes": 9.6269,
                "accurate_opp_half_passes": 7.1751,
                "crosses_total": 1.3037,
                "crosses_accurate": 0.5385,
                "touches": 22.0678,
                "possession_lost": 5.7368,
                "dispossessed": 0.3551,
                "duels_lost": 1.6874,
                "aerial_won": 0.551,
                "aerial_lost": 0.2404,
                "interceptions": 0.0,
                "tackles_won": 0.8854,
                "tackles": 1.0252,
                "clearances": 0.5565,
                "total_contest": 0.3446,
                "won_contest": 0.0,
                "challenges_lost": 0.0,
                "fouls": 0.6852,
                "fouls_drawn": 0.6394,
                "blocks": 0.1189,
                "big_chances_created": 0.1289,
                "big_chances_missed": 0.0792,
                "xgot": 0.3889,
                "ball_carries": 5.2865,
                "total_progression": 4.5244,
                "progressive_carries": 0.398,
                "shots_off_target": 0.5425,
                "bench_appearance_probability": 0.509,
                "bench_expected_minutes": 22.21
              },
              "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.5292,
                "expected_assists": 0.0653,
                "assist_rate": 0.071,
                "assists": 0,
                "expected_goals": 0.1204,
                "goal_rate": 0.1002,
                "goals": 0,
                "shots_on_target": 0.3431,
                "total_shots": 0.8857,
                "rating": 6.7945,
                "minutes": 22.21,
                "total_pass": 14.4508,
                "accurate_pass": 11.6524,
                "duels_won": 2.2157,
                "total_long_balls": 0.5601,
                "accurate_long_balls": 0.3666,
                "total_own_half_passes": 4.8238,
                "accurate_own_half_passes": 4.4773,
                "total_opp_half_passes": 9.6269,
                "accurate_opp_half_passes": 7.1751,
                "crosses_total": 1.3037,
                "crosses_accurate": 0.5385,
                "touches": 22.0678,
                "possession_lost": 5.7368,
                "dispossessed": 0.3551,
                "duels_lost": 1.6874,
                "aerial_won": 0.551,
                "aerial_lost": 0.2404,
                "interceptions": 0.0,
                "tackles_won": 0.8854,
                "tackles": 1.0252,
                "clearances": 0.5565,
                "total_contest": 0.3446,
                "won_contest": 0.0,
                "challenges_lost": 0.0,
                "fouls": 0.6852,
                "fouls_drawn": 0.6394,
                "blocks": 0.1189,
                "big_chances_created": 0.1289,
                "big_chances_missed": 0.0792,
                "xgot": 0.3889,
                "ball_carries": 5.2865,
                "total_progression": 4.5244,
                "progressive_carries": 0.398,
                "shots_off_target": 0.5425,
                "bench_appearance_probability": 0.509,
                "bench_expected_minutes": 22.21,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "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": 1
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.25 (squad xG sum 1.3010, xG scale 0.9646, xA scale 0.9646, team xA 0.85 = 0.67 x lambda)",
              "stats": {
                "key_pass": 0.5292,
                "expected_assists": 0.0321,
                "assist_rate": 0.071,
                "assists": 0,
                "expected_goals": 0.0591,
                "goal_rate": 0.1002,
                "goals": 0,
                "shots_on_target": 0.3431,
                "total_shots": 0.8857,
                "rating": 6.7945,
                "minutes": 22.21,
                "total_pass": 14.4508,
                "accurate_pass": 11.6524,
                "duels_won": 2.2157,
                "total_long_balls": 0.5601,
                "accurate_long_balls": 0.3666,
                "total_own_half_passes": 4.8238,
                "accurate_own_half_passes": 4.4773,
                "total_opp_half_passes": 9.6269,
                "accurate_opp_half_passes": 7.1751,
                "crosses_total": 1.3037,
                "crosses_accurate": 0.5385,
                "touches": 22.0678,
                "possession_lost": 5.7368,
                "dispossessed": 0.3551,
                "duels_lost": 1.6874,
                "aerial_won": 0.551,
                "aerial_lost": 0.2404,
                "interceptions": 0.0,
                "tackles_won": 0.8854,
                "tackles": 1.0252,
                "clearances": 0.5565,
                "total_contest": 0.3446,
                "won_contest": 0.0,
                "challenges_lost": 0.0,
                "fouls": 0.6852,
                "fouls_drawn": 0.6394,
                "blocks": 0.1189,
                "big_chances_created": 0.1289,
                "big_chances_missed": 0.0792,
                "xgot": 0.1909,
                "ball_carries": 5.2865,
                "total_progression": 4.5244,
                "progressive_carries": 0.398,
                "shots_off_target": 0.5425,
                "bench_appearance_probability": 0.509,
                "bench_expected_minutes": 22.21,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "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.8815,
                "creation_factor": 1.0494
              },
              "params": {
                "team_lambda": 1.255,
                "squad_xg_sum": 1.301,
                "squad_xa_sum": 0.8767,
                "team_expected_assists": 0.8457,
                "team_xa_to_xg_ratio": 0.6739,
                "bench_appearance_weighted": true,
                "xg_scale": 0.9646,
                "xa_scale": 0.9646,
                "opponent_lambda": 1.729,
                "scoreline_reset": true,
                "appearance_weight": 0.509
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.1204,
                  "after": 0.0591
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0653,
                  "after": 0.0321
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 78.0)",
              "stats": {
                "key_pass": 0.5292,
                "expected_assists": 0.0321,
                "assist_rate": 0.071,
                "assists": 0,
                "expected_goals": 0.0591,
                "goal_rate": 0.1002,
                "goals": 0,
                "shots_on_target": 0.3431,
                "total_shots": 0.8857,
                "rating": 6.7945,
                "minutes": 22.21,
                "total_pass": 14.4508,
                "accurate_pass": 11.6524,
                "duels_won": 2.2157,
                "total_long_balls": 0.5601,
                "accurate_long_balls": 0.3666,
                "total_own_half_passes": 4.8238,
                "accurate_own_half_passes": 4.4773,
                "total_opp_half_passes": 9.6269,
                "accurate_opp_half_passes": 7.1751,
                "crosses_total": 1.3037,
                "crosses_accurate": 0.5385,
                "touches": 22.0678,
                "possession_lost": 5.7368,
                "dispossessed": 0.3551,
                "duels_lost": 1.6874,
                "aerial_won": 0.551,
                "aerial_lost": 0.2404,
                "interceptions": 0.0,
                "tackles_won": 0.8854,
                "tackles": 1.0252,
                "clearances": 0.5565,
                "total_contest": 0.3446,
                "won_contest": 0.0,
                "challenges_lost": 0.0,
                "fouls": 0.6852,
                "fouls_drawn": 0.6394,
                "blocks": 0.1189,
                "big_chances_created": 0.1289,
                "big_chances_missed": 0.0792,
                "xgot": 0.1909,
                "ball_carries": 5.2865,
                "total_progression": 4.5244,
                "progressive_carries": 0.398,
                "shots_off_target": 0.5425,
                "bench_appearance_probability": 0.509,
                "bench_expected_minutes": 22.21,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "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.8815,
                "creation_factor": 1.0494,
                "fifa_overall": 78.0
              },
              "params": {
                "match_squad_rank": 11,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 2265,
                "fifa_rank": 1221.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.5292,
                "expected_assists": 0.0321,
                "assist_rate": 0.071,
                "assists": 0,
                "expected_goals": 0.0591,
                "goal_rate": 0.1002,
                "goals": 0,
                "shots_on_target": 0.3431,
                "total_shots": 0.8857,
                "rating": 6.7945,
                "minutes": 22.21,
                "total_pass": 14.4508,
                "accurate_pass": 11.6524,
                "duels_won": 2.2157,
                "total_long_balls": 0.5601,
                "accurate_long_balls": 0.3666,
                "total_own_half_passes": 4.8238,
                "accurate_own_half_passes": 4.4773,
                "total_opp_half_passes": 9.6269,
                "accurate_opp_half_passes": 7.1751,
                "crosses_total": 1.3037,
                "crosses_accurate": 0.5385,
                "touches": 22.0678,
                "possession_lost": 5.7368,
                "dispossessed": 0.3551,
                "duels_lost": 1.6874,
                "aerial_won": 0.551,
                "aerial_lost": 0.2404,
                "interceptions": 0.0,
                "tackles_won": 0.8854,
                "tackles": 1.0252,
                "clearances": 0.5565,
                "total_contest": 0.3446,
                "won_contest": 0.0,
                "challenges_lost": 0.0,
                "fouls": 0.6852,
                "fouls_drawn": 0.6394,
                "blocks": 0.1189,
                "big_chances_created": 0.1289,
                "big_chances_missed": 0.0792,
                "xgot": 0.1909,
                "ball_carries": 5.2865,
                "total_progression": 4.5244,
                "progressive_carries": 0.398,
                "shots_off_target": 0.5425,
                "bench_appearance_probability": 0.509,
                "bench_expected_minutes": 22.21,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0558,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8815,
                "creation_factor": 1.0494,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0558,
                "goal_rate": 0.1002,
                "scorer_weight": 0.0521,
                "squad_weight_total": 1.3959,
                "weight_share": 0.0373,
                "finishing_factor": 0.8815,
                "appearance_weight": 0.509,
                "weight_rank": 9,
                "eligible_players": 14,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Mikel Oyarzabal",
                    "weight": 0.3544,
                    "already": 0,
                    "effective_weight": 0.3544,
                    "runner_up": "Gonçalo Guedes",
                    "runner_up_effective_weight": 0.2684
                  }
                ]
              }
            },
            {
              "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.5292,
                "expected_assists": 0.0321,
                "assist_rate": 0.071,
                "assists": 0,
                "expected_goals": 0.0591,
                "goal_rate": 0.1002,
                "goals": 0,
                "shots_on_target": 0.3431,
                "total_shots": 0.8857,
                "rating": 6.7945,
                "minutes": 22.21,
                "total_pass": 14.4508,
                "accurate_pass": 11.6524,
                "duels_won": 2.2157,
                "total_long_balls": 0.5601,
                "accurate_long_balls": 0.3666,
                "total_own_half_passes": 4.8238,
                "accurate_own_half_passes": 4.4773,
                "total_opp_half_passes": 9.6269,
                "accurate_opp_half_passes": 7.1751,
                "crosses_total": 1.3037,
                "crosses_accurate": 0.5385,
                "touches": 22.0678,
                "possession_lost": 5.7368,
                "dispossessed": 0.3551,
                "duels_lost": 1.6874,
                "aerial_won": 0.551,
                "aerial_lost": 0.2404,
                "interceptions": 0.0,
                "tackles_won": 0.8854,
                "tackles": 1.0252,
                "clearances": 0.5565,
                "total_contest": 0.3446,
                "won_contest": 0.0,
                "challenges_lost": 0.0,
                "fouls": 0.6852,
                "fouls_drawn": 0.6394,
                "blocks": 0.1189,
                "big_chances_created": 0.1289,
                "big_chances_missed": 0.0792,
                "xgot": 0.1909,
                "ball_carries": 5.2865,
                "total_progression": 4.5244,
                "progressive_carries": 0.398,
                "shots_off_target": 0.5425,
                "bench_appearance_probability": 0.509,
                "bench_expected_minutes": 22.21,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0558,
                "projected_assists": 0,
                "assist_probability": 0.0311,
                "finishing_factor": 0.8815,
                "creation_factor": 1.0494,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0311,
                "assist_rate": 0.071,
                "provider_weight": 0.0337,
                "squad_weight_total": 0.8785,
                "weight_share": 0.0383,
                "creation_factor": 1.0494,
                "appearance_weight": 0.509,
                "weight_rank": 8,
                "eligible_players": 14,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Gonçalo Guedes",
                    "weight": 0.1642,
                    "already": 0,
                    "effective_weight": 0.1642,
                    "runner_up": "Carlos Soler",
                    "runner_up_effective_weight": 0.1308,
                    "blocked_own_goal": [
                      "Mikel Oyarzabal"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Takefusa Kubo": {
          "player_id": 880218,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 14,
          "height": 174,
          "market_value": 21000000,
          "stats": {
            "expected_goals": 0.0196,
            "goal_rate": 0.0396,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 0,
            "expected_assists": 0.0186,
            "key_pass": 1,
            "rating": 6.6977,
            "minutes": 19,
            "total_pass": 6,
            "accurate_pass": 5,
            "duels_won": 2,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 5,
            "accurate_opp_half_passes": 4,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 11,
            "possession_lost": 2.8101,
            "dispossessed": 0.478,
            "duels_lost": 1,
            "aerial_lost": 0,
            "total_contest": 1,
            "won_contest": 1,
            "ball_recovery": 1,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assist_rate": 0.0926,
            "assists": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 1,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0025,
            "offsides": 0,
            "ball_carries": 4,
            "total_progression": 11,
            "progressive_carries": 1,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.447,
            "bench_expected_minutes": 18.89,
            "projected_substitution_order": 4,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 4,
            "projected_substitution_expected_count": 2.572,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0192,
            "projected_assists": 0,
            "assist_probability": 0.0182,
            "finishing_factor": 0.9382,
            "creation_factor": 1.25,
            "fifa_overall": 80.0
          },
          "latest_10_games": [
            {
              "match_id": 16421073.0,
              "match_date": "2026-10-18",
              "home_team": "Málaga CF",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 71,
                "rating": 7.9,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.0211,
                "expected_assists": 0.0802,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 20,
                "accurate_pass": 18,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 1,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416332.0,
              "match_date": "2026-09-13",
              "home_team": "Real Sociedad",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 18,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0099,
                "total_shots": 0,
                "total_pass": 5,
                "accurate_pass": 5,
                "key_pass": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416340.0,
              "match_date": "2026-09-03",
              "home_team": "Real Sociedad",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 61,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.4845,
                "expected_assists": 0.0393,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 24,
                "accurate_pass": 18,
                "key_pass": 1,
                "clearances": 1,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416310.0,
              "match_date": "2026-08-29",
              "home_team": "Real Sociedad",
              "away_team": "Espanyol",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 12,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421051.0,
              "match_date": "2026-08-26",
              "home_team": "Real Madrid",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 74,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0988,
                "total_shots": 0,
                "total_pass": 16,
                "accurate_pass": 12,
                "key_pass": 1,
                "duels_won": 4,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416293.0,
              "match_date": "2026-08-21",
              "home_team": "Real Betis",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 58,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0452,
                "expected_assists": 0.0032,
                "total_shots": 1,
                "total_pass": 16,
                "accurate_pass": 12,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "duels_won": 7,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083624.0,
              "match_date": "2026-05-14",
              "home_team": "Girona FC",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Girona FC",
              "stats": {
                "minutes": 57,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0329,
                "expected_assists": 0.0075,
                "total_shots": 1,
                "total_pass": 9,
                "accurate_pass": 8,
                "key_pass": 1,
                "interceptions": 2,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083583.0,
              "match_date": "2026-05-09",
              "home_team": "Real Sociedad",
              "away_team": "Real Betis",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 54,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.4873,
                "total_shots": 0,
                "total_pass": 18,
                "accurate_pass": 16,
                "key_pass": 2,
                "tackles": 1,
                "tackles_won": 1,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083526.0,
              "match_date": "2026-05-04",
              "home_team": "Sevilla",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 32,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0154,
                "expected_assists": 0.0116,
                "total_shots": 1,
                "total_pass": 13,
                "accurate_pass": 11,
                "tackles": 2,
                "tackles_won": 1,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083239.0,
              "match_date": "2026-04-26",
              "home_team": "Rayo Vallecano",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 56,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0573,
                "expected_assists": 0.0122,
                "total_shots": 1,
                "total_pass": 16,
                "accurate_pass": 13,
                "duels_won": 4,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 1228,
            "combined_rank_score": 536.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 315.0,
            "sofascore_rating": 7.025,
            "sofascore_appearances": 24.0,
            "fifa_rank": 757.0,
            "fifa_overall": 80.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 15,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.6977,
            "source_file": "data/player_rankings.csv",
            "player_name": "Takefusa Kubo",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Carlo Armiento",
                  "ranking": 1223
                },
                {
                  "player_name": "Jeyson Rojas",
                  "ranking": 1224
                },
                {
                  "player_name": "Chang-seok Lim",
                  "ranking": 1225
                },
                {
                  "player_name": "Nicola Nanni",
                  "ranking": 1226
                },
                {
                  "player_name": "Nikola Vlašić",
                  "ranking": 1227
                }
              ],
              "lower": [
                {
                  "player_name": "Trevoh Chalobah",
                  "ranking": 1229
                },
                {
                  "player_name": "Moussa Niakhaté",
                  "ranking": 1230
                },
                {
                  "player_name": "Mario Pašalić",
                  "ranking": 1231
                },
                {
                  "player_name": "Shohruh Gadoev",
                  "ranking": 1232
                },
                {
                  "player_name": "Matthieu Udol",
                  "ranking": 1233
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.773,
          "history_matches": 30,
          "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": 30,
            "data_confidence": 0.773,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 18.89,
            "bench_appearance_prob": 0.447,
            "market_value_adjustment": 1.0058,
            "fbref_prior_metrics": {
              "squad": "Real Sociedad",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 4.0,
              "starts": 3.0,
              "sub_appearances": 1.0,
              "minutes_per_sub": 13.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "prior_reliability": 0.1533
            },
            "rationale": "Bench projection scaled from XGBoost F_service (30 historical appearances) to 18.9 expected mins (appearance prob 0.45); FBref playing time empirical prior: 1.0 sub appearances, 13.0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.0581,
                "goals": 0.0513,
                "goal_rate": 0.0513,
                "shots_on_target": 0.1882,
                "total_shots": 0.5279,
                "expected_assists": 0.0552,
                "key_pass": 0.6697,
                "rating": 6.6977,
                "minutes": 24.26,
                "total_pass": 8.1448,
                "accurate_pass": 6.7189,
                "duels_won": 2.0472,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 6.0885,
                "accurate_opp_half_passes": 4.976,
                "crosses_total": 0.4737,
                "crosses_accurate": 0.1199,
                "touches": 13.8972,
                "possession_lost": 3.5881,
                "dispossessed": 0.4752,
                "duels_lost": 1.4726,
                "aerial_lost": 0.2526,
                "total_contest": 1.207,
                "won_contest": 0.7604,
                "ball_recovery": 1.0608,
                "challenges_lost": 0.1252,
                "fouls": 0.1731,
                "fouls_drawn": 0.514,
                "assists": 0.1199,
                "assist_rate": 0.1199,
                "interceptions": 0.0,
                "tackles_won": 0.4562,
                "tackles": 0.6991,
                "clearances": 0.1019,
                "blocks": 0.0,
                "big_chances_created": 0.1199,
                "big_chances_missed": 0.0,
                "xgot": 0.0074,
                "offsides": 0.1789,
                "ball_carries": 4.7529,
                "total_progression": 14.1674,
                "progressive_carries": 0.926,
                "shots_off_target": 0.3397
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 6,
                  "trained_at": "2026-11-01T11:27:41.685145+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 612,
                    "rows": 17180
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Málaga CF",
                    "minutes": 71.0,
                    "is_starting": true,
                    "weight": 0.1512,
                    "rating": 7.9
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Atlético Madrid",
                    "minutes": 18.0,
                    "is_starting": false,
                    "weight": 0.1285,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-09-03",
                    "opponent": "Celta Vigo",
                    "minutes": 61.0,
                    "is_starting": true,
                    "weight": 0.1092,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-29",
                    "opponent": "Espanyol",
                    "minutes": 12.0,
                    "is_starting": false,
                    "weight": 0.0928,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-26",
                    "opponent": "Real Madrid",
                    "minutes": 74.0,
                    "is_starting": true,
                    "weight": 0.0789,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-08-21",
                    "opponent": "Real Betis",
                    "minutes": 58.0,
                    "is_starting": true,
                    "weight": 0.0671,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-05-14",
                    "opponent": "Girona FC",
                    "minutes": 57.0,
                    "is_starting": true,
                    "weight": 0.057,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-05-09",
                    "opponent": "Real Betis",
                    "minutes": 54.0,
                    "is_starting": true,
                    "weight": 0.0485,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-05-04",
                    "opponent": "Sevilla",
                    "minutes": 32.0,
                    "is_starting": false,
                    "weight": 0.0412,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-04-26",
                    "opponent": "Rayo Vallecano",
                    "minutes": 56.0,
                    "is_starting": true,
                    "weight": 0.035,
                    "rating": 6.5
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 0.0,
                  "accuratePass": 12.7137,
                  "expectedGoals": 0.0818,
                  "accurateOppositionHalfPasses": 9.4988,
                  "totalShots": 0.6487,
                  "totalOppositionHalfPasses": 11.9896
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.05808654800057411,
                    "model_output": 0.0581,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2767
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0987
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.036
                      },
                      {
                        "name": "goals",
                        "importance": 0.0336
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0236
                      }
                    ],
                    "decomposition": {
                      "base": 0.1929,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0881
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0167
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0064
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": -0.004
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0034
                        }
                      ],
                      "others": -0.0162,
                      "total": 0.0581,
                      "log_link": true,
                      "margin_base": -1.645586,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.609742
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.173566
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": -0.075877
                        },
                        {
                          "name": "totalShots_p90",
                          "margin": -0.050729
                        },
                        {
                          "name": "totalProgression",
                          "margin": -0.044982
                        }
                      ],
                      "others_margin": -0.245338
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.05129258334636688,
                    "model_output": 0.0513,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1491
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0805
                      },
                      {
                        "name": "goals",
                        "importance": 0.056
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0343
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 0.1972,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0971
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0111
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0072
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0065
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.005
                        }
                      ],
                      "others": -0.019,
                      "total": 0.0513,
                      "log_link": true,
                      "margin_base": -1.623746,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.678316
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.117888
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.083966
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": -0.083452
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": -0.068348
                        }
                      ],
                      "others_margin": -0.314493
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.18819697201251984,
                    "model_output": 0.1882,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2173
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0637
                      },
                      {
                        "name": "goals",
                        "importance": 0.0596
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0393
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 0.5269,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2401
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0316
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0137
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0115
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": -0.0104
                        }
                      ],
                      "others": -0.0314,
                      "total": 0.1882,
                      "log_link": true,
                      "margin_base": -0.640773,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.608242
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.116817
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.055157
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.048919
                        },
                        {
                          "name": "totalShots_p90",
                          "margin": -0.0462
                        }
                      ],
                      "others_margin": -0.154158
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.52790367603302,
                    "model_output": 0.5279,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.3005
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0627
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0526
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0309
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0307
                      }
                    ],
                    "decomposition": {
                      "base": 1.3756,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.478
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.1304
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0475
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": -0.0349
                        },
                        {
                          "name": "shotOffTarget",
                          "contribution": -0.0239
                        }
                      ],
                      "others": -0.133,
                      "total": 0.5279,
                      "log_link": false,
                      "margin_base": 1.375643,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.477959
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.130385
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.04751
                        },
                        {
                          "name": "totalShots_p90",
                          "margin": -0.034915
                        },
                        {
                          "name": "shotOffTarget",
                          "margin": -0.023883
                        }
                      ],
                      "others_margin": -0.133087
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.055170655250549316,
                    "model_output": 0.0552,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.1287
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1119
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0634
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0522
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.051
                      }
                    ],
                    "decomposition": {
                      "base": 0.065,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.021
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0061
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": 0.0058
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0043
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.0018
                        }
                      ],
                      "others": 0.0018,
                      "total": 0.0552,
                      "log_link": true,
                      "margin_base": -2.733324,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.390304
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.129177
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": 0.109492
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.079442
                        },
                        {
                          "name": "keyPass",
                          "margin": 0.034613
                        }
                      ],
                      "others_margin": 0.032462
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.6696508526802063,
                    "model_output": 0.6697,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1579
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1341
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0953
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.069
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0295
                      }
                    ],
                    "decomposition": {
                      "base": 0.6917,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2121
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": 0.0751
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0311
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0246
                        },
                        {
                          "name": "aerialWon",
                          "contribution": 0.0232
                        }
                      ],
                      "others": 0.0361,
                      "total": 0.6697,
                      "log_link": true,
                      "margin_base": -0.368585,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.366098
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": 0.145468
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.054497
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": 0.041156
                        },
                        {
                          "name": "aerialWon",
                          "margin": 0.037344
                        }
                      ],
                      "others_margin": 0.055218
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.697710037231445,
                    "model_output": 6.6977,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0495
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.048
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0462
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0455
                      },
                      {
                        "name": "rating",
                        "importance": 0.0455
                      }
                    ],
                    "decomposition": {
                      "base": 6.7733,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.078
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0167
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0093
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": 0.007
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0065
                        }
                      ],
                      "others": -0.0055,
                      "total": 6.6977,
                      "log_link": false,
                      "margin_base": 6.773334,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.078035
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.016659
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.009258
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": 0.00703
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.006504
                        }
                      ],
                      "others_margin": -0.005516
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "substitute",
                  "history_matches": 30,
                  "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 1.0058, quality 0.641)",
              "stats": {
                "expected_goals": 0.0584,
                "goals": 0.0516,
                "goal_rate": 0.0516,
                "shots_on_target": 0.1893,
                "total_shots": 0.531,
                "expected_assists": 0.0555,
                "key_pass": 0.6735,
                "rating": 6.6977,
                "minutes": 24.26,
                "total_pass": 8.192,
                "accurate_pass": 6.7579,
                "duels_won": 2.0591,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 6.1238,
                "accurate_opp_half_passes": 5.0049,
                "crosses_total": 0.4764,
                "crosses_accurate": 0.1206,
                "touches": 13.9778,
                "possession_lost": 3.6089,
                "dispossessed": 0.478,
                "duels_lost": 1.4811,
                "aerial_lost": 0.2541,
                "total_contest": 1.214,
                "won_contest": 0.7648,
                "ball_recovery": 1.067,
                "challenges_lost": 0.1259,
                "fouls": 0.1741,
                "fouls_drawn": 0.517,
                "assists": 0.1206,
                "assist_rate": 0.1206,
                "interceptions": 0.0,
                "tackles_won": 0.4588,
                "tackles": 0.7032,
                "clearances": 0.1025,
                "blocks": 0.0,
                "big_chances_created": 0.1206,
                "big_chances_missed": 0.0,
                "xgot": 0.0074,
                "offsides": 0.1799,
                "ball_carries": 4.7805,
                "total_progression": 14.2496,
                "progressive_carries": 0.9314,
                "shots_off_target": 0.3417
              },
              "params": {
                "market_value_eur": 21000000,
                "quality_factor": 0.6408,
                "boost_factor": 1.0058,
                "reference_quality": 0.505,
                "history_matches": 30,
                "history_shrink": 0.1429,
                "market_value_known": true
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0142)",
              "stats": {
                "expected_goals": 0.0584,
                "goals": 0.0509,
                "goal_rate": 0.0509,
                "shots_on_target": 0.1866,
                "total_shots": 0.5269,
                "expected_assists": 0.0555,
                "key_pass": 0.6735,
                "rating": 6.6977,
                "minutes": 24.26,
                "total_pass": 8.192,
                "accurate_pass": 6.7579,
                "duels_won": 2.0591,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 6.1238,
                "accurate_opp_half_passes": 5.0049,
                "crosses_total": 0.4763,
                "crosses_accurate": 0.1206,
                "touches": 13.9778,
                "possession_lost": 3.6089,
                "dispossessed": 0.478,
                "duels_lost": 1.4811,
                "aerial_lost": 0.2541,
                "total_contest": 1.214,
                "won_contest": 0.7648,
                "ball_recovery": 1.067,
                "challenges_lost": 0.1259,
                "fouls": 0.1766,
                "fouls_drawn": 0.518,
                "assists": 0.1189,
                "assist_rate": 0.1189,
                "interceptions": 0.0017,
                "tackles_won": 0.4556,
                "tackles": 0.7032,
                "clearances": 0.1025,
                "blocks": 0.0,
                "big_chances_created": 0.1206,
                "big_chances_missed": 0.0,
                "xgot": 0.0074,
                "offsides": 0.1773,
                "ball_carries": 4.7805,
                "total_progression": 14.2496,
                "progressive_carries": 0.9314,
                "shots_off_target": 0.3417
              },
              "params": {
                "blend_weight": 0.0142,
                "history_matches": 30,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.2696,
                "prior_reliability": 0.1533,
                "competition": "La Liga",
                "squad": "Real Sociedad"
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 24.3 to 18.9 expected minutes (appearance prob 0.45)",
              "stats": {
                "expected_goals": 0.0455,
                "goals": 0.0396,
                "goal_rate": 0.0396,
                "shots_on_target": 0.1453,
                "total_shots": 0.4114,
                "expected_assists": 0.0432,
                "key_pass": 0.5244,
                "rating": 6.6977,
                "minutes": 18.89,
                "total_pass": 6.3787,
                "accurate_pass": 5.262,
                "duels_won": 1.6033,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 4.7683,
                "accurate_opp_half_passes": 3.8971,
                "crosses_total": 0.3709,
                "crosses_accurate": 0.0939,
                "touches": 10.8838,
                "possession_lost": 2.8101,
                "dispossessed": 0.478,
                "duels_lost": 1.1533,
                "aerial_lost": 0.2541,
                "total_contest": 0.9453,
                "won_contest": 0.5955,
                "ball_recovery": 0.8308,
                "challenges_lost": 0.1259,
                "fouls": 0.1375,
                "fouls_drawn": 0.4033,
                "assists": 0.0926,
                "assist_rate": 0.0926,
                "interceptions": 0.0013,
                "tackles_won": 0.3548,
                "tackles": 0.5475,
                "clearances": 0.0798,
                "blocks": 0.0,
                "big_chances_created": 0.0939,
                "big_chances_missed": 0.0,
                "xgot": 0.0058,
                "offsides": 0.1773,
                "ball_carries": 3.7223,
                "total_progression": 11.0954,
                "progressive_carries": 0.7252,
                "shots_off_target": 0.2661,
                "bench_appearance_probability": 0.447,
                "bench_expected_minutes": 18.89
              },
              "params": {
                "expected_minutes": 18.89,
                "projection_minutes": 24.26,
                "minutes_scale": 0.7786,
                "appearance_probability": 0.447
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0455,
                "goals": 0.0396,
                "goal_rate": 0.0396,
                "shots_on_target": 0.1453,
                "total_shots": 0.4114,
                "expected_assists": 0.0432,
                "key_pass": 0.5244,
                "rating": 6.6977,
                "minutes": 18.89,
                "total_pass": 6.3787,
                "accurate_pass": 5.262,
                "duels_won": 1.6033,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 4.7683,
                "accurate_opp_half_passes": 3.8971,
                "crosses_total": 0.3709,
                "crosses_accurate": 0.0939,
                "touches": 10.8838,
                "possession_lost": 2.8101,
                "dispossessed": 0.478,
                "duels_lost": 1.1533,
                "aerial_lost": 0.2541,
                "total_contest": 0.9453,
                "won_contest": 0.5955,
                "ball_recovery": 0.8308,
                "challenges_lost": 0.1259,
                "fouls": 0.1375,
                "fouls_drawn": 0.4033,
                "assists": 0.0926,
                "assist_rate": 0.0926,
                "interceptions": 0.0013,
                "tackles_won": 0.3548,
                "tackles": 0.5475,
                "clearances": 0.0798,
                "blocks": 0.0,
                "big_chances_created": 0.0939,
                "big_chances_missed": 0.0,
                "xgot": 0.0058,
                "offsides": 0.1773,
                "ball_carries": 3.7223,
                "total_progression": 11.0954,
                "progressive_carries": 0.7252,
                "shots_off_target": 0.2661,
                "bench_appearance_probability": 0.447,
                "bench_expected_minutes": 18.89
              },
              "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.0455,
                "goal_rate": 0.0396,
                "goals": 0,
                "shots_on_target": 0.1453,
                "total_shots": 0.4114,
                "expected_assists": 0.0432,
                "key_pass": 0.5244,
                "rating": 6.6977,
                "minutes": 18.89,
                "total_pass": 6.3787,
                "accurate_pass": 5.262,
                "duels_won": 1.6033,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 4.7683,
                "accurate_opp_half_passes": 3.8971,
                "crosses_total": 0.3709,
                "crosses_accurate": 0.0939,
                "touches": 10.8838,
                "possession_lost": 2.8101,
                "dispossessed": 0.478,
                "duels_lost": 1.1533,
                "aerial_lost": 0.2541,
                "total_contest": 0.9453,
                "won_contest": 0.5955,
                "ball_recovery": 0.8308,
                "challenges_lost": 0.1259,
                "fouls": 0.1375,
                "fouls_drawn": 0.4033,
                "assist_rate": 0.0926,
                "assists": 0,
                "interceptions": 0.0013,
                "tackles_won": 0.3548,
                "tackles": 0.5475,
                "clearances": 0.0798,
                "blocks": 0.0,
                "big_chances_created": 0.0939,
                "big_chances_missed": 0.0,
                "xgot": 0.0058,
                "offsides": 0.1773,
                "ball_carries": 3.7223,
                "total_progression": 11.0954,
                "progressive_carries": 0.7252,
                "shots_off_target": 0.2661,
                "bench_appearance_probability": 0.447,
                "bench_expected_minutes": 18.89,
                "projected_substitution_order": 4,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "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": 1
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.25 (squad xG sum 1.3010, xG scale 0.9646, xA scale 0.9646, team xA 0.85 = 0.67 x lambda)",
              "stats": {
                "expected_goals": 0.0196,
                "goal_rate": 0.0396,
                "goals": 0,
                "shots_on_target": 0.1453,
                "total_shots": 0.4114,
                "expected_assists": 0.0186,
                "key_pass": 0.5244,
                "rating": 6.6977,
                "minutes": 18.89,
                "total_pass": 6.3787,
                "accurate_pass": 5.262,
                "duels_won": 1.6033,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 4.7683,
                "accurate_opp_half_passes": 3.8971,
                "crosses_total": 0.3709,
                "crosses_accurate": 0.0939,
                "touches": 10.8838,
                "possession_lost": 2.8101,
                "dispossessed": 0.478,
                "duels_lost": 1.1533,
                "aerial_lost": 0.2541,
                "total_contest": 0.9453,
                "won_contest": 0.5955,
                "ball_recovery": 0.8308,
                "challenges_lost": 0.1259,
                "fouls": 0.1375,
                "fouls_drawn": 0.4033,
                "assist_rate": 0.0926,
                "assists": 0,
                "interceptions": 0.0013,
                "tackles_won": 0.3548,
                "tackles": 0.5475,
                "clearances": 0.0798,
                "blocks": 0.0,
                "big_chances_created": 0.0939,
                "big_chances_missed": 0.0,
                "xgot": 0.0025,
                "offsides": 0.1773,
                "ball_carries": 3.7223,
                "total_progression": 11.0954,
                "progressive_carries": 0.7252,
                "shots_off_target": 0.2661,
                "bench_appearance_probability": 0.447,
                "bench_expected_minutes": 18.89,
                "projected_substitution_order": 4,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "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.9382,
                "creation_factor": 1.25
              },
              "params": {
                "team_lambda": 1.255,
                "squad_xg_sum": 1.301,
                "squad_xa_sum": 0.8767,
                "team_expected_assists": 0.8457,
                "team_xa_to_xg_ratio": 0.6739,
                "bench_appearance_weighted": true,
                "xg_scale": 0.9646,
                "xa_scale": 0.9646,
                "opponent_lambda": 1.729,
                "scoreline_reset": true,
                "appearance_weight": 0.447
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0455,
                  "after": 0.0196
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0432,
                  "after": 0.0186
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 80.0)",
              "stats": {
                "expected_goals": 0.0196,
                "goal_rate": 0.0396,
                "goals": 0,
                "shots_on_target": 0.1453,
                "total_shots": 0.4114,
                "expected_assists": 0.0186,
                "key_pass": 0.5244,
                "rating": 6.6977,
                "minutes": 18.89,
                "total_pass": 6.3787,
                "accurate_pass": 5.262,
                "duels_won": 1.6033,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 4.7683,
                "accurate_opp_half_passes": 3.8971,
                "crosses_total": 0.3709,
                "crosses_accurate": 0.0939,
                "touches": 10.8838,
                "possession_lost": 2.8101,
                "dispossessed": 0.478,
                "duels_lost": 1.1533,
                "aerial_lost": 0.2541,
                "total_contest": 0.9453,
                "won_contest": 0.5955,
                "ball_recovery": 0.8308,
                "challenges_lost": 0.1259,
                "fouls": 0.1375,
                "fouls_drawn": 0.4033,
                "assist_rate": 0.0926,
                "assists": 0,
                "interceptions": 0.0013,
                "tackles_won": 0.3548,
                "tackles": 0.5475,
                "clearances": 0.0798,
                "blocks": 0.0,
                "big_chances_created": 0.0939,
                "big_chances_missed": 0.0,
                "xgot": 0.0025,
                "offsides": 0.1773,
                "ball_carries": 3.7223,
                "total_progression": 11.0954,
                "progressive_carries": 0.7252,
                "shots_off_target": 0.2661,
                "bench_appearance_probability": 0.447,
                "bench_expected_minutes": 18.89,
                "projected_substitution_order": 4,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "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.9382,
                "creation_factor": 1.25,
                "fifa_overall": 80.0
              },
              "params": {
                "match_squad_rank": 15,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 1228,
                "fifa_rank": 757.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 80.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.0196,
                "goal_rate": 0.0396,
                "goals": 0,
                "shots_on_target": 0.1453,
                "total_shots": 0.4114,
                "expected_assists": 0.0186,
                "key_pass": 0.5244,
                "rating": 6.6977,
                "minutes": 18.89,
                "total_pass": 6.3787,
                "accurate_pass": 5.262,
                "duels_won": 1.6033,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 4.7683,
                "accurate_opp_half_passes": 3.8971,
                "crosses_total": 0.3709,
                "crosses_accurate": 0.0939,
                "touches": 10.8838,
                "possession_lost": 2.8101,
                "dispossessed": 0.478,
                "duels_lost": 1.1533,
                "aerial_lost": 0.2541,
                "total_contest": 0.9453,
                "won_contest": 0.5955,
                "ball_recovery": 0.8308,
                "challenges_lost": 0.1259,
                "fouls": 0.1375,
                "fouls_drawn": 0.4033,
                "assist_rate": 0.0926,
                "assists": 0,
                "interceptions": 0.0013,
                "tackles_won": 0.3548,
                "tackles": 0.5475,
                "clearances": 0.0798,
                "blocks": 0.0,
                "big_chances_created": 0.0939,
                "big_chances_missed": 0.0,
                "xgot": 0.0025,
                "offsides": 0.1773,
                "ball_carries": 3.7223,
                "total_progression": 11.0954,
                "progressive_carries": 0.7252,
                "shots_off_target": 0.2661,
                "bench_appearance_probability": 0.447,
                "bench_expected_minutes": 18.89,
                "projected_substitution_order": 4,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0192,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.9382,
                "creation_factor": 1.25,
                "fifa_overall": 80.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0192,
                "goal_rate": 0.0396,
                "scorer_weight": 0.0184,
                "squad_weight_total": 1.3959,
                "weight_share": 0.0132,
                "finishing_factor": 0.9382,
                "appearance_weight": 0.447,
                "weight_rank": 12,
                "eligible_players": 14,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Mikel Oyarzabal",
                    "weight": 0.3544,
                    "already": 0,
                    "effective_weight": 0.3544,
                    "runner_up": "Gonçalo Guedes",
                    "runner_up_effective_weight": 0.2684
                  }
                ]
              }
            },
            {
              "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.0196,
                "goal_rate": 0.0396,
                "goals": 0,
                "shots_on_target": 0.1453,
                "total_shots": 0.4114,
                "expected_assists": 0.0186,
                "key_pass": 0.5244,
                "rating": 6.6977,
                "minutes": 18.89,
                "total_pass": 6.3787,
                "accurate_pass": 5.262,
                "duels_won": 1.6033,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 4.7683,
                "accurate_opp_half_passes": 3.8971,
                "crosses_total": 0.3709,
                "crosses_accurate": 0.0939,
                "touches": 10.8838,
                "possession_lost": 2.8101,
                "dispossessed": 0.478,
                "duels_lost": 1.1533,
                "aerial_lost": 0.2541,
                "total_contest": 0.9453,
                "won_contest": 0.5955,
                "ball_recovery": 0.8308,
                "challenges_lost": 0.1259,
                "fouls": 0.1375,
                "fouls_drawn": 0.4033,
                "assist_rate": 0.0926,
                "assists": 0,
                "interceptions": 0.0013,
                "tackles_won": 0.3548,
                "tackles": 0.5475,
                "clearances": 0.0798,
                "blocks": 0.0,
                "big_chances_created": 0.0939,
                "big_chances_missed": 0.0,
                "xgot": 0.0025,
                "offsides": 0.1773,
                "ball_carries": 3.7223,
                "total_progression": 11.0954,
                "progressive_carries": 0.7252,
                "shots_off_target": 0.2661,
                "bench_appearance_probability": 0.447,
                "bench_expected_minutes": 18.89,
                "projected_substitution_order": 4,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0192,
                "projected_assists": 0,
                "assist_probability": 0.0182,
                "finishing_factor": 0.9382,
                "creation_factor": 1.25,
                "fifa_overall": 80.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0182,
                "assist_rate": 0.0926,
                "provider_weight": 0.0232,
                "squad_weight_total": 0.8785,
                "weight_share": 0.0265,
                "creation_factor": 1.25,
                "appearance_weight": 0.447,
                "weight_rank": 10,
                "eligible_players": 14,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Gonçalo Guedes",
                    "weight": 0.1642,
                    "already": 0,
                    "effective_weight": 0.1642,
                    "runner_up": "Carlos Soler",
                    "runner_up_effective_weight": 0.1308,
                    "blocked_own_goal": [
                      "Mikel Oyarzabal"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Orri Óskarsson": {
          "player_id": 1026015,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 9,
          "height": 186,
          "market_value": 21000000,
          "stats": {
            "expected_goals": 0.1013,
            "goal_rate": 0.1825,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "expected_assists": 0.0079,
            "key_pass": 0,
            "rating": 6.6548,
            "minutes": 26,
            "total_pass": 6,
            "accurate_pass": 3,
            "duels_won": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 4,
            "accurate_opp_half_passes": 2,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 9,
            "possession_lost": 3.8858,
            "dispossessed": 0.6132,
            "duels_lost": 3,
            "aerial_lost": 1,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 1,
            "challenges_lost": 0,
            "fouls": 1,
            "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.051,
            "offsides": 0,
            "ball_carries": 2,
            "total_progression": 11,
            "progressive_carries": 0,
            "shots_off_target": 1,
            "bench_appearance_probability": 0.595,
            "bench_expected_minutes": 26.1,
            "projected_substitution_order": 2,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 4,
            "projected_substitution_expected_count": 2.572,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0931,
            "projected_assists": 0,
            "assist_probability": 0.0078,
            "finishing_factor": 1.0265,
            "creation_factor": 0.8,
            "fifa_overall": 74.0
          },
          "latest_10_games": [
            {
              "match_id": 16421086.0,
              "match_date": "2026-10-25",
              "home_team": "Real Sociedad",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 85,
                "rating": 7.2,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 1.0443,
                "expected_assists": 0.002,
                "total_shots": 7,
                "shots_on_target": 1,
                "shots_off_target": 5,
                "total_pass": 11,
                "accurate_pass": 8,
                "tackles": 0,
                "tackles_won": 0,
                "interceptions": 0,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 0,
                "saves": 0
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421073.0,
              "match_date": "2026-10-18",
              "home_team": "Málaga CF",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 79,
                "rating": 6.7,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 1.1181,
                "expected_assists": 0.0107,
                "total_shots": 4,
                "shots_on_target": 1,
                "shots_off_target": 3,
                "total_pass": 13,
                "accurate_pass": 9,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416297.0,
              "match_date": "2026-09-20",
              "home_team": "Valencia",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Valencia",
              "stats": {
                "minutes": 35,
                "rating": 6.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0012,
                "total_shots": 0,
                "total_pass": 7,
                "accurate_pass": 3,
                "aerial_won": 2,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416332.0,
              "match_date": "2026-09-13",
              "home_team": "Real Sociedad",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 11,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0003,
                "total_shots": 0,
                "total_pass": 4,
                "accurate_pass": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416340.0,
              "match_date": "2026-09-03",
              "home_team": "Real Sociedad",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 71,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0249,
                "expected_assists": 0.0287,
                "total_shots": 1,
                "total_pass": 10,
                "accurate_pass": 6,
                "key_pass": 1,
                "aerial_won": 2,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416310.0,
              "match_date": "2026-08-29",
              "home_team": "Real Sociedad",
              "away_team": "Espanyol",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 78,
                "rating": 7.6,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 1.0278,
                "expected_assists": 0.0284,
                "total_shots": 4,
                "shots_on_target": 3,
                "shots_off_target": 1,
                "total_pass": 16,
                "accurate_pass": 12,
                "clearances": 1,
                "aerial_won": 3,
                "duels_won": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421051.0,
              "match_date": "2026-08-26",
              "home_team": "Real Madrid",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 33,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1318,
                "expected_assists": 0.002,
                "total_shots": 1,
                "total_pass": 10,
                "accurate_pass": 7,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416293.0,
              "match_date": "2026-08-21",
              "home_team": "Real Betis",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 90,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.9801,
                "expected_assists": 0.0082,
                "total_shots": 3,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 14,
                "accurate_pass": 6,
                "key_pass": 1,
                "aerial_won": 2,
                "duels_won": 4,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083719.0,
              "match_date": "2026-05-23",
              "home_team": "Espanyol",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 77,
                "rating": 7.9,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.7635,
                "expected_assists": 0.0024,
                "total_shots": 4,
                "shots_on_target": 3,
                "shots_off_target": 1,
                "total_pass": 9,
                "accurate_pass": 7,
                "tackles": 1,
                "tackles_won": 1,
                "aerial_won": 2,
                "duels_won": 4,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083687.0,
              "match_date": "2026-05-17",
              "home_team": "Real Sociedad",
              "away_team": "Valencia",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Valencia",
              "stats": {
                "minutes": 79,
                "rating": 8.0,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.708,
                "expected_assists": 0.0109,
                "total_shots": 3,
                "shots_on_target": 2,
                "shots_off_target": 1,
                "total_pass": 12,
                "accurate_pass": 4,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 3712,
            "combined_rank_score": 1678.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 447.0,
            "sofascore_rating": 6.8947,
            "sofascore_appearances": 20.0,
            "fifa_rank": 2909.0,
            "fifa_overall": 74.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 18,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.6548,
            "source_file": "data/player_rankings.csv",
            "player_name": "Orri Óskarsson",
            "ranking_neighbors": {
              "upper": [
                {
                  "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
                }
              ],
              "lower": [
                {
                  "player_name": "Santiago Núñez",
                  "ranking": 3713
                },
                {
                  "player_name": "Viktor Johansson",
                  "ranking": 3714
                },
                {
                  "player_name": "Isaac Romero",
                  "ranking": 3715
                },
                {
                  "player_name": "Roman Yaremchuk",
                  "ranking": 3716
                },
                {
                  "player_name": "Joe Gelhardt",
                  "ranking": 3717
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.75,
          "history_matches": 28,
          "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": 28,
            "data_confidence": 0.75,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 26.09746860076133,
            "bench_appearance_prob": 0.5953394818527877,
            "market_value_adjustment": 1.0062,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost F_service (28 historical appearances) to 26.1 expected mins (appearance prob 0.60)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.1637,
                "goals": 0.1693,
                "goal_rate": 0.1693,
                "shots_on_target": 0.443,
                "total_shots": 1.1298,
                "expected_assists": 0.0128,
                "key_pass": 0.2583,
                "rating": 6.6548,
                "minutes": 24.35,
                "total_pass": 5.1806,
                "accurate_pass": 3.1463,
                "duels_won": 0.8815,
                "total_long_balls": 0.2263,
                "accurate_long_balls": 0.062,
                "total_opp_half_passes": 3.3821,
                "accurate_opp_half_passes": 1.6973,
                "crosses_total": 0.1208,
                "crosses_accurate": 0.1009,
                "touches": 8.7353,
                "possession_lost": 3.6033,
                "dispossessed": 0.6094,
                "duels_lost": 2.6828,
                "aerial_lost": 0.8484,
                "total_contest": 0.3907,
                "won_contest": 0.062,
                "ball_recovery": 0.6152,
                "challenges_lost": 0.217,
                "fouls": 0.7413,
                "fouls_drawn": 0.062,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0324,
                "tackles_won": 0.1001,
                "tackles": 0.1001,
                "clearances": 0.1211,
                "blocks": 0.1187,
                "big_chances_created": 0.1208,
                "big_chances_missed": 0.0825,
                "xgot": 0.0824,
                "offsides": 0.3396,
                "ball_carries": 1.4191,
                "total_progression": 9.8772,
                "progressive_carries": 0.3978,
                "shots_off_target": 0.6868
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 6,
                  "trained_at": "2026-11-01T11:27:41.685145+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 612,
                    "rows": 17180
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-25",
                    "opponent": "Levante UD",
                    "minutes": 85.0,
                    "is_starting": true,
                    "weight": 0.1516,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Málaga CF",
                    "minutes": 79.0,
                    "is_starting": true,
                    "weight": 0.1289,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Valencia",
                    "minutes": 35.0,
                    "is_starting": false,
                    "weight": 0.1095,
                    "rating": 6.0
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Atlético Madrid",
                    "minutes": 11.0,
                    "is_starting": false,
                    "weight": 0.0931,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-09-03",
                    "opponent": "Celta Vigo",
                    "minutes": 71.0,
                    "is_starting": true,
                    "weight": 0.0791,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-29",
                    "opponent": "Espanyol",
                    "minutes": 78.0,
                    "is_starting": true,
                    "weight": 0.0673,
                    "rating": 7.6
                  },
                  {
                    "match_date": "2026-08-26",
                    "opponent": "Real Madrid",
                    "minutes": 33.0,
                    "is_starting": false,
                    "weight": 0.0572,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-21",
                    "opponent": "Real Betis",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0486,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-05-23",
                    "opponent": "Espanyol",
                    "minutes": 77.0,
                    "is_starting": true,
                    "weight": 0.0413,
                    "rating": 7.9
                  },
                  {
                    "match_date": "2026-05-17",
                    "opponent": "Valencia",
                    "minutes": 79.0,
                    "is_starting": true,
                    "weight": 0.0351,
                    "rating": 8.0
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 0.0,
                  "accuratePass": 6.2587,
                  "expectedGoals": 0.5513,
                  "accurateOppositionHalfPasses": 3.5631,
                  "totalShots": 2.7121,
                  "totalOppositionHalfPasses": 6.3183
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.16372640430927277,
                    "model_output": 0.1637,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2767
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0987
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.036
                      },
                      {
                        "name": "goals",
                        "importance": 0.0336
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0236
                      }
                    ],
                    "decomposition": {
                      "base": 0.1929,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0914
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0198
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0082
                        },
                        {
                          "name": "goals",
                          "contribution": 0.0077
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0054
                        }
                      ],
                      "others": 0.0211,
                      "total": 0.1637,
                      "log_link": true,
                      "margin_base": -1.645586,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.641625
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.177938
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.065361
                        },
                        {
                          "name": "goals",
                          "margin": 0.057734
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.038667
                        }
                      ],
                      "others_margin": 0.137951
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.16928839683532715,
                    "model_output": 0.1693,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1491
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0805
                      },
                      {
                        "name": "goals",
                        "importance": 0.056
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0343
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 0.1972,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.091
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.016
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0072
                        },
                        {
                          "name": "goals",
                          "contribution": 0.0068
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0064
                        }
                      ],
                      "others": 0.0267,
                      "total": 0.1693,
                      "log_link": true,
                      "margin_base": -1.623746,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.618761
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.140123
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.057415
                        },
                        {
                          "name": "goals",
                          "margin": 0.051131
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.045957
                        }
                      ],
                      "others_margin": 0.171731
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.4429742097854614,
                    "model_output": 0.443,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2173
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0637
                      },
                      {
                        "name": "goals",
                        "importance": 0.0596
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0393
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 0.5269,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2305
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0348
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.0243
                        },
                        {
                          "name": "goals",
                          "contribution": 0.0176
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0177
                        }
                      ],
                      "others": 0.0522,
                      "total": 0.443,
                      "log_link": true,
                      "margin_base": -0.640773,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.575471
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.110922
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": 0.070928
                        },
                        {
                          "name": "goals",
                          "margin": 0.048226
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.046287
                        }
                      ],
                      "others_margin": 0.125638
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.1297285556793213,
                    "model_output": 1.1297,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.3005
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0627
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0526
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0309
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0307
                      }
                    ],
                    "decomposition": {
                      "base": 1.3756,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.6321
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.2271
                        },
                        {
                          "name": "goals",
                          "contribution": 0.0555
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0534
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.039
                        }
                      ],
                      "others": 0.0892,
                      "total": 1.1297,
                      "log_link": false,
                      "margin_base": 1.375643,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.632125
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.227145
                        },
                        {
                          "name": "goals",
                          "margin": 0.055474
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.053354
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.038964
                        }
                      ],
                      "others_margin": 0.089203
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.012825071811676025,
                    "model_output": 0.0128,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.1287
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1119
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0634
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0522
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.051
                      }
                    ],
                    "decomposition": {
                      "base": 0.065,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0231
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0119
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.0046
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.0022
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.002
                        }
                      ],
                      "others": -0.0084,
                      "total": 0.0128,
                      "log_link": true,
                      "margin_base": -2.733324,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.439267
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.334546
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.167262
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.090163
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.090155
                        }
                      ],
                      "others_margin": -0.501636
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.2582930326461792,
                    "model_output": 0.2583,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1579
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1341
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0953
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.069
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0295
                      }
                    ],
                    "decomposition": {
                      "base": 0.6917,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2624
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.037
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.0277
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0214
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0169
                        }
                      ],
                      "others": -0.068,
                      "total": 0.2583,
                      "log_link": true,
                      "margin_base": -0.368585,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.477085
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.090206
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.073277
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.060463
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.050564
                        }
                      ],
                      "others_margin": -0.233481
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.654808044433594,
                    "model_output": 6.6548,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0495
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.048
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0462
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0455
                      },
                      {
                        "name": "rating",
                        "importance": 0.0455
                      }
                    ],
                    "decomposition": {
                      "base": 6.7733,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.069
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0139
                        },
                        {
                          "name": "goals",
                          "contribution": 0.0131
                        },
                        {
                          "name": "touches",
                          "contribution": -0.0102
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0097
                        }
                      ],
                      "others": -0.0288,
                      "total": 6.6548,
                      "log_link": false,
                      "margin_base": 6.773334,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.068955
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.013904
                        },
                        {
                          "name": "goals",
                          "margin": 0.013122
                        },
                        {
                          "name": "touches",
                          "margin": -0.010151
                        },
                        {
                          "name": "rating",
                          "margin": -0.009706
                        }
                      ],
                      "others_margin": -0.028931
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "substitute",
                  "history_matches": 28,
                  "role_matches": 15,
                  "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.0062, quality 0.641)",
              "stats": {
                "expected_goals": 0.1647,
                "goals": 0.1703,
                "goal_rate": 0.1703,
                "shots_on_target": 0.4457,
                "total_shots": 1.1368,
                "expected_assists": 0.0129,
                "key_pass": 0.2599,
                "rating": 6.6548,
                "minutes": 24.35,
                "total_pass": 5.2127,
                "accurate_pass": 3.1658,
                "duels_won": 0.887,
                "total_long_balls": 0.2277,
                "accurate_long_balls": 0.0624,
                "total_opp_half_passes": 3.4031,
                "accurate_opp_half_passes": 1.7078,
                "crosses_total": 0.1215,
                "crosses_accurate": 0.1015,
                "touches": 8.7895,
                "possession_lost": 3.6256,
                "dispossessed": 0.6132,
                "duels_lost": 2.6994,
                "aerial_lost": 0.8537,
                "total_contest": 0.3931,
                "won_contest": 0.0624,
                "ball_recovery": 0.619,
                "challenges_lost": 0.2183,
                "fouls": 0.7459,
                "fouls_drawn": 0.0624,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0326,
                "tackles_won": 0.1007,
                "tackles": 0.1007,
                "clearances": 0.1219,
                "blocks": 0.1194,
                "big_chances_created": 0.1215,
                "big_chances_missed": 0.083,
                "xgot": 0.0829,
                "offsides": 0.3417,
                "ball_carries": 1.4279,
                "total_progression": 9.9384,
                "progressive_carries": 0.4003,
                "shots_off_target": 0.6911
              },
              "params": {
                "market_value_eur": 21000000,
                "quality_factor": 0.6408,
                "boost_factor": 1.0062,
                "reference_quality": 0.505,
                "history_matches": 28,
                "history_shrink": 0.1515,
                "market_value_known": true
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 24.4 to 26.1 expected minutes (appearance prob 0.60)",
              "stats": {
                "expected_goals": 0.1765,
                "goals": 0.1825,
                "goal_rate": 0.1825,
                "shots_on_target": 0.4777,
                "total_shots": 1.2184,
                "expected_assists": 0.0138,
                "key_pass": 0.2786,
                "rating": 6.6548,
                "minutes": 26.1,
                "total_pass": 5.5868,
                "accurate_pass": 3.393,
                "duels_won": 0.9507,
                "total_long_balls": 0.244,
                "accurate_long_balls": 0.0669,
                "total_opp_half_passes": 3.6473,
                "accurate_opp_half_passes": 1.8304,
                "crosses_total": 0.1302,
                "crosses_accurate": 0.1088,
                "touches": 9.4203,
                "possession_lost": 3.8858,
                "dispossessed": 0.6132,
                "duels_lost": 2.8931,
                "aerial_lost": 0.8537,
                "total_contest": 0.4213,
                "won_contest": 0.0669,
                "ball_recovery": 0.6634,
                "challenges_lost": 0.2183,
                "fouls": 0.7994,
                "fouls_drawn": 0.0669,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0349,
                "tackles_won": 0.1079,
                "tackles": 0.1079,
                "clearances": 0.1306,
                "blocks": 0.128,
                "big_chances_created": 0.1302,
                "big_chances_missed": 0.089,
                "xgot": 0.0888,
                "offsides": 0.3417,
                "ball_carries": 1.5304,
                "total_progression": 10.6516,
                "progressive_carries": 0.429,
                "shots_off_target": 0.7407,
                "bench_appearance_probability": 0.595,
                "bench_expected_minutes": 26.1
              },
              "params": {
                "expected_minutes": 26.1,
                "projection_minutes": 24.35,
                "minutes_scale": 1.0718,
                "appearance_probability": 0.595
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.1765,
                "goals": 0.1825,
                "goal_rate": 0.1825,
                "shots_on_target": 0.4777,
                "total_shots": 1.2184,
                "expected_assists": 0.0138,
                "key_pass": 0.2786,
                "rating": 6.6548,
                "minutes": 26.1,
                "total_pass": 5.5868,
                "accurate_pass": 3.393,
                "duels_won": 0.9507,
                "total_long_balls": 0.244,
                "accurate_long_balls": 0.0669,
                "total_opp_half_passes": 3.6473,
                "accurate_opp_half_passes": 1.8304,
                "crosses_total": 0.1302,
                "crosses_accurate": 0.1088,
                "touches": 9.4203,
                "possession_lost": 3.8858,
                "dispossessed": 0.6132,
                "duels_lost": 2.8931,
                "aerial_lost": 0.8537,
                "total_contest": 0.4213,
                "won_contest": 0.0669,
                "ball_recovery": 0.6634,
                "challenges_lost": 0.2183,
                "fouls": 0.7994,
                "fouls_drawn": 0.0669,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0349,
                "tackles_won": 0.1079,
                "tackles": 0.1079,
                "clearances": 0.1306,
                "blocks": 0.128,
                "big_chances_created": 0.1302,
                "big_chances_missed": 0.089,
                "xgot": 0.0888,
                "offsides": 0.3417,
                "ball_carries": 1.5304,
                "total_progression": 10.6516,
                "progressive_carries": 0.429,
                "shots_off_target": 0.7407,
                "bench_appearance_probability": 0.595,
                "bench_expected_minutes": 26.1
              },
              "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.1765,
                "goal_rate": 0.1825,
                "goals": 0,
                "shots_on_target": 0.4777,
                "total_shots": 1.2184,
                "expected_assists": 0.0138,
                "key_pass": 0.2786,
                "rating": 6.6548,
                "minutes": 26.1,
                "total_pass": 5.5868,
                "accurate_pass": 3.393,
                "duels_won": 0.9507,
                "total_long_balls": 0.244,
                "accurate_long_balls": 0.0669,
                "total_opp_half_passes": 3.6473,
                "accurate_opp_half_passes": 1.8304,
                "crosses_total": 0.1302,
                "crosses_accurate": 0.1088,
                "touches": 9.4203,
                "possession_lost": 3.8858,
                "dispossessed": 0.6132,
                "duels_lost": 2.8931,
                "aerial_lost": 0.8537,
                "total_contest": 0.4213,
                "won_contest": 0.0669,
                "ball_recovery": 0.6634,
                "challenges_lost": 0.2183,
                "fouls": 0.7994,
                "fouls_drawn": 0.0669,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0349,
                "tackles_won": 0.1079,
                "tackles": 0.1079,
                "clearances": 0.1306,
                "blocks": 0.128,
                "big_chances_created": 0.1302,
                "big_chances_missed": 0.089,
                "xgot": 0.0888,
                "offsides": 0.3417,
                "ball_carries": 1.5304,
                "total_progression": 10.6516,
                "progressive_carries": 0.429,
                "shots_off_target": 0.7407,
                "bench_appearance_probability": 0.595,
                "bench_expected_minutes": 26.1,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "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": 1
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.25 (squad xG sum 1.3010, xG scale 0.9646, xA scale 0.9646, team xA 0.85 = 0.67 x lambda)",
              "stats": {
                "expected_goals": 0.1013,
                "goal_rate": 0.1825,
                "goals": 0,
                "shots_on_target": 0.4777,
                "total_shots": 1.2184,
                "expected_assists": 0.0079,
                "key_pass": 0.2786,
                "rating": 6.6548,
                "minutes": 26.1,
                "total_pass": 5.5868,
                "accurate_pass": 3.393,
                "duels_won": 0.9507,
                "total_long_balls": 0.244,
                "accurate_long_balls": 0.0669,
                "total_opp_half_passes": 3.6473,
                "accurate_opp_half_passes": 1.8304,
                "crosses_total": 0.1302,
                "crosses_accurate": 0.1088,
                "touches": 9.4203,
                "possession_lost": 3.8858,
                "dispossessed": 0.6132,
                "duels_lost": 2.8931,
                "aerial_lost": 0.8537,
                "total_contest": 0.4213,
                "won_contest": 0.0669,
                "ball_recovery": 0.6634,
                "challenges_lost": 0.2183,
                "fouls": 0.7994,
                "fouls_drawn": 0.0669,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0349,
                "tackles_won": 0.1079,
                "tackles": 0.1079,
                "clearances": 0.1306,
                "blocks": 0.128,
                "big_chances_created": 0.1302,
                "big_chances_missed": 0.089,
                "xgot": 0.051,
                "offsides": 0.3417,
                "ball_carries": 1.5304,
                "total_progression": 10.6516,
                "progressive_carries": 0.429,
                "shots_off_target": 0.7407,
                "bench_appearance_probability": 0.595,
                "bench_expected_minutes": 26.1,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "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.0265,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 1.255,
                "squad_xg_sum": 1.301,
                "squad_xa_sum": 0.8767,
                "team_expected_assists": 0.8457,
                "team_xa_to_xg_ratio": 0.6739,
                "bench_appearance_weighted": true,
                "xg_scale": 0.9646,
                "xa_scale": 0.9646,
                "opponent_lambda": 1.729,
                "scoreline_reset": true,
                "appearance_weight": 0.595
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.1765,
                  "after": 0.1013
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0138,
                  "after": 0.0079
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 18 by projected rating, fifa_overall 74.0)",
              "stats": {
                "expected_goals": 0.1013,
                "goal_rate": 0.1825,
                "goals": 0,
                "shots_on_target": 0.4777,
                "total_shots": 1.2184,
                "expected_assists": 0.0079,
                "key_pass": 0.2786,
                "rating": 6.6548,
                "minutes": 26.1,
                "total_pass": 5.5868,
                "accurate_pass": 3.393,
                "duels_won": 0.9507,
                "total_long_balls": 0.244,
                "accurate_long_balls": 0.0669,
                "total_opp_half_passes": 3.6473,
                "accurate_opp_half_passes": 1.8304,
                "crosses_total": 0.1302,
                "crosses_accurate": 0.1088,
                "touches": 9.4203,
                "possession_lost": 3.8858,
                "dispossessed": 0.6132,
                "duels_lost": 2.8931,
                "aerial_lost": 0.8537,
                "total_contest": 0.4213,
                "won_contest": 0.0669,
                "ball_recovery": 0.6634,
                "challenges_lost": 0.2183,
                "fouls": 0.7994,
                "fouls_drawn": 0.0669,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0349,
                "tackles_won": 0.1079,
                "tackles": 0.1079,
                "clearances": 0.1306,
                "blocks": 0.128,
                "big_chances_created": 0.1302,
                "big_chances_missed": 0.089,
                "xgot": 0.051,
                "offsides": 0.3417,
                "ball_carries": 1.5304,
                "total_progression": 10.6516,
                "progressive_carries": 0.429,
                "shots_off_target": 0.7407,
                "bench_appearance_probability": 0.595,
                "bench_expected_minutes": 26.1,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "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.0265,
                "creation_factor": 0.8,
                "fifa_overall": 74.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": 3712,
                "fifa_rank": 2909.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": {
                "expected_goals": 0.1013,
                "goal_rate": 0.1825,
                "goals": 0,
                "shots_on_target": 0.4777,
                "total_shots": 1.2184,
                "expected_assists": 0.0079,
                "key_pass": 0.2786,
                "rating": 6.6548,
                "minutes": 26.1,
                "total_pass": 5.5868,
                "accurate_pass": 3.393,
                "duels_won": 0.9507,
                "total_long_balls": 0.244,
                "accurate_long_balls": 0.0669,
                "total_opp_half_passes": 3.6473,
                "accurate_opp_half_passes": 1.8304,
                "crosses_total": 0.1302,
                "crosses_accurate": 0.1088,
                "touches": 9.4203,
                "possession_lost": 3.8858,
                "dispossessed": 0.6132,
                "duels_lost": 2.8931,
                "aerial_lost": 0.8537,
                "total_contest": 0.4213,
                "won_contest": 0.0669,
                "ball_recovery": 0.6634,
                "challenges_lost": 0.2183,
                "fouls": 0.7994,
                "fouls_drawn": 0.0669,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0349,
                "tackles_won": 0.1079,
                "tackles": 0.1079,
                "clearances": 0.1306,
                "blocks": 0.128,
                "big_chances_created": 0.1302,
                "big_chances_missed": 0.089,
                "xgot": 0.051,
                "offsides": 0.3417,
                "ball_carries": 1.5304,
                "total_progression": 10.6516,
                "progressive_carries": 0.429,
                "shots_off_target": 0.7407,
                "bench_appearance_probability": 0.595,
                "bench_expected_minutes": 26.1,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0931,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0265,
                "creation_factor": 0.8,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0931,
                "goal_rate": 0.1825,
                "scorer_weight": 0.104,
                "squad_weight_total": 1.3959,
                "weight_share": 0.0745,
                "finishing_factor": 1.0265,
                "appearance_weight": 0.595,
                "weight_rank": 5,
                "eligible_players": 14,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Mikel Oyarzabal",
                    "weight": 0.3544,
                    "already": 0,
                    "effective_weight": 0.3544,
                    "runner_up": "Gonçalo Guedes",
                    "runner_up_effective_weight": 0.2684
                  }
                ]
              }
            },
            {
              "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.1013,
                "goal_rate": 0.1825,
                "goals": 0,
                "shots_on_target": 0.4777,
                "total_shots": 1.2184,
                "expected_assists": 0.0079,
                "key_pass": 0.2786,
                "rating": 6.6548,
                "minutes": 26.1,
                "total_pass": 5.5868,
                "accurate_pass": 3.393,
                "duels_won": 0.9507,
                "total_long_balls": 0.244,
                "accurate_long_balls": 0.0669,
                "total_opp_half_passes": 3.6473,
                "accurate_opp_half_passes": 1.8304,
                "crosses_total": 0.1302,
                "crosses_accurate": 0.1088,
                "touches": 9.4203,
                "possession_lost": 3.8858,
                "dispossessed": 0.6132,
                "duels_lost": 2.8931,
                "aerial_lost": 0.8537,
                "total_contest": 0.4213,
                "won_contest": 0.0669,
                "ball_recovery": 0.6634,
                "challenges_lost": 0.2183,
                "fouls": 0.7994,
                "fouls_drawn": 0.0669,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0349,
                "tackles_won": 0.1079,
                "tackles": 0.1079,
                "clearances": 0.1306,
                "blocks": 0.128,
                "big_chances_created": 0.1302,
                "big_chances_missed": 0.089,
                "xgot": 0.051,
                "offsides": 0.3417,
                "ball_carries": 1.5304,
                "total_progression": 10.6516,
                "progressive_carries": 0.429,
                "shots_off_target": 0.7407,
                "bench_appearance_probability": 0.595,
                "bench_expected_minutes": 26.1,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0931,
                "projected_assists": 0,
                "assist_probability": 0.0078,
                "finishing_factor": 1.0265,
                "creation_factor": 0.8,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0078,
                "assist_rate": 0.0,
                "provider_weight": 0.0063,
                "squad_weight_total": 0.8785,
                "weight_share": 0.0072,
                "creation_factor": 0.8,
                "appearance_weight": 0.595,
                "weight_rank": 14,
                "eligible_players": 14,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Gonçalo Guedes",
                    "weight": 0.1642,
                    "already": 0,
                    "effective_weight": 0.1642,
                    "runner_up": "Carlos Soler",
                    "runner_up_effective_weight": 0.1308,
                    "blocked_own_goal": [
                      "Mikel Oyarzabal"
                    ]
                  }
                ]
              }
            }
          ]
        }
      },
      "substitutes": {
        "Arsen Zakharyan": {
          "player_id": 1066045,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 23,
          "height": 183,
          "market_value": 8700000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0193,
            "assist_rate": 0.0467,
            "assists": 0,
            "expected_goals": 0.031,
            "goal_rate": 0.0511,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 0,
            "rating": 6.6805,
            "minutes": 12,
            "total_pass": 7,
            "accurate_pass": 5,
            "duels_won": 0,
            "total_long_balls": 1,
            "accurate_long_balls": 1,
            "total_own_half_passes": 2,
            "accurate_own_half_passes": 2,
            "total_opp_half_passes": 5,
            "accurate_opp_half_passes": 4,
            "crosses_total": 1,
            "crosses_accurate": 0,
            "touches": 10,
            "possession_lost": 3.4776,
            "dispossessed": 0.1973,
            "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.026,
            "ball_carries": 3,
            "total_progression": 7,
            "progressive_carries": 0,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.698,
            "bench_expected_minutes": 12.21,
            "projected_substitution_order": 1,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 4,
            "projected_substitution_expected_count": 2.572,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0303,
            "projected_assists": 0,
            "assist_probability": 0.019,
            "finishing_factor": 1.052,
            "creation_factor": 1.2287,
            "fifa_overall": 73.0
          },
          "latest_10_games": [
            {
              "match_id": 16421086.0,
              "match_date": "2026-10-25",
              "home_team": "Real Sociedad",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 5,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0725,
                "expected_assists": 0.0017,
                "total_shots": 1,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "total_pass": 3,
                "accurate_pass": 3,
                "tackles": 0,
                "tackles_won": 0,
                "interceptions": 0,
                "clearances": 0,
                "aerial_won": 0,
                "duels_won": 0,
                "ball_recovery": 0,
                "saves": 0
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421067.0,
              "match_date": "2026-10-11",
              "home_team": "Real Sociedad",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 56,
                "rating": 7.9,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.07,
                "expected_assists": 0.0135,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 21,
                "accurate_pass": 16,
                "clearances": 2,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416297.0,
              "match_date": "2026-09-20",
              "home_team": "Valencia",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Valencia",
              "stats": {
                "minutes": 10,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0004,
                "total_shots": 0,
                "total_pass": 2,
                "accurate_pass": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416332.0,
              "match_date": "2026-09-13",
              "home_team": "Real Sociedad",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 11,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0565,
                "total_shots": 0,
                "total_pass": 13,
                "accurate_pass": 10
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416293.0,
              "match_date": "2026-08-21",
              "home_team": "Real Betis",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 8,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0006,
                "total_shots": 0,
                "total_pass": 2,
                "accurate_pass": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083687.0,
              "match_date": "2026-05-17",
              "home_team": "Real Sociedad",
              "away_team": "Valencia",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Valencia",
              "stats": {
                "minutes": 57,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.1816,
                "total_shots": 0,
                "total_pass": 34,
                "accurate_pass": 27,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 2,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14081808.0,
              "match_date": "2026-03-20",
              "home_team": "Villarreal",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 8,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.48,
                "expected_assists": 0.0533,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 12,
                "accurate_pass": 9
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083602.0,
              "match_date": "2026-03-07",
              "home_team": "Atlético Madrid",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 25,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0028,
                "total_shots": 0,
                "total_pass": 10,
                "accurate_pass": 8,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14081818.0,
              "match_date": "2026-02-28",
              "home_team": "Mallorca",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Mallorca",
              "stats": {
                "minutes": 63,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0937,
                "expected_assists": 0.233,
                "total_shots": 3,
                "shots_off_target": 1,
                "total_pass": 16,
                "accurate_pass": 15,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14081792.0,
              "match_date": "2026-02-21",
              "home_team": "Real Sociedad",
              "away_team": "Real Oviedo",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Real Oviedo",
              "stats": {
                "minutes": 13,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.3302,
                "expected_assists": 0.0005,
                "total_shots": 4,
                "shots_on_target": 2,
                "shots_off_target": 1,
                "total_pass": 7,
                "accurate_pass": 4,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 4159,
            "combined_rank_score": 2169.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 822.0,
            "sofascore_rating": 6.6,
            "sofascore_appearances": 1.0,
            "fifa_rank": 3517.0,
            "fifa_overall": 73.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 16,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.6805,
            "source_file": "data/player_rankings.csv",
            "player_name": "Arsen Zakharyan",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Mujaid",
                  "ranking": 4154
                },
                {
                  "player_name": "Adriano Bertaccini",
                  "ranking": 4155
                },
                {
                  "player_name": "Matthieu Epolo",
                  "ranking": 4156
                },
                {
                  "player_name": "Regan Slater",
                  "ranking": 4157
                },
                {
                  "player_name": "Abdelkahar Kadri",
                  "ranking": 4158
                }
              ],
              "lower": [
                {
                  "player_name": "Nicolò Tresoldi",
                  "ranking": 4160
                },
                {
                  "player_name": "Santiago Arias",
                  "ranking": 4161
                },
                {
                  "player_name": "Carlos Forbs",
                  "ranking": 4162
                },
                {
                  "player_name": "Kees Smit",
                  "ranking": 4163
                },
                {
                  "player_name": "Tjaronn Chery",
                  "ranking": 4164
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.75,
          "history_matches": 22,
          "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": 22,
            "data_confidence": 0.75,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 12.21,
            "bench_appearance_prob": 0.698,
            "market_value_adjustment": 1.0001,
            "fbref_prior_metrics": {
              "squad": "Real Sociedad",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 1.0,
              "starts": 0.0,
              "sub_appearances": 1.0,
              "minutes_per_sub": 4.0,
              "prior_reliability": 0.0
            },
            "rationale": "Bench projection scaled from XGBoost M_service (22 historical appearances) to 12.2 expected mins (appearance prob 0.70); FBref playing time empirical prior: 1.0 sub appearances, 4.0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 0.3362,
                "expected_assists": 0.0306,
                "assists": 0.0499,
                "assist_rate": 0.0499,
                "expected_goals": 0.0493,
                "goals": 0.0546,
                "goal_rate": 0.0546,
                "shots_on_target": 0.2041,
                "total_shots": 0.5096,
                "rating": 6.6805,
                "minutes": 13.05,
                "total_pass": 7.2664,
                "accurate_pass": 5.535,
                "duels_won": 0.4614,
                "total_long_balls": 0.8829,
                "accurate_long_balls": 0.5723,
                "total_own_half_passes": 1.9839,
                "accurate_own_half_passes": 1.724,
                "total_opp_half_passes": 5.2824,
                "accurate_opp_half_passes": 3.811,
                "crosses_total": 1.156,
                "crosses_accurate": 0.0365,
                "touches": 11.2052,
                "possession_lost": 3.7164,
                "dispossessed": 0.1973,
                "duels_lost": 0.9054,
                "aerial_won": 0.0866,
                "aerial_lost": 0.3186,
                "interceptions": 0.0,
                "tackles_won": 0.0889,
                "tackles": 0.181,
                "clearances": 0.0192,
                "total_contest": 0.1786,
                "won_contest": 0.0,
                "challenges_lost": 0.0917,
                "fouls": 0.1789,
                "fouls_drawn": 0.1938,
                "blocks": 0.1347,
                "big_chances_created": 0.0138,
                "big_chances_missed": 0.1425,
                "xgot": 0.0413,
                "ball_carries": 3.07,
                "total_progression": 7.6886,
                "progressive_carries": 0.2926,
                "shots_off_target": 0.3055
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 7,
                  "trained_at": "2026-11-01T11:27:07.750726+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 905,
                    "rows": 25067
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-25",
                    "opponent": "Levante UD",
                    "minutes": 5.0,
                    "is_starting": false,
                    "weight": 0.1543,
                    "rating": 0.0
                  },
                  {
                    "match_date": "2026-10-11",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 56.0,
                    "is_starting": true,
                    "weight": 0.1312,
                    "rating": 7.9
                  },
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Valencia",
                    "minutes": 10.0,
                    "is_starting": false,
                    "weight": 0.1115,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Atlético Madrid",
                    "minutes": 11.0,
                    "is_starting": false,
                    "weight": 0.0948,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-21",
                    "opponent": "Real Betis",
                    "minutes": 8.0,
                    "is_starting": false,
                    "weight": 0.0806,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-05-17",
                    "opponent": "Valencia",
                    "minutes": 57.0,
                    "is_starting": true,
                    "weight": 0.0685,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-03-20",
                    "opponent": "Villarreal",
                    "minutes": 8.0,
                    "is_starting": false,
                    "weight": 0.0582,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-03-07",
                    "opponent": "Atlético Madrid",
                    "minutes": 25.0,
                    "is_starting": false,
                    "weight": 0.0495,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-02-28",
                    "opponent": "Mallorca",
                    "minutes": 63.0,
                    "is_starting": true,
                    "weight": 0.0421,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-02-21",
                    "opponent": "Real Oviedo",
                    "minutes": 13.0,
                    "is_starting": false,
                    "weight": 0.0357,
                    "rating": 6.3
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 0.0,
                  "totalShots": 0.6812,
                  "creative_index": 0.1178,
                  "expectedGoals": 0.0654,
                  "expectedAssists": 0.0426,
                  "keyPass": 0.2306
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.33622226119041443,
                    "model_output": 0.3362,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1578
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1373
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0712
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0516
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0289
                      }
                    ],
                    "decomposition": {
                      "base": 0.8902,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.4465
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0384
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0235
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0119
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0104
                        }
                      ],
                      "others": -0.0233,
                      "total": 0.3362,
                      "log_link": true,
                      "margin_base": -0.116298,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.696284
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.0905
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": -0.059627
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.031779
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.028579
                        }
                      ],
                      "others_margin": -0.066917
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.03064700961112976,
                    "model_output": 0.0306,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1181
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.1136
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.1034
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0572
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0473
                      }
                    ],
                    "decomposition": {
                      "base": 0.0847,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0414
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0046
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0035
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.002
                        },
                        {
                          "name": "goalAssist",
                          "contribution": -0.0016
                        }
                      ],
                      "others": -0.005,
                      "total": 0.0306,
                      "log_link": true,
                      "margin_base": -2.468924,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.672173
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.111549
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.094766
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.056048
                        },
                        {
                          "name": "goalAssist",
                          "margin": -0.045289
                        }
                      ],
                      "others_margin": -0.148567
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.04992124065756798,
                    "model_output": 0.0499,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0627
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0445
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0417
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0324
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0293
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.022
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.006
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0052
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.004
                        },
                        {
                          "name": "totalCross",
                          "contribution": 0.0041
                        }
                      ],
                      "others": -0.0101,
                      "total": 0.0499,
                      "log_link": true,
                      "margin_base": -2.463472,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.298398
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.100041
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.095673
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.073593
                        },
                        {
                          "name": "totalCross",
                          "margin": 0.070879
                        }
                      ],
                      "others_margin": -0.184199
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.049280211329460144,
                    "model_output": 0.0493,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedGoals",
                        "importance": 0.1255
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0756
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0438
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0265
                      }
                    ],
                    "decomposition": {
                      "base": 0.0918,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0376
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0043
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0041
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0037
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": 0.0021
                        }
                      ],
                      "others": -0.0031,
                      "total": 0.0493,
                      "log_link": true,
                      "margin_base": -2.387963,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.527083
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.082436
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.078998
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.070609
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": 0.040578
                        }
                      ],
                      "others_margin": -0.061718
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.05460435524582863,
                    "model_output": 0.0546,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0923
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.067
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.041
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0334
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.0946,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.043
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0064
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0049
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": 0.0035
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0033
                        }
                      ],
                      "others": 0.0043,
                      "total": 0.0546,
                      "log_link": true,
                      "margin_base": -2.358385,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.606904
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.133091
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.102662
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "margin": 0.066768
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.063556
                        }
                      ],
                      "others_margin": 0.084865
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.20408284664154053,
                    "model_output": 0.2041,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.117
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0884
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0772
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0315
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0258
                      }
                    ],
                    "decomposition": {
                      "base": 0.3179,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1344
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": 0.0168
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.017
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0155
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": 0.0116
                        }
                      ],
                      "others": -0.0093,
                      "total": 0.2041,
                      "log_link": true,
                      "margin_base": -1.146086,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.549343
                        },
                        {
                          "name": "ballRecovery_p90",
                          "margin": 0.087595
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.081433
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.073917
                        },
                        {
                          "name": "interceptionWon",
                          "margin": 0.055653
                        }
                      ],
                      "others_margin": -0.044565
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.509556233882904,
                    "model_output": 0.5096,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1349
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1208
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0462
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.044
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0312
                      }
                    ],
                    "decomposition": {
                      "base": 0.9849,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.5069
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0984
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0545
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": 0.0287
                        },
                        {
                          "name": "goalAssist",
                          "contribution": -0.0281
                        }
                      ],
                      "others": 0.0749,
                      "total": 0.5096,
                      "log_link": false,
                      "margin_base": 0.984935,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.506936
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.098413
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.054549
                        },
                        {
                          "name": "ballRecovery",
                          "margin": 0.028704
                        },
                        {
                          "name": "goalAssist",
                          "margin": -0.028087
                        }
                      ],
                      "others_margin": 0.074804
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.680523872375488,
                    "model_output": 6.6805,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "rating",
                        "importance": 0.0864
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0749
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0486
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0482
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 6.8574,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0933
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0348
                        },
                        {
                          "name": "rating",
                          "contribution": -0.021
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0118
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.008
                        }
                      ],
                      "others": -0.0316,
                      "total": 6.6805,
                      "log_link": false,
                      "margin_base": 6.857404,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.093302
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.034794
                        },
                        {
                          "name": "rating",
                          "margin": -0.021014
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.011821
                        },
                        {
                          "name": "totalPass",
                          "margin": -0.007951
                        }
                      ],
                      "others_margin": -0.031641
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "substitute",
                  "history_matches": 22,
                  "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 1.0001, quality 0.507)",
              "stats": {
                "key_pass": 0.3363,
                "expected_assists": 0.0307,
                "assists": 0.0499,
                "assist_rate": 0.0499,
                "expected_goals": 0.0493,
                "goals": 0.0546,
                "goal_rate": 0.0546,
                "shots_on_target": 0.2041,
                "total_shots": 0.5096,
                "rating": 6.6805,
                "minutes": 13.05,
                "total_pass": 7.2671,
                "accurate_pass": 5.5356,
                "duels_won": 0.4614,
                "total_long_balls": 0.883,
                "accurate_long_balls": 0.5724,
                "total_own_half_passes": 1.9841,
                "accurate_own_half_passes": 1.7242,
                "total_opp_half_passes": 5.2829,
                "accurate_opp_half_passes": 3.8114,
                "crosses_total": 1.1561,
                "crosses_accurate": 0.0365,
                "touches": 11.2063,
                "possession_lost": 3.7168,
                "dispossessed": 0.1973,
                "duels_lost": 0.9055,
                "aerial_won": 0.0866,
                "aerial_lost": 0.3186,
                "interceptions": 0.0,
                "tackles_won": 0.0889,
                "tackles": 0.181,
                "clearances": 0.0192,
                "total_contest": 0.1786,
                "won_contest": 0.0,
                "challenges_lost": 0.0917,
                "fouls": 0.1789,
                "fouls_drawn": 0.1938,
                "blocks": 0.1347,
                "big_chances_created": 0.0138,
                "big_chances_missed": 0.1425,
                "xgot": 0.0413,
                "ball_carries": 3.0703,
                "total_progression": 7.6894,
                "progressive_carries": 0.2926,
                "shots_off_target": 0.3055
              },
              "params": {
                "market_value_eur": 8700000,
                "quality_factor": 0.5071,
                "boost_factor": 1.0001,
                "reference_quality": 0.505,
                "history_matches": 22,
                "history_shrink": 0.1852,
                "market_value_known": true
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 13.1 to 12.2 expected minutes (appearance prob 0.70)",
              "stats": {
                "key_pass": 0.3147,
                "expected_assists": 0.0287,
                "assists": 0.0467,
                "assist_rate": 0.0467,
                "expected_goals": 0.0461,
                "goals": 0.0511,
                "goal_rate": 0.0511,
                "shots_on_target": 0.191,
                "total_shots": 0.4768,
                "rating": 6.6805,
                "minutes": 12.21,
                "total_pass": 6.7993,
                "accurate_pass": 5.1793,
                "duels_won": 0.4317,
                "total_long_balls": 0.8262,
                "accurate_long_balls": 0.5356,
                "total_own_half_passes": 1.8564,
                "accurate_own_half_passes": 1.6132,
                "total_opp_half_passes": 4.9429,
                "accurate_opp_half_passes": 3.5661,
                "crosses_total": 1.0817,
                "crosses_accurate": 0.0342,
                "touches": 10.485,
                "possession_lost": 3.4776,
                "dispossessed": 0.1973,
                "duels_lost": 0.8472,
                "aerial_won": 0.081,
                "aerial_lost": 0.3186,
                "interceptions": 0.0,
                "tackles_won": 0.0832,
                "tackles": 0.1693,
                "clearances": 0.018,
                "total_contest": 0.1671,
                "won_contest": 0.0,
                "challenges_lost": 0.0917,
                "fouls": 0.1674,
                "fouls_drawn": 0.1813,
                "blocks": 0.126,
                "big_chances_created": 0.0129,
                "big_chances_missed": 0.1333,
                "xgot": 0.0386,
                "ball_carries": 2.8727,
                "total_progression": 7.1945,
                "progressive_carries": 0.2738,
                "shots_off_target": 0.2858,
                "bench_appearance_probability": 0.698,
                "bench_expected_minutes": 12.21
              },
              "params": {
                "expected_minutes": 12.21,
                "projection_minutes": 13.05,
                "minutes_scale": 0.9356,
                "appearance_probability": 0.698
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0.3147,
                "expected_assists": 0.0287,
                "assists": 0.0467,
                "assist_rate": 0.0467,
                "expected_goals": 0.0461,
                "goals": 0.0511,
                "goal_rate": 0.0511,
                "shots_on_target": 0.191,
                "total_shots": 0.4768,
                "rating": 6.6805,
                "minutes": 12.21,
                "total_pass": 6.7993,
                "accurate_pass": 5.1793,
                "duels_won": 0.4317,
                "total_long_balls": 0.8262,
                "accurate_long_balls": 0.5356,
                "total_own_half_passes": 1.8564,
                "accurate_own_half_passes": 1.6132,
                "total_opp_half_passes": 4.9429,
                "accurate_opp_half_passes": 3.5661,
                "crosses_total": 1.0817,
                "crosses_accurate": 0.0342,
                "touches": 10.485,
                "possession_lost": 3.4776,
                "dispossessed": 0.1973,
                "duels_lost": 0.8472,
                "aerial_won": 0.081,
                "aerial_lost": 0.3186,
                "interceptions": 0.0,
                "tackles_won": 0.0832,
                "tackles": 0.1693,
                "clearances": 0.018,
                "total_contest": 0.1671,
                "won_contest": 0.0,
                "challenges_lost": 0.0917,
                "fouls": 0.1674,
                "fouls_drawn": 0.1813,
                "blocks": 0.126,
                "big_chances_created": 0.0129,
                "big_chances_missed": 0.1333,
                "xgot": 0.0386,
                "ball_carries": 2.8727,
                "total_progression": 7.1945,
                "progressive_carries": 0.2738,
                "shots_off_target": 0.2858,
                "bench_appearance_probability": 0.698,
                "bench_expected_minutes": 12.21
              },
              "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.3147,
                "expected_assists": 0.0287,
                "assist_rate": 0.0467,
                "assists": 0,
                "expected_goals": 0.0461,
                "goal_rate": 0.0511,
                "goals": 0,
                "shots_on_target": 0.191,
                "total_shots": 0.4768,
                "rating": 6.6805,
                "minutes": 12.21,
                "total_pass": 6.7993,
                "accurate_pass": 5.1793,
                "duels_won": 0.4317,
                "total_long_balls": 0.8262,
                "accurate_long_balls": 0.5356,
                "total_own_half_passes": 1.8564,
                "accurate_own_half_passes": 1.6132,
                "total_opp_half_passes": 4.9429,
                "accurate_opp_half_passes": 3.5661,
                "crosses_total": 1.0817,
                "crosses_accurate": 0.0342,
                "touches": 10.485,
                "possession_lost": 3.4776,
                "dispossessed": 0.1973,
                "duels_lost": 0.8472,
                "aerial_won": 0.081,
                "aerial_lost": 0.3186,
                "interceptions": 0.0,
                "tackles_won": 0.0832,
                "tackles": 0.1693,
                "clearances": 0.018,
                "total_contest": 0.1671,
                "won_contest": 0.0,
                "challenges_lost": 0.0917,
                "fouls": 0.1674,
                "fouls_drawn": 0.1813,
                "blocks": 0.126,
                "big_chances_created": 0.0129,
                "big_chances_missed": 0.1333,
                "xgot": 0.0386,
                "ball_carries": 2.8727,
                "total_progression": 7.1945,
                "progressive_carries": 0.2738,
                "shots_off_target": 0.2858,
                "bench_appearance_probability": 0.698,
                "bench_expected_minutes": 12.21,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "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": 1
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.25 (squad xG sum 1.3010, xG scale 0.9646, xA scale 0.9646, team xA 0.85 = 0.67 x lambda)",
              "stats": {
                "key_pass": 0.3147,
                "expected_assists": 0.0193,
                "assist_rate": 0.0467,
                "assists": 0,
                "expected_goals": 0.031,
                "goal_rate": 0.0511,
                "goals": 0,
                "shots_on_target": 0.191,
                "total_shots": 0.4768,
                "rating": 6.6805,
                "minutes": 12.21,
                "total_pass": 6.7993,
                "accurate_pass": 5.1793,
                "duels_won": 0.4317,
                "total_long_balls": 0.8262,
                "accurate_long_balls": 0.5356,
                "total_own_half_passes": 1.8564,
                "accurate_own_half_passes": 1.6132,
                "total_opp_half_passes": 4.9429,
                "accurate_opp_half_passes": 3.5661,
                "crosses_total": 1.0817,
                "crosses_accurate": 0.0342,
                "touches": 10.485,
                "possession_lost": 3.4776,
                "dispossessed": 0.1973,
                "duels_lost": 0.8472,
                "aerial_won": 0.081,
                "aerial_lost": 0.3186,
                "interceptions": 0.0,
                "tackles_won": 0.0832,
                "tackles": 0.1693,
                "clearances": 0.018,
                "total_contest": 0.1671,
                "won_contest": 0.0,
                "challenges_lost": 0.0917,
                "fouls": 0.1674,
                "fouls_drawn": 0.1813,
                "blocks": 0.126,
                "big_chances_created": 0.0129,
                "big_chances_missed": 0.1333,
                "xgot": 0.026,
                "ball_carries": 2.8727,
                "total_progression": 7.1945,
                "progressive_carries": 0.2738,
                "shots_off_target": 0.2858,
                "bench_appearance_probability": 0.698,
                "bench_expected_minutes": 12.21,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "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.052,
                "creation_factor": 1.2287
              },
              "params": {
                "team_lambda": 1.255,
                "squad_xg_sum": 1.301,
                "squad_xa_sum": 0.8767,
                "team_expected_assists": 0.8457,
                "team_xa_to_xg_ratio": 0.6739,
                "bench_appearance_weighted": true,
                "xg_scale": 0.9646,
                "xa_scale": 0.9646,
                "opponent_lambda": 1.729,
                "scoreline_reset": true,
                "appearance_weight": 0.698
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0461,
                  "after": 0.031
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0287,
                  "after": 0.0193
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 73.0)",
              "stats": {
                "key_pass": 0.3147,
                "expected_assists": 0.0193,
                "assist_rate": 0.0467,
                "assists": 0,
                "expected_goals": 0.031,
                "goal_rate": 0.0511,
                "goals": 0,
                "shots_on_target": 0.191,
                "total_shots": 0.4768,
                "rating": 6.6805,
                "minutes": 12.21,
                "total_pass": 6.7993,
                "accurate_pass": 5.1793,
                "duels_won": 0.4317,
                "total_long_balls": 0.8262,
                "accurate_long_balls": 0.5356,
                "total_own_half_passes": 1.8564,
                "accurate_own_half_passes": 1.6132,
                "total_opp_half_passes": 4.9429,
                "accurate_opp_half_passes": 3.5661,
                "crosses_total": 1.0817,
                "crosses_accurate": 0.0342,
                "touches": 10.485,
                "possession_lost": 3.4776,
                "dispossessed": 0.1973,
                "duels_lost": 0.8472,
                "aerial_won": 0.081,
                "aerial_lost": 0.3186,
                "interceptions": 0.0,
                "tackles_won": 0.0832,
                "tackles": 0.1693,
                "clearances": 0.018,
                "total_contest": 0.1671,
                "won_contest": 0.0,
                "challenges_lost": 0.0917,
                "fouls": 0.1674,
                "fouls_drawn": 0.1813,
                "blocks": 0.126,
                "big_chances_created": 0.0129,
                "big_chances_missed": 0.1333,
                "xgot": 0.026,
                "ball_carries": 2.8727,
                "total_progression": 7.1945,
                "progressive_carries": 0.2738,
                "shots_off_target": 0.2858,
                "bench_appearance_probability": 0.698,
                "bench_expected_minutes": 12.21,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "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.052,
                "creation_factor": 1.2287,
                "fifa_overall": 73.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": 4159,
                "fifa_rank": 3517.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.3147,
                "expected_assists": 0.0193,
                "assist_rate": 0.0467,
                "assists": 0,
                "expected_goals": 0.031,
                "goal_rate": 0.0511,
                "goals": 0,
                "shots_on_target": 0.191,
                "total_shots": 0.4768,
                "rating": 6.6805,
                "minutes": 12.21,
                "total_pass": 6.7993,
                "accurate_pass": 5.1793,
                "duels_won": 0.4317,
                "total_long_balls": 0.8262,
                "accurate_long_balls": 0.5356,
                "total_own_half_passes": 1.8564,
                "accurate_own_half_passes": 1.6132,
                "total_opp_half_passes": 4.9429,
                "accurate_opp_half_passes": 3.5661,
                "crosses_total": 1.0817,
                "crosses_accurate": 0.0342,
                "touches": 10.485,
                "possession_lost": 3.4776,
                "dispossessed": 0.1973,
                "duels_lost": 0.8472,
                "aerial_won": 0.081,
                "aerial_lost": 0.3186,
                "interceptions": 0.0,
                "tackles_won": 0.0832,
                "tackles": 0.1693,
                "clearances": 0.018,
                "total_contest": 0.1671,
                "won_contest": 0.0,
                "challenges_lost": 0.0917,
                "fouls": 0.1674,
                "fouls_drawn": 0.1813,
                "blocks": 0.126,
                "big_chances_created": 0.0129,
                "big_chances_missed": 0.1333,
                "xgot": 0.026,
                "ball_carries": 2.8727,
                "total_progression": 7.1945,
                "progressive_carries": 0.2738,
                "shots_off_target": 0.2858,
                "bench_appearance_probability": 0.698,
                "bench_expected_minutes": 12.21,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0303,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.052,
                "creation_factor": 1.2287,
                "fifa_overall": 73.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0303,
                "goal_rate": 0.0511,
                "scorer_weight": 0.0326,
                "squad_weight_total": 1.3959,
                "weight_share": 0.0234,
                "finishing_factor": 1.052,
                "appearance_weight": 0.698,
                "weight_rank": 11,
                "eligible_players": 14,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Mikel Oyarzabal",
                    "weight": 0.3544,
                    "already": 0,
                    "effective_weight": 0.3544,
                    "runner_up": "Gonçalo Guedes",
                    "runner_up_effective_weight": 0.2684
                  }
                ]
              }
            },
            {
              "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.3147,
                "expected_assists": 0.0193,
                "assist_rate": 0.0467,
                "assists": 0,
                "expected_goals": 0.031,
                "goal_rate": 0.0511,
                "goals": 0,
                "shots_on_target": 0.191,
                "total_shots": 0.4768,
                "rating": 6.6805,
                "minutes": 12.21,
                "total_pass": 6.7993,
                "accurate_pass": 5.1793,
                "duels_won": 0.4317,
                "total_long_balls": 0.8262,
                "accurate_long_balls": 0.5356,
                "total_own_half_passes": 1.8564,
                "accurate_own_half_passes": 1.6132,
                "total_opp_half_passes": 4.9429,
                "accurate_opp_half_passes": 3.5661,
                "crosses_total": 1.0817,
                "crosses_accurate": 0.0342,
                "touches": 10.485,
                "possession_lost": 3.4776,
                "dispossessed": 0.1973,
                "duels_lost": 0.8472,
                "aerial_won": 0.081,
                "aerial_lost": 0.3186,
                "interceptions": 0.0,
                "tackles_won": 0.0832,
                "tackles": 0.1693,
                "clearances": 0.018,
                "total_contest": 0.1671,
                "won_contest": 0.0,
                "challenges_lost": 0.0917,
                "fouls": 0.1674,
                "fouls_drawn": 0.1813,
                "blocks": 0.126,
                "big_chances_created": 0.0129,
                "big_chances_missed": 0.1333,
                "xgot": 0.026,
                "ball_carries": 2.8727,
                "total_progression": 7.1945,
                "progressive_carries": 0.2738,
                "shots_off_target": 0.2858,
                "bench_appearance_probability": 0.698,
                "bench_expected_minutes": 12.21,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0303,
                "projected_assists": 0,
                "assist_probability": 0.019,
                "finishing_factor": 1.052,
                "creation_factor": 1.2287,
                "fifa_overall": 73.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.019,
                "assist_rate": 0.0467,
                "provider_weight": 0.0237,
                "squad_weight_total": 0.8785,
                "weight_share": 0.027,
                "creation_factor": 1.2287,
                "appearance_weight": 0.698,
                "weight_rank": 9,
                "eligible_players": 14,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Gonçalo Guedes",
                    "weight": 0.1642,
                    "already": 0,
                    "effective_weight": 0.1642,
                    "runner_up": "Carlos Soler",
                    "runner_up_effective_weight": 0.1308,
                    "blocked_own_goal": [
                      "Mikel Oyarzabal"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Orri Óskarsson": {
          "player_id": 1026015,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 9,
          "height": 186,
          "market_value": 21000000,
          "stats": {
            "expected_goals": 0.1013,
            "goal_rate": 0.1825,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "expected_assists": 0.0079,
            "key_pass": 0,
            "rating": 6.6548,
            "minutes": 26,
            "total_pass": 6,
            "accurate_pass": 3,
            "duels_won": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 4,
            "accurate_opp_half_passes": 2,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 9,
            "possession_lost": 3.8858,
            "dispossessed": 0.6132,
            "duels_lost": 3,
            "aerial_lost": 1,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 1,
            "challenges_lost": 0,
            "fouls": 1,
            "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.051,
            "offsides": 0,
            "ball_carries": 2,
            "total_progression": 11,
            "progressive_carries": 0,
            "shots_off_target": 1,
            "bench_appearance_probability": 0.595,
            "bench_expected_minutes": 26.1,
            "projected_substitution_order": 2,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 4,
            "projected_substitution_expected_count": 2.572,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0931,
            "projected_assists": 0,
            "assist_probability": 0.0078,
            "finishing_factor": 1.0265,
            "creation_factor": 0.8,
            "fifa_overall": 74.0
          },
          "latest_10_games": [
            {
              "match_id": 16421086.0,
              "match_date": "2026-10-25",
              "home_team": "Real Sociedad",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 85,
                "rating": 7.2,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 1.0443,
                "expected_assists": 0.002,
                "total_shots": 7,
                "shots_on_target": 1,
                "shots_off_target": 5,
                "total_pass": 11,
                "accurate_pass": 8,
                "tackles": 0,
                "tackles_won": 0,
                "interceptions": 0,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 0,
                "saves": 0
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421073.0,
              "match_date": "2026-10-18",
              "home_team": "Málaga CF",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 79,
                "rating": 6.7,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 1.1181,
                "expected_assists": 0.0107,
                "total_shots": 4,
                "shots_on_target": 1,
                "shots_off_target": 3,
                "total_pass": 13,
                "accurate_pass": 9,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416297.0,
              "match_date": "2026-09-20",
              "home_team": "Valencia",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Valencia",
              "stats": {
                "minutes": 35,
                "rating": 6.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0012,
                "total_shots": 0,
                "total_pass": 7,
                "accurate_pass": 3,
                "aerial_won": 2,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416332.0,
              "match_date": "2026-09-13",
              "home_team": "Real Sociedad",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 11,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0003,
                "total_shots": 0,
                "total_pass": 4,
                "accurate_pass": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416340.0,
              "match_date": "2026-09-03",
              "home_team": "Real Sociedad",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 71,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0249,
                "expected_assists": 0.0287,
                "total_shots": 1,
                "total_pass": 10,
                "accurate_pass": 6,
                "key_pass": 1,
                "aerial_won": 2,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416310.0,
              "match_date": "2026-08-29",
              "home_team": "Real Sociedad",
              "away_team": "Espanyol",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 78,
                "rating": 7.6,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 1.0278,
                "expected_assists": 0.0284,
                "total_shots": 4,
                "shots_on_target": 3,
                "shots_off_target": 1,
                "total_pass": 16,
                "accurate_pass": 12,
                "clearances": 1,
                "aerial_won": 3,
                "duels_won": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421051.0,
              "match_date": "2026-08-26",
              "home_team": "Real Madrid",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 33,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1318,
                "expected_assists": 0.002,
                "total_shots": 1,
                "total_pass": 10,
                "accurate_pass": 7,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416293.0,
              "match_date": "2026-08-21",
              "home_team": "Real Betis",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 90,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.9801,
                "expected_assists": 0.0082,
                "total_shots": 3,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 14,
                "accurate_pass": 6,
                "key_pass": 1,
                "aerial_won": 2,
                "duels_won": 4,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083719.0,
              "match_date": "2026-05-23",
              "home_team": "Espanyol",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 77,
                "rating": 7.9,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.7635,
                "expected_assists": 0.0024,
                "total_shots": 4,
                "shots_on_target": 3,
                "shots_off_target": 1,
                "total_pass": 9,
                "accurate_pass": 7,
                "tackles": 1,
                "tackles_won": 1,
                "aerial_won": 2,
                "duels_won": 4,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083687.0,
              "match_date": "2026-05-17",
              "home_team": "Real Sociedad",
              "away_team": "Valencia",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Valencia",
              "stats": {
                "minutes": 79,
                "rating": 8.0,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.708,
                "expected_assists": 0.0109,
                "total_shots": 3,
                "shots_on_target": 2,
                "shots_off_target": 1,
                "total_pass": 12,
                "accurate_pass": 4,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 3712,
            "combined_rank_score": 1678.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 447.0,
            "sofascore_rating": 6.8947,
            "sofascore_appearances": 20.0,
            "fifa_rank": 2909.0,
            "fifa_overall": 74.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 18,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.6548,
            "source_file": "data/player_rankings.csv",
            "player_name": "Orri Óskarsson",
            "ranking_neighbors": {
              "upper": [
                {
                  "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
                }
              ],
              "lower": [
                {
                  "player_name": "Santiago Núñez",
                  "ranking": 3713
                },
                {
                  "player_name": "Viktor Johansson",
                  "ranking": 3714
                },
                {
                  "player_name": "Isaac Romero",
                  "ranking": 3715
                },
                {
                  "player_name": "Roman Yaremchuk",
                  "ranking": 3716
                },
                {
                  "player_name": "Joe Gelhardt",
                  "ranking": 3717
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.75,
          "history_matches": 28,
          "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": 28,
            "data_confidence": 0.75,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 26.09746860076133,
            "bench_appearance_prob": 0.5953394818527877,
            "market_value_adjustment": 1.0062,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost F_service (28 historical appearances) to 26.1 expected mins (appearance prob 0.60)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.1637,
                "goals": 0.1693,
                "goal_rate": 0.1693,
                "shots_on_target": 0.443,
                "total_shots": 1.1298,
                "expected_assists": 0.0128,
                "key_pass": 0.2583,
                "rating": 6.6548,
                "minutes": 24.35,
                "total_pass": 5.1806,
                "accurate_pass": 3.1463,
                "duels_won": 0.8815,
                "total_long_balls": 0.2263,
                "accurate_long_balls": 0.062,
                "total_opp_half_passes": 3.3821,
                "accurate_opp_half_passes": 1.6973,
                "crosses_total": 0.1208,
                "crosses_accurate": 0.1009,
                "touches": 8.7353,
                "possession_lost": 3.6033,
                "dispossessed": 0.6094,
                "duels_lost": 2.6828,
                "aerial_lost": 0.8484,
                "total_contest": 0.3907,
                "won_contest": 0.062,
                "ball_recovery": 0.6152,
                "challenges_lost": 0.217,
                "fouls": 0.7413,
                "fouls_drawn": 0.062,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0324,
                "tackles_won": 0.1001,
                "tackles": 0.1001,
                "clearances": 0.1211,
                "blocks": 0.1187,
                "big_chances_created": 0.1208,
                "big_chances_missed": 0.0825,
                "xgot": 0.0824,
                "offsides": 0.3396,
                "ball_carries": 1.4191,
                "total_progression": 9.8772,
                "progressive_carries": 0.3978,
                "shots_off_target": 0.6868
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 6,
                  "trained_at": "2026-11-01T11:27:41.685145+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 612,
                    "rows": 17180
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-25",
                    "opponent": "Levante UD",
                    "minutes": 85.0,
                    "is_starting": true,
                    "weight": 0.1516,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Málaga CF",
                    "minutes": 79.0,
                    "is_starting": true,
                    "weight": 0.1289,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Valencia",
                    "minutes": 35.0,
                    "is_starting": false,
                    "weight": 0.1095,
                    "rating": 6.0
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Atlético Madrid",
                    "minutes": 11.0,
                    "is_starting": false,
                    "weight": 0.0931,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-09-03",
                    "opponent": "Celta Vigo",
                    "minutes": 71.0,
                    "is_starting": true,
                    "weight": 0.0791,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-29",
                    "opponent": "Espanyol",
                    "minutes": 78.0,
                    "is_starting": true,
                    "weight": 0.0673,
                    "rating": 7.6
                  },
                  {
                    "match_date": "2026-08-26",
                    "opponent": "Real Madrid",
                    "minutes": 33.0,
                    "is_starting": false,
                    "weight": 0.0572,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-21",
                    "opponent": "Real Betis",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0486,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-05-23",
                    "opponent": "Espanyol",
                    "minutes": 77.0,
                    "is_starting": true,
                    "weight": 0.0413,
                    "rating": 7.9
                  },
                  {
                    "match_date": "2026-05-17",
                    "opponent": "Valencia",
                    "minutes": 79.0,
                    "is_starting": true,
                    "weight": 0.0351,
                    "rating": 8.0
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 0.0,
                  "accuratePass": 6.2587,
                  "expectedGoals": 0.5513,
                  "accurateOppositionHalfPasses": 3.5631,
                  "totalShots": 2.7121,
                  "totalOppositionHalfPasses": 6.3183
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.16372640430927277,
                    "model_output": 0.1637,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2767
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0987
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.036
                      },
                      {
                        "name": "goals",
                        "importance": 0.0336
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0236
                      }
                    ],
                    "decomposition": {
                      "base": 0.1929,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0914
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0198
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0082
                        },
                        {
                          "name": "goals",
                          "contribution": 0.0077
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0054
                        }
                      ],
                      "others": 0.0211,
                      "total": 0.1637,
                      "log_link": true,
                      "margin_base": -1.645586,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.641625
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.177938
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.065361
                        },
                        {
                          "name": "goals",
                          "margin": 0.057734
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.038667
                        }
                      ],
                      "others_margin": 0.137951
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.16928839683532715,
                    "model_output": 0.1693,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1491
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0805
                      },
                      {
                        "name": "goals",
                        "importance": 0.056
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0343
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 0.1972,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.091
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.016
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0072
                        },
                        {
                          "name": "goals",
                          "contribution": 0.0068
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0064
                        }
                      ],
                      "others": 0.0267,
                      "total": 0.1693,
                      "log_link": true,
                      "margin_base": -1.623746,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.618761
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.140123
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.057415
                        },
                        {
                          "name": "goals",
                          "margin": 0.051131
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.045957
                        }
                      ],
                      "others_margin": 0.171731
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.4429742097854614,
                    "model_output": 0.443,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2173
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0637
                      },
                      {
                        "name": "goals",
                        "importance": 0.0596
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0393
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 0.5269,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2305
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0348
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.0243
                        },
                        {
                          "name": "goals",
                          "contribution": 0.0176
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0177
                        }
                      ],
                      "others": 0.0522,
                      "total": 0.443,
                      "log_link": true,
                      "margin_base": -0.640773,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.575471
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.110922
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": 0.070928
                        },
                        {
                          "name": "goals",
                          "margin": 0.048226
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.046287
                        }
                      ],
                      "others_margin": 0.125638
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.1297285556793213,
                    "model_output": 1.1297,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.3005
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0627
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0526
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0309
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0307
                      }
                    ],
                    "decomposition": {
                      "base": 1.3756,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.6321
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.2271
                        },
                        {
                          "name": "goals",
                          "contribution": 0.0555
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0534
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.039
                        }
                      ],
                      "others": 0.0892,
                      "total": 1.1297,
                      "log_link": false,
                      "margin_base": 1.375643,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.632125
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.227145
                        },
                        {
                          "name": "goals",
                          "margin": 0.055474
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.053354
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.038964
                        }
                      ],
                      "others_margin": 0.089203
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.012825071811676025,
                    "model_output": 0.0128,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.1287
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1119
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0634
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0522
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.051
                      }
                    ],
                    "decomposition": {
                      "base": 0.065,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0231
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0119
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.0046
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.0022
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.002
                        }
                      ],
                      "others": -0.0084,
                      "total": 0.0128,
                      "log_link": true,
                      "margin_base": -2.733324,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.439267
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.334546
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.167262
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.090163
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.090155
                        }
                      ],
                      "others_margin": -0.501636
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.2582930326461792,
                    "model_output": 0.2583,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1579
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1341
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0953
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.069
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0295
                      }
                    ],
                    "decomposition": {
                      "base": 0.6917,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2624
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.037
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.0277
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0214
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0169
                        }
                      ],
                      "others": -0.068,
                      "total": 0.2583,
                      "log_link": true,
                      "margin_base": -0.368585,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.477085
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.090206
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.073277
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.060463
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.050564
                        }
                      ],
                      "others_margin": -0.233481
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.654808044433594,
                    "model_output": 6.6548,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0495
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.048
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0462
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0455
                      },
                      {
                        "name": "rating",
                        "importance": 0.0455
                      }
                    ],
                    "decomposition": {
                      "base": 6.7733,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.069
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0139
                        },
                        {
                          "name": "goals",
                          "contribution": 0.0131
                        },
                        {
                          "name": "touches",
                          "contribution": -0.0102
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0097
                        }
                      ],
                      "others": -0.0288,
                      "total": 6.6548,
                      "log_link": false,
                      "margin_base": 6.773334,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.068955
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.013904
                        },
                        {
                          "name": "goals",
                          "margin": 0.013122
                        },
                        {
                          "name": "touches",
                          "margin": -0.010151
                        },
                        {
                          "name": "rating",
                          "margin": -0.009706
                        }
                      ],
                      "others_margin": -0.028931
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "substitute",
                  "history_matches": 28,
                  "role_matches": 15,
                  "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.0062, quality 0.641)",
              "stats": {
                "expected_goals": 0.1647,
                "goals": 0.1703,
                "goal_rate": 0.1703,
                "shots_on_target": 0.4457,
                "total_shots": 1.1368,
                "expected_assists": 0.0129,
                "key_pass": 0.2599,
                "rating": 6.6548,
                "minutes": 24.35,
                "total_pass": 5.2127,
                "accurate_pass": 3.1658,
                "duels_won": 0.887,
                "total_long_balls": 0.2277,
                "accurate_long_balls": 0.0624,
                "total_opp_half_passes": 3.4031,
                "accurate_opp_half_passes": 1.7078,
                "crosses_total": 0.1215,
                "crosses_accurate": 0.1015,
                "touches": 8.7895,
                "possession_lost": 3.6256,
                "dispossessed": 0.6132,
                "duels_lost": 2.6994,
                "aerial_lost": 0.8537,
                "total_contest": 0.3931,
                "won_contest": 0.0624,
                "ball_recovery": 0.619,
                "challenges_lost": 0.2183,
                "fouls": 0.7459,
                "fouls_drawn": 0.0624,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0326,
                "tackles_won": 0.1007,
                "tackles": 0.1007,
                "clearances": 0.1219,
                "blocks": 0.1194,
                "big_chances_created": 0.1215,
                "big_chances_missed": 0.083,
                "xgot": 0.0829,
                "offsides": 0.3417,
                "ball_carries": 1.4279,
                "total_progression": 9.9384,
                "progressive_carries": 0.4003,
                "shots_off_target": 0.6911
              },
              "params": {
                "market_value_eur": 21000000,
                "quality_factor": 0.6408,
                "boost_factor": 1.0062,
                "reference_quality": 0.505,
                "history_matches": 28,
                "history_shrink": 0.1515,
                "market_value_known": true
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 24.4 to 26.1 expected minutes (appearance prob 0.60)",
              "stats": {
                "expected_goals": 0.1765,
                "goals": 0.1825,
                "goal_rate": 0.1825,
                "shots_on_target": 0.4777,
                "total_shots": 1.2184,
                "expected_assists": 0.0138,
                "key_pass": 0.2786,
                "rating": 6.6548,
                "minutes": 26.1,
                "total_pass": 5.5868,
                "accurate_pass": 3.393,
                "duels_won": 0.9507,
                "total_long_balls": 0.244,
                "accurate_long_balls": 0.0669,
                "total_opp_half_passes": 3.6473,
                "accurate_opp_half_passes": 1.8304,
                "crosses_total": 0.1302,
                "crosses_accurate": 0.1088,
                "touches": 9.4203,
                "possession_lost": 3.8858,
                "dispossessed": 0.6132,
                "duels_lost": 2.8931,
                "aerial_lost": 0.8537,
                "total_contest": 0.4213,
                "won_contest": 0.0669,
                "ball_recovery": 0.6634,
                "challenges_lost": 0.2183,
                "fouls": 0.7994,
                "fouls_drawn": 0.0669,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0349,
                "tackles_won": 0.1079,
                "tackles": 0.1079,
                "clearances": 0.1306,
                "blocks": 0.128,
                "big_chances_created": 0.1302,
                "big_chances_missed": 0.089,
                "xgot": 0.0888,
                "offsides": 0.3417,
                "ball_carries": 1.5304,
                "total_progression": 10.6516,
                "progressive_carries": 0.429,
                "shots_off_target": 0.7407,
                "bench_appearance_probability": 0.595,
                "bench_expected_minutes": 26.1
              },
              "params": {
                "expected_minutes": 26.1,
                "projection_minutes": 24.35,
                "minutes_scale": 1.0718,
                "appearance_probability": 0.595
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.1765,
                "goals": 0.1825,
                "goal_rate": 0.1825,
                "shots_on_target": 0.4777,
                "total_shots": 1.2184,
                "expected_assists": 0.0138,
                "key_pass": 0.2786,
                "rating": 6.6548,
                "minutes": 26.1,
                "total_pass": 5.5868,
                "accurate_pass": 3.393,
                "duels_won": 0.9507,
                "total_long_balls": 0.244,
                "accurate_long_balls": 0.0669,
                "total_opp_half_passes": 3.6473,
                "accurate_opp_half_passes": 1.8304,
                "crosses_total": 0.1302,
                "crosses_accurate": 0.1088,
                "touches": 9.4203,
                "possession_lost": 3.8858,
                "dispossessed": 0.6132,
                "duels_lost": 2.8931,
                "aerial_lost": 0.8537,
                "total_contest": 0.4213,
                "won_contest": 0.0669,
                "ball_recovery": 0.6634,
                "challenges_lost": 0.2183,
                "fouls": 0.7994,
                "fouls_drawn": 0.0669,
                "assists": 0.0,
                "assist_rate": 0.0,
                "interceptions": 0.0349,
                "tackles_won": 0.1079,
                "tackles": 0.1079,
                "clearances": 0.1306,
                "blocks": 0.128,
                "big_chances_created": 0.1302,
                "big_chances_missed": 0.089,
                "xgot": 0.0888,
                "offsides": 0.3417,
                "ball_carries": 1.5304,
                "total_progression": 10.6516,
                "progressive_carries": 0.429,
                "shots_off_target": 0.7407,
                "bench_appearance_probability": 0.595,
                "bench_expected_minutes": 26.1
              },
              "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.1765,
                "goal_rate": 0.1825,
                "goals": 0,
                "shots_on_target": 0.4777,
                "total_shots": 1.2184,
                "expected_assists": 0.0138,
                "key_pass": 0.2786,
                "rating": 6.6548,
                "minutes": 26.1,
                "total_pass": 5.5868,
                "accurate_pass": 3.393,
                "duels_won": 0.9507,
                "total_long_balls": 0.244,
                "accurate_long_balls": 0.0669,
                "total_opp_half_passes": 3.6473,
                "accurate_opp_half_passes": 1.8304,
                "crosses_total": 0.1302,
                "crosses_accurate": 0.1088,
                "touches": 9.4203,
                "possession_lost": 3.8858,
                "dispossessed": 0.6132,
                "duels_lost": 2.8931,
                "aerial_lost": 0.8537,
                "total_contest": 0.4213,
                "won_contest": 0.0669,
                "ball_recovery": 0.6634,
                "challenges_lost": 0.2183,
                "fouls": 0.7994,
                "fouls_drawn": 0.0669,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0349,
                "tackles_won": 0.1079,
                "tackles": 0.1079,
                "clearances": 0.1306,
                "blocks": 0.128,
                "big_chances_created": 0.1302,
                "big_chances_missed": 0.089,
                "xgot": 0.0888,
                "offsides": 0.3417,
                "ball_carries": 1.5304,
                "total_progression": 10.6516,
                "progressive_carries": 0.429,
                "shots_off_target": 0.7407,
                "bench_appearance_probability": 0.595,
                "bench_expected_minutes": 26.1,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "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": 1
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.25 (squad xG sum 1.3010, xG scale 0.9646, xA scale 0.9646, team xA 0.85 = 0.67 x lambda)",
              "stats": {
                "expected_goals": 0.1013,
                "goal_rate": 0.1825,
                "goals": 0,
                "shots_on_target": 0.4777,
                "total_shots": 1.2184,
                "expected_assists": 0.0079,
                "key_pass": 0.2786,
                "rating": 6.6548,
                "minutes": 26.1,
                "total_pass": 5.5868,
                "accurate_pass": 3.393,
                "duels_won": 0.9507,
                "total_long_balls": 0.244,
                "accurate_long_balls": 0.0669,
                "total_opp_half_passes": 3.6473,
                "accurate_opp_half_passes": 1.8304,
                "crosses_total": 0.1302,
                "crosses_accurate": 0.1088,
                "touches": 9.4203,
                "possession_lost": 3.8858,
                "dispossessed": 0.6132,
                "duels_lost": 2.8931,
                "aerial_lost": 0.8537,
                "total_contest": 0.4213,
                "won_contest": 0.0669,
                "ball_recovery": 0.6634,
                "challenges_lost": 0.2183,
                "fouls": 0.7994,
                "fouls_drawn": 0.0669,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0349,
                "tackles_won": 0.1079,
                "tackles": 0.1079,
                "clearances": 0.1306,
                "blocks": 0.128,
                "big_chances_created": 0.1302,
                "big_chances_missed": 0.089,
                "xgot": 0.051,
                "offsides": 0.3417,
                "ball_carries": 1.5304,
                "total_progression": 10.6516,
                "progressive_carries": 0.429,
                "shots_off_target": 0.7407,
                "bench_appearance_probability": 0.595,
                "bench_expected_minutes": 26.1,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "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.0265,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 1.255,
                "squad_xg_sum": 1.301,
                "squad_xa_sum": 0.8767,
                "team_expected_assists": 0.8457,
                "team_xa_to_xg_ratio": 0.6739,
                "bench_appearance_weighted": true,
                "xg_scale": 0.9646,
                "xa_scale": 0.9646,
                "opponent_lambda": 1.729,
                "scoreline_reset": true,
                "appearance_weight": 0.595
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.1765,
                  "after": 0.1013
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0138,
                  "after": 0.0079
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 18 by projected rating, fifa_overall 74.0)",
              "stats": {
                "expected_goals": 0.1013,
                "goal_rate": 0.1825,
                "goals": 0,
                "shots_on_target": 0.4777,
                "total_shots": 1.2184,
                "expected_assists": 0.0079,
                "key_pass": 0.2786,
                "rating": 6.6548,
                "minutes": 26.1,
                "total_pass": 5.5868,
                "accurate_pass": 3.393,
                "duels_won": 0.9507,
                "total_long_balls": 0.244,
                "accurate_long_balls": 0.0669,
                "total_opp_half_passes": 3.6473,
                "accurate_opp_half_passes": 1.8304,
                "crosses_total": 0.1302,
                "crosses_accurate": 0.1088,
                "touches": 9.4203,
                "possession_lost": 3.8858,
                "dispossessed": 0.6132,
                "duels_lost": 2.8931,
                "aerial_lost": 0.8537,
                "total_contest": 0.4213,
                "won_contest": 0.0669,
                "ball_recovery": 0.6634,
                "challenges_lost": 0.2183,
                "fouls": 0.7994,
                "fouls_drawn": 0.0669,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0349,
                "tackles_won": 0.1079,
                "tackles": 0.1079,
                "clearances": 0.1306,
                "blocks": 0.128,
                "big_chances_created": 0.1302,
                "big_chances_missed": 0.089,
                "xgot": 0.051,
                "offsides": 0.3417,
                "ball_carries": 1.5304,
                "total_progression": 10.6516,
                "progressive_carries": 0.429,
                "shots_off_target": 0.7407,
                "bench_appearance_probability": 0.595,
                "bench_expected_minutes": 26.1,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "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.0265,
                "creation_factor": 0.8,
                "fifa_overall": 74.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": 3712,
                "fifa_rank": 2909.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": {
                "expected_goals": 0.1013,
                "goal_rate": 0.1825,
                "goals": 0,
                "shots_on_target": 0.4777,
                "total_shots": 1.2184,
                "expected_assists": 0.0079,
                "key_pass": 0.2786,
                "rating": 6.6548,
                "minutes": 26.1,
                "total_pass": 5.5868,
                "accurate_pass": 3.393,
                "duels_won": 0.9507,
                "total_long_balls": 0.244,
                "accurate_long_balls": 0.0669,
                "total_opp_half_passes": 3.6473,
                "accurate_opp_half_passes": 1.8304,
                "crosses_total": 0.1302,
                "crosses_accurate": 0.1088,
                "touches": 9.4203,
                "possession_lost": 3.8858,
                "dispossessed": 0.6132,
                "duels_lost": 2.8931,
                "aerial_lost": 0.8537,
                "total_contest": 0.4213,
                "won_contest": 0.0669,
                "ball_recovery": 0.6634,
                "challenges_lost": 0.2183,
                "fouls": 0.7994,
                "fouls_drawn": 0.0669,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0349,
                "tackles_won": 0.1079,
                "tackles": 0.1079,
                "clearances": 0.1306,
                "blocks": 0.128,
                "big_chances_created": 0.1302,
                "big_chances_missed": 0.089,
                "xgot": 0.051,
                "offsides": 0.3417,
                "ball_carries": 1.5304,
                "total_progression": 10.6516,
                "progressive_carries": 0.429,
                "shots_off_target": 0.7407,
                "bench_appearance_probability": 0.595,
                "bench_expected_minutes": 26.1,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0931,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0265,
                "creation_factor": 0.8,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0931,
                "goal_rate": 0.1825,
                "scorer_weight": 0.104,
                "squad_weight_total": 1.3959,
                "weight_share": 0.0745,
                "finishing_factor": 1.0265,
                "appearance_weight": 0.595,
                "weight_rank": 5,
                "eligible_players": 14,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Mikel Oyarzabal",
                    "weight": 0.3544,
                    "already": 0,
                    "effective_weight": 0.3544,
                    "runner_up": "Gonçalo Guedes",
                    "runner_up_effective_weight": 0.2684
                  }
                ]
              }
            },
            {
              "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.1013,
                "goal_rate": 0.1825,
                "goals": 0,
                "shots_on_target": 0.4777,
                "total_shots": 1.2184,
                "expected_assists": 0.0079,
                "key_pass": 0.2786,
                "rating": 6.6548,
                "minutes": 26.1,
                "total_pass": 5.5868,
                "accurate_pass": 3.393,
                "duels_won": 0.9507,
                "total_long_balls": 0.244,
                "accurate_long_balls": 0.0669,
                "total_opp_half_passes": 3.6473,
                "accurate_opp_half_passes": 1.8304,
                "crosses_total": 0.1302,
                "crosses_accurate": 0.1088,
                "touches": 9.4203,
                "possession_lost": 3.8858,
                "dispossessed": 0.6132,
                "duels_lost": 2.8931,
                "aerial_lost": 0.8537,
                "total_contest": 0.4213,
                "won_contest": 0.0669,
                "ball_recovery": 0.6634,
                "challenges_lost": 0.2183,
                "fouls": 0.7994,
                "fouls_drawn": 0.0669,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0.0349,
                "tackles_won": 0.1079,
                "tackles": 0.1079,
                "clearances": 0.1306,
                "blocks": 0.128,
                "big_chances_created": 0.1302,
                "big_chances_missed": 0.089,
                "xgot": 0.051,
                "offsides": 0.3417,
                "ball_carries": 1.5304,
                "total_progression": 10.6516,
                "progressive_carries": 0.429,
                "shots_off_target": 0.7407,
                "bench_appearance_probability": 0.595,
                "bench_expected_minutes": 26.1,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0931,
                "projected_assists": 0,
                "assist_probability": 0.0078,
                "finishing_factor": 1.0265,
                "creation_factor": 0.8,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0078,
                "assist_rate": 0.0,
                "provider_weight": 0.0063,
                "squad_weight_total": 0.8785,
                "weight_share": 0.0072,
                "creation_factor": 0.8,
                "appearance_weight": 0.595,
                "weight_rank": 14,
                "eligible_players": 14,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Gonçalo Guedes",
                    "weight": 0.1642,
                    "already": 0,
                    "effective_weight": 0.1642,
                    "runner_up": "Carlos Soler",
                    "runner_up_effective_weight": 0.1308,
                    "blocked_own_goal": [
                      "Mikel Oyarzabal"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Brais Méndez": {
          "player_id": 845385,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 23,
          "height": 184,
          "market_value": 7800000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.0321,
            "assist_rate": 0.071,
            "assists": 0,
            "expected_goals": 0.0591,
            "goal_rate": 0.1002,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "rating": 6.7945,
            "minutes": 22,
            "total_pass": 14,
            "accurate_pass": 12,
            "duels_won": 2,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "total_own_half_passes": 5,
            "accurate_own_half_passes": 4,
            "total_opp_half_passes": 10,
            "accurate_opp_half_passes": 7,
            "crosses_total": 1,
            "crosses_accurate": 1,
            "touches": 22,
            "possession_lost": 5.7368,
            "dispossessed": 0.3551,
            "duels_lost": 2,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 1,
            "tackles": 1,
            "clearances": 1,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 1,
            "fouls_drawn": 1,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.1909,
            "ball_carries": 5,
            "total_progression": 5,
            "progressive_carries": 0,
            "shots_off_target": 1,
            "bench_appearance_probability": 0.509,
            "bench_expected_minutes": 22.21,
            "projected_substitution_order": 3,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 4,
            "projected_substitution_expected_count": 2.572,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0558,
            "projected_assists": 0,
            "assist_probability": 0.0311,
            "finishing_factor": 0.8815,
            "creation_factor": 1.0494,
            "fifa_overall": 78.0
          },
          "latest_10_games": [
            {
              "match_id": 14083687.0,
              "match_date": "2026-05-17",
              "home_team": "Real Sociedad",
              "away_team": "Valencia",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Valencia",
              "stats": {
                "minutes": 57,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.1553,
                "total_shots": 0,
                "total_pass": 38,
                "accurate_pass": 37,
                "key_pass": 1,
                "tackles": 3,
                "tackles_won": 1,
                "interceptions": 1,
                "aerial_won": 2,
                "duels_won": 9,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083346.0,
              "match_date": "2026-04-22",
              "home_team": "Real Sociedad",
              "away_team": "Getafe",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Getafe",
              "stats": {
                "minutes": 56,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 1.2031,
                "expected_assists": 0.0237,
                "total_shots": 4,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 31,
                "accurate_pass": 25,
                "key_pass": 1,
                "tackles": 1,
                "interceptions": 1,
                "aerial_won": 3,
                "duels_won": 9,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083152.0,
              "match_date": "2026-04-11",
              "home_team": "Real Sociedad",
              "away_team": "Deportivo Alavés",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 54,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.02,
                "expected_assists": 0.0294,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 32,
                "accurate_pass": 28,
                "tackles": 3,
                "tackles_won": 1,
                "aerial_won": 1,
                "duels_won": 5,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083701.0,
              "match_date": "2026-04-04",
              "home_team": "Real Sociedad",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 26,
                "rating": 7.3,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.9528,
                "expected_assists": 0.009,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 11,
                "accurate_pass": 7,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14081808.0,
              "match_date": "2026-03-20",
              "home_team": "Villarreal",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Villarreal",
              "stats": {
                "minutes": 68,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1122,
                "expected_assists": 0.2037,
                "total_shots": 3,
                "shots_off_target": 1,
                "total_pass": 53,
                "accurate_pass": 43,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083652.0,
              "match_date": "2026-03-15",
              "home_team": "Real Sociedad",
              "away_team": "Osasuna",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 64,
                "rating": 8.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.6717,
                "total_shots": 0,
                "total_pass": 22,
                "accurate_pass": 18,
                "key_pass": 1,
                "tackles": 1,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083602.0,
              "match_date": "2026-03-07",
              "home_team": "Atlético Madrid",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 16,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0215,
                "total_shots": 0,
                "total_pass": 23,
                "accurate_pass": 19,
                "key_pass": 1,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14081792.0,
              "match_date": "2026-02-21",
              "home_team": "Real Sociedad",
              "away_team": "Real Oviedo",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Real Oviedo",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.3748,
                "expected_assists": 0.0344,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 47,
                "accurate_pass": 37,
                "key_pass": 2,
                "tackles": 4,
                "tackles_won": 1,
                "clearances": 1,
                "duels_won": 10,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083195.0,
              "match_date": "2026-02-01",
              "home_team": "Athletic Club",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 20,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.019,
                "total_shots": 0,
                "total_pass": 7,
                "accurate_pass": 6,
                "tackles": 2,
                "tackles_won": 2,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083136.0,
              "match_date": "2026-01-25",
              "home_team": "Real Sociedad",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 9,
                "rating": 7.2,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.8371,
                "expected_assists": 0.0141,
                "total_shots": 2,
                "shots_on_target": 1,
                "total_pass": 7,
                "accurate_pass": 5,
                "tackles": 1,
                "duels_won": 1,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 2265,
            "combined_rank_score": 828.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 435.0,
            "sofascore_rating": 6.9103,
            "sofascore_appearances": 29.0,
            "fifa_rank": 1221.0,
            "fifa_overall": 78.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 11,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.7945,
            "source_file": "data/player_rankings.csv",
            "player_name": "Brais Méndez",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Malo Gusto",
                  "ranking": 2260
                },
                {
                  "player_name": "Aldrix Jara",
                  "ranking": 2261
                },
                {
                  "player_name": "Yehor Yarmoliuk",
                  "ranking": 2262
                },
                {
                  "player_name": "Chimy Ávila",
                  "ranking": 2263
                },
                {
                  "player_name": "Andrés Martín",
                  "ranking": 2264
                }
              ],
              "lower": [
                {
                  "player_name": "Bafodé Diakité",
                  "ranking": 2266
                },
                {
                  "player_name": "Kwasi Sibo",
                  "ranking": 2267
                },
                {
                  "player_name": "Jordan Henderson",
                  "ranking": 2268
                },
                {
                  "player_name": "Andoni Gorosabel",
                  "ranking": 2269
                },
                {
                  "player_name": "Jeong-Yeon Wu",
                  "ranking": 2270
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.75,
          "history_matches": 29,
          "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": 29,
            "data_confidence": 0.75,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 22.20527948921528,
            "bench_appearance_prob": 0.5093308858734218,
            "market_value_adjustment": 0.9996,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost M_service (29 historical appearances) to 22.2 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.4792,
                "expected_assists": 0.0591,
                "assists": 0.0643,
                "assist_rate": 0.0643,
                "expected_goals": 0.109,
                "goals": 0.0907,
                "goal_rate": 0.0907,
                "shots_on_target": 0.3107,
                "total_shots": 0.802,
                "rating": 6.7945,
                "minutes": 20.1,
                "total_pass": 13.0859,
                "accurate_pass": 10.5518,
                "duels_won": 2.0064,
                "total_long_balls": 0.5072,
                "accurate_long_balls": 0.3319,
                "total_own_half_passes": 4.3682,
                "accurate_own_half_passes": 4.0544,
                "total_opp_half_passes": 8.7177,
                "accurate_opp_half_passes": 6.4974,
                "crosses_total": 1.1806,
                "crosses_accurate": 0.4876,
                "touches": 19.9836,
                "possession_lost": 5.195,
                "dispossessed": 0.3552,
                "duels_lost": 1.528,
                "aerial_won": 0.499,
                "aerial_lost": 0.2405,
                "interceptions": 0.0,
                "tackles_won": 0.8018,
                "tackles": 0.9284,
                "clearances": 0.5039,
                "total_contest": 0.312,
                "won_contest": 0.0,
                "challenges_lost": 0.0,
                "fouls": 0.6204,
                "fouls_drawn": 0.579,
                "blocks": 0.1076,
                "big_chances_created": 0.1167,
                "big_chances_missed": 0.0717,
                "xgot": 0.3521,
                "ball_carries": 4.7872,
                "total_progression": 4.097,
                "progressive_carries": 0.3604,
                "shots_off_target": 0.4913
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 7,
                  "trained_at": "2026-11-01T11:27:07.750726+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 905,
                    "rows": 25067
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-05-17",
                    "opponent": "Valencia",
                    "minutes": 57.0,
                    "is_starting": true,
                    "weight": 0.1514,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-04-22",
                    "opponent": "Getafe",
                    "minutes": 56.0,
                    "is_starting": true,
                    "weight": 0.1287,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-04-11",
                    "opponent": "Deportivo Alavés",
                    "minutes": 54.0,
                    "is_starting": true,
                    "weight": 0.1094,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-04-04",
                    "opponent": "Levante UD",
                    "minutes": 26.0,
                    "is_starting": false,
                    "weight": 0.093,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-03-20",
                    "opponent": "Villarreal",
                    "minutes": 68.0,
                    "is_starting": true,
                    "weight": 0.079,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-03-15",
                    "opponent": "Osasuna",
                    "minutes": 64.0,
                    "is_starting": true,
                    "weight": 0.0672,
                    "rating": 8.0
                  },
                  {
                    "match_date": "2026-03-07",
                    "opponent": "Atlético Madrid",
                    "minutes": 16.0,
                    "is_starting": false,
                    "weight": 0.0571,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-02-21",
                    "opponent": "Real Oviedo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0485,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-02-01",
                    "opponent": "Athletic Club",
                    "minutes": 20.0,
                    "is_starting": false,
                    "weight": 0.0412,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-01-25",
                    "opponent": "Celta Vigo",
                    "minutes": 9.0,
                    "is_starting": false,
                    "weight": 0.0351,
                    "rating": 7.2
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 0.0,
                  "totalShots": 1.3088,
                  "creative_index": 0.3543,
                  "expectedGoals": 0.3215,
                  "expectedAssists": 0.1083,
                  "keyPass": 0.7232
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.47920358180999756,
                    "model_output": 0.4792,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.1578
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1373
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0712
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0516
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0289
                      }
                    ],
                    "decomposition": {
                      "base": 0.8902,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.4275
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0418
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0349
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0293
                        },
                        {
                          "name": "totalCross",
                          "contribution": 0.0169
                        }
                      ],
                      "others": 0.022,
                      "total": 0.4792,
                      "log_link": true,
                      "margin_base": -0.116298,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.654348
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.086582
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.071721
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.064389
                        },
                        {
                          "name": "totalCross",
                          "margin": 0.037577
                        }
                      ],
                      "others_margin": 0.046967
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.05908714979887009,
                    "model_output": 0.0591,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1181
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.1136
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.1034
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0572
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0473
                      }
                    ],
                    "decomposition": {
                      "base": 0.0847,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.039
                        },
                        {
                          "name": "totalCross",
                          "contribution": 0.0054
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0043
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0029
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0024
                        }
                      ],
                      "others": 0.0042,
                      "total": 0.0591,
                      "log_link": true,
                      "margin_base": -2.468924,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.617851
                        },
                        {
                          "name": "totalCross",
                          "margin": 0.111127
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.080253
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.054612
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.044603
                        }
                      ],
                      "others_margin": 0.07666
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.06430228054523468,
                    "model_output": 0.0643,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0627
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0445
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0417
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0324
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0293
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0209
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0058
                        },
                        {
                          "name": "totalCross",
                          "contribution": 0.0046
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0043
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0035
                        }
                      ],
                      "others": -0.0025,
                      "total": 0.0643,
                      "log_link": true,
                      "margin_base": -2.463472,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.282018
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.086216
                        },
                        {
                          "name": "totalCross",
                          "margin": 0.063102
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.059076
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.051708
                        }
                      ],
                      "others_margin": -0.037204
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.1090329959988594,
                    "model_output": 0.109,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedGoals",
                        "importance": 0.1255
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0756
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0438
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0265
                      }
                    ],
                    "decomposition": {
                      "base": 0.0918,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0375
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0281
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0092
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.0055
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0032
                        }
                      ],
                      "others": 0.0087,
                      "total": 0.109,
                      "log_link": true,
                      "margin_base": -2.387963,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.524504
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.416253
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.10531
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": 0.058856
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.032522
                        }
                      ],
                      "others_margin": 0.083422
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.09074705839157104,
                    "model_output": 0.0907,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0923
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.067
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.041
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0334
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0287
                      }
                    ],
                    "decomposition": {
                      "base": 0.0946,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0392
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0152
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0154
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0067
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.0066
                        }
                      ],
                      "others": -0.0086,
                      "total": 0.0907,
                      "log_link": true,
                      "margin_base": -2.358385,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.535277
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.242028
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.197309
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.07556
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": 0.068614
                        }
                      ],
                      "others_margin": -0.089528
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.31070783734321594,
                    "model_output": 0.3107,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.117
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0884
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0772
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0315
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0258
                      }
                    ],
                    "decomposition": {
                      "base": 0.3179,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1417
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0444
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0517
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0171
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0074
                        }
                      ],
                      "others": 0.0139,
                      "total": 0.3107,
                      "log_link": true,
                      "margin_base": -1.146086,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.590386
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.22495
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.210481
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.060858
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.02533
                        }
                      ],
                      "others_margin": 0.045951
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.8020121455192566,
                    "model_output": 0.802,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1349
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.1208
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0462
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.044
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0312
                      }
                    ],
                    "decomposition": {
                      "base": 0.9849,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.5204
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.2755
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0619
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0292
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": 0.0223
                        }
                      ],
                      "others": -0.0514,
                      "total": 0.802,
                      "log_link": false,
                      "margin_base": 0.984935,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.520413
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.275484
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.061879
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.029248
                        },
                        {
                          "name": "interceptionWon",
                          "margin": 0.022336
                        }
                      ],
                      "others_margin": -0.051456
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.794490814208984,
                    "model_output": 6.7945,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "rating",
                        "importance": 0.0864
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0749
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0486
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0482
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 6.8574,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1095
                        },
                        {
                          "name": "rating",
                          "contribution": -0.0334
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0226
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": 0.0187
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0158
                        }
                      ],
                      "others": 0.0229,
                      "total": 6.7945,
                      "log_link": false,
                      "margin_base": 6.857404,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.109458
                        },
                        {
                          "name": "rating",
                          "margin": -0.033359
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.022556
                        },
                        {
                          "name": "expectedGoals",
                          "margin": 0.018695
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.01577
                        }
                      ],
                      "others_margin": 0.022884
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "substitute",
                  "history_matches": 29,
                  "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.9996, quality 0.496)",
              "stats": {
                "key_pass": 0.479,
                "expected_assists": 0.0591,
                "assists": 0.0643,
                "assist_rate": 0.0643,
                "expected_goals": 0.109,
                "goals": 0.0907,
                "goal_rate": 0.0907,
                "shots_on_target": 0.3106,
                "total_shots": 0.8017,
                "rating": 6.7945,
                "minutes": 20.1,
                "total_pass": 13.0807,
                "accurate_pass": 10.5476,
                "duels_won": 2.0056,
                "total_long_balls": 0.507,
                "accurate_long_balls": 0.3318,
                "total_own_half_passes": 4.3665,
                "accurate_own_half_passes": 4.0528,
                "total_opp_half_passes": 8.7142,
                "accurate_opp_half_passes": 6.4948,
                "crosses_total": 1.1801,
                "crosses_accurate": 0.4874,
                "touches": 19.9756,
                "possession_lost": 5.1929,
                "dispossessed": 0.3551,
                "duels_lost": 1.5274,
                "aerial_won": 0.4988,
                "aerial_lost": 0.2404,
                "interceptions": 0.0,
                "tackles_won": 0.8015,
                "tackles": 0.928,
                "clearances": 0.5037,
                "total_contest": 0.3119,
                "won_contest": 0.0,
                "challenges_lost": 0.0,
                "fouls": 0.6202,
                "fouls_drawn": 0.5788,
                "blocks": 0.1076,
                "big_chances_created": 0.1167,
                "big_chances_missed": 0.0717,
                "xgot": 0.352,
                "ball_carries": 4.7853,
                "total_progression": 4.0954,
                "progressive_carries": 0.3603,
                "shots_off_target": 0.4911
              },
              "params": {
                "market_value_eur": 7800000,
                "quality_factor": 0.4963,
                "boost_factor": 0.9996,
                "reference_quality": 0.505,
                "history_matches": 29,
                "history_shrink": 0.1471,
                "market_value_known": true
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 20.1 to 22.2 expected minutes (appearance prob 0.51)",
              "stats": {
                "key_pass": 0.5292,
                "expected_assists": 0.0653,
                "assists": 0.071,
                "assist_rate": 0.071,
                "expected_goals": 0.1204,
                "goals": 0.1002,
                "goal_rate": 0.1002,
                "shots_on_target": 0.3431,
                "total_shots": 0.8857,
                "rating": 6.7945,
                "minutes": 22.21,
                "total_pass": 14.4508,
                "accurate_pass": 11.6524,
                "duels_won": 2.2157,
                "total_long_balls": 0.5601,
                "accurate_long_balls": 0.3666,
                "total_own_half_passes": 4.8238,
                "accurate_own_half_passes": 4.4773,
                "total_opp_half_passes": 9.6269,
                "accurate_opp_half_passes": 7.1751,
                "crosses_total": 1.3037,
                "crosses_accurate": 0.5385,
                "touches": 22.0678,
                "possession_lost": 5.7368,
                "dispossessed": 0.3551,
                "duels_lost": 1.6874,
                "aerial_won": 0.551,
                "aerial_lost": 0.2404,
                "interceptions": 0.0,
                "tackles_won": 0.8854,
                "tackles": 1.0252,
                "clearances": 0.5565,
                "total_contest": 0.3446,
                "won_contest": 0.0,
                "challenges_lost": 0.0,
                "fouls": 0.6852,
                "fouls_drawn": 0.6394,
                "blocks": 0.1189,
                "big_chances_created": 0.1289,
                "big_chances_missed": 0.0792,
                "xgot": 0.3889,
                "ball_carries": 5.2865,
                "total_progression": 4.5244,
                "progressive_carries": 0.398,
                "shots_off_target": 0.5425,
                "bench_appearance_probability": 0.509,
                "bench_expected_minutes": 22.21
              },
              "params": {
                "expected_minutes": 22.21,
                "projection_minutes": 20.1,
                "minutes_scale": 1.1047,
                "appearance_probability": 0.509
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0.5292,
                "expected_assists": 0.0653,
                "assists": 0.071,
                "assist_rate": 0.071,
                "expected_goals": 0.1204,
                "goals": 0.1002,
                "goal_rate": 0.1002,
                "shots_on_target": 0.3431,
                "total_shots": 0.8857,
                "rating": 6.7945,
                "minutes": 22.21,
                "total_pass": 14.4508,
                "accurate_pass": 11.6524,
                "duels_won": 2.2157,
                "total_long_balls": 0.5601,
                "accurate_long_balls": 0.3666,
                "total_own_half_passes": 4.8238,
                "accurate_own_half_passes": 4.4773,
                "total_opp_half_passes": 9.6269,
                "accurate_opp_half_passes": 7.1751,
                "crosses_total": 1.3037,
                "crosses_accurate": 0.5385,
                "touches": 22.0678,
                "possession_lost": 5.7368,
                "dispossessed": 0.3551,
                "duels_lost": 1.6874,
                "aerial_won": 0.551,
                "aerial_lost": 0.2404,
                "interceptions": 0.0,
                "tackles_won": 0.8854,
                "tackles": 1.0252,
                "clearances": 0.5565,
                "total_contest": 0.3446,
                "won_contest": 0.0,
                "challenges_lost": 0.0,
                "fouls": 0.6852,
                "fouls_drawn": 0.6394,
                "blocks": 0.1189,
                "big_chances_created": 0.1289,
                "big_chances_missed": 0.0792,
                "xgot": 0.3889,
                "ball_carries": 5.2865,
                "total_progression": 4.5244,
                "progressive_carries": 0.398,
                "shots_off_target": 0.5425,
                "bench_appearance_probability": 0.509,
                "bench_expected_minutes": 22.21
              },
              "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.5292,
                "expected_assists": 0.0653,
                "assist_rate": 0.071,
                "assists": 0,
                "expected_goals": 0.1204,
                "goal_rate": 0.1002,
                "goals": 0,
                "shots_on_target": 0.3431,
                "total_shots": 0.8857,
                "rating": 6.7945,
                "minutes": 22.21,
                "total_pass": 14.4508,
                "accurate_pass": 11.6524,
                "duels_won": 2.2157,
                "total_long_balls": 0.5601,
                "accurate_long_balls": 0.3666,
                "total_own_half_passes": 4.8238,
                "accurate_own_half_passes": 4.4773,
                "total_opp_half_passes": 9.6269,
                "accurate_opp_half_passes": 7.1751,
                "crosses_total": 1.3037,
                "crosses_accurate": 0.5385,
                "touches": 22.0678,
                "possession_lost": 5.7368,
                "dispossessed": 0.3551,
                "duels_lost": 1.6874,
                "aerial_won": 0.551,
                "aerial_lost": 0.2404,
                "interceptions": 0.0,
                "tackles_won": 0.8854,
                "tackles": 1.0252,
                "clearances": 0.5565,
                "total_contest": 0.3446,
                "won_contest": 0.0,
                "challenges_lost": 0.0,
                "fouls": 0.6852,
                "fouls_drawn": 0.6394,
                "blocks": 0.1189,
                "big_chances_created": 0.1289,
                "big_chances_missed": 0.0792,
                "xgot": 0.3889,
                "ball_carries": 5.2865,
                "total_progression": 4.5244,
                "progressive_carries": 0.398,
                "shots_off_target": 0.5425,
                "bench_appearance_probability": 0.509,
                "bench_expected_minutes": 22.21,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "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": 1
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.25 (squad xG sum 1.3010, xG scale 0.9646, xA scale 0.9646, team xA 0.85 = 0.67 x lambda)",
              "stats": {
                "key_pass": 0.5292,
                "expected_assists": 0.0321,
                "assist_rate": 0.071,
                "assists": 0,
                "expected_goals": 0.0591,
                "goal_rate": 0.1002,
                "goals": 0,
                "shots_on_target": 0.3431,
                "total_shots": 0.8857,
                "rating": 6.7945,
                "minutes": 22.21,
                "total_pass": 14.4508,
                "accurate_pass": 11.6524,
                "duels_won": 2.2157,
                "total_long_balls": 0.5601,
                "accurate_long_balls": 0.3666,
                "total_own_half_passes": 4.8238,
                "accurate_own_half_passes": 4.4773,
                "total_opp_half_passes": 9.6269,
                "accurate_opp_half_passes": 7.1751,
                "crosses_total": 1.3037,
                "crosses_accurate": 0.5385,
                "touches": 22.0678,
                "possession_lost": 5.7368,
                "dispossessed": 0.3551,
                "duels_lost": 1.6874,
                "aerial_won": 0.551,
                "aerial_lost": 0.2404,
                "interceptions": 0.0,
                "tackles_won": 0.8854,
                "tackles": 1.0252,
                "clearances": 0.5565,
                "total_contest": 0.3446,
                "won_contest": 0.0,
                "challenges_lost": 0.0,
                "fouls": 0.6852,
                "fouls_drawn": 0.6394,
                "blocks": 0.1189,
                "big_chances_created": 0.1289,
                "big_chances_missed": 0.0792,
                "xgot": 0.1909,
                "ball_carries": 5.2865,
                "total_progression": 4.5244,
                "progressive_carries": 0.398,
                "shots_off_target": 0.5425,
                "bench_appearance_probability": 0.509,
                "bench_expected_minutes": 22.21,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "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.8815,
                "creation_factor": 1.0494
              },
              "params": {
                "team_lambda": 1.255,
                "squad_xg_sum": 1.301,
                "squad_xa_sum": 0.8767,
                "team_expected_assists": 0.8457,
                "team_xa_to_xg_ratio": 0.6739,
                "bench_appearance_weighted": true,
                "xg_scale": 0.9646,
                "xa_scale": 0.9646,
                "opponent_lambda": 1.729,
                "scoreline_reset": true,
                "appearance_weight": 0.509
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.1204,
                  "after": 0.0591
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0653,
                  "after": 0.0321
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 78.0)",
              "stats": {
                "key_pass": 0.5292,
                "expected_assists": 0.0321,
                "assist_rate": 0.071,
                "assists": 0,
                "expected_goals": 0.0591,
                "goal_rate": 0.1002,
                "goals": 0,
                "shots_on_target": 0.3431,
                "total_shots": 0.8857,
                "rating": 6.7945,
                "minutes": 22.21,
                "total_pass": 14.4508,
                "accurate_pass": 11.6524,
                "duels_won": 2.2157,
                "total_long_balls": 0.5601,
                "accurate_long_balls": 0.3666,
                "total_own_half_passes": 4.8238,
                "accurate_own_half_passes": 4.4773,
                "total_opp_half_passes": 9.6269,
                "accurate_opp_half_passes": 7.1751,
                "crosses_total": 1.3037,
                "crosses_accurate": 0.5385,
                "touches": 22.0678,
                "possession_lost": 5.7368,
                "dispossessed": 0.3551,
                "duels_lost": 1.6874,
                "aerial_won": 0.551,
                "aerial_lost": 0.2404,
                "interceptions": 0.0,
                "tackles_won": 0.8854,
                "tackles": 1.0252,
                "clearances": 0.5565,
                "total_contest": 0.3446,
                "won_contest": 0.0,
                "challenges_lost": 0.0,
                "fouls": 0.6852,
                "fouls_drawn": 0.6394,
                "blocks": 0.1189,
                "big_chances_created": 0.1289,
                "big_chances_missed": 0.0792,
                "xgot": 0.1909,
                "ball_carries": 5.2865,
                "total_progression": 4.5244,
                "progressive_carries": 0.398,
                "shots_off_target": 0.5425,
                "bench_appearance_probability": 0.509,
                "bench_expected_minutes": 22.21,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "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.8815,
                "creation_factor": 1.0494,
                "fifa_overall": 78.0
              },
              "params": {
                "match_squad_rank": 11,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 2265,
                "fifa_rank": 1221.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.5292,
                "expected_assists": 0.0321,
                "assist_rate": 0.071,
                "assists": 0,
                "expected_goals": 0.0591,
                "goal_rate": 0.1002,
                "goals": 0,
                "shots_on_target": 0.3431,
                "total_shots": 0.8857,
                "rating": 6.7945,
                "minutes": 22.21,
                "total_pass": 14.4508,
                "accurate_pass": 11.6524,
                "duels_won": 2.2157,
                "total_long_balls": 0.5601,
                "accurate_long_balls": 0.3666,
                "total_own_half_passes": 4.8238,
                "accurate_own_half_passes": 4.4773,
                "total_opp_half_passes": 9.6269,
                "accurate_opp_half_passes": 7.1751,
                "crosses_total": 1.3037,
                "crosses_accurate": 0.5385,
                "touches": 22.0678,
                "possession_lost": 5.7368,
                "dispossessed": 0.3551,
                "duels_lost": 1.6874,
                "aerial_won": 0.551,
                "aerial_lost": 0.2404,
                "interceptions": 0.0,
                "tackles_won": 0.8854,
                "tackles": 1.0252,
                "clearances": 0.5565,
                "total_contest": 0.3446,
                "won_contest": 0.0,
                "challenges_lost": 0.0,
                "fouls": 0.6852,
                "fouls_drawn": 0.6394,
                "blocks": 0.1189,
                "big_chances_created": 0.1289,
                "big_chances_missed": 0.0792,
                "xgot": 0.1909,
                "ball_carries": 5.2865,
                "total_progression": 4.5244,
                "progressive_carries": 0.398,
                "shots_off_target": 0.5425,
                "bench_appearance_probability": 0.509,
                "bench_expected_minutes": 22.21,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0558,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8815,
                "creation_factor": 1.0494,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0558,
                "goal_rate": 0.1002,
                "scorer_weight": 0.0521,
                "squad_weight_total": 1.3959,
                "weight_share": 0.0373,
                "finishing_factor": 0.8815,
                "appearance_weight": 0.509,
                "weight_rank": 9,
                "eligible_players": 14,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Mikel Oyarzabal",
                    "weight": 0.3544,
                    "already": 0,
                    "effective_weight": 0.3544,
                    "runner_up": "Gonçalo Guedes",
                    "runner_up_effective_weight": 0.2684
                  }
                ]
              }
            },
            {
              "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.5292,
                "expected_assists": 0.0321,
                "assist_rate": 0.071,
                "assists": 0,
                "expected_goals": 0.0591,
                "goal_rate": 0.1002,
                "goals": 0,
                "shots_on_target": 0.3431,
                "total_shots": 0.8857,
                "rating": 6.7945,
                "minutes": 22.21,
                "total_pass": 14.4508,
                "accurate_pass": 11.6524,
                "duels_won": 2.2157,
                "total_long_balls": 0.5601,
                "accurate_long_balls": 0.3666,
                "total_own_half_passes": 4.8238,
                "accurate_own_half_passes": 4.4773,
                "total_opp_half_passes": 9.6269,
                "accurate_opp_half_passes": 7.1751,
                "crosses_total": 1.3037,
                "crosses_accurate": 0.5385,
                "touches": 22.0678,
                "possession_lost": 5.7368,
                "dispossessed": 0.3551,
                "duels_lost": 1.6874,
                "aerial_won": 0.551,
                "aerial_lost": 0.2404,
                "interceptions": 0.0,
                "tackles_won": 0.8854,
                "tackles": 1.0252,
                "clearances": 0.5565,
                "total_contest": 0.3446,
                "won_contest": 0.0,
                "challenges_lost": 0.0,
                "fouls": 0.6852,
                "fouls_drawn": 0.6394,
                "blocks": 0.1189,
                "big_chances_created": 0.1289,
                "big_chances_missed": 0.0792,
                "xgot": 0.1909,
                "ball_carries": 5.2865,
                "total_progression": 4.5244,
                "progressive_carries": 0.398,
                "shots_off_target": 0.5425,
                "bench_appearance_probability": 0.509,
                "bench_expected_minutes": 22.21,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0558,
                "projected_assists": 0,
                "assist_probability": 0.0311,
                "finishing_factor": 0.8815,
                "creation_factor": 1.0494,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0311,
                "assist_rate": 0.071,
                "provider_weight": 0.0337,
                "squad_weight_total": 0.8785,
                "weight_share": 0.0383,
                "creation_factor": 1.0494,
                "appearance_weight": 0.509,
                "weight_rank": 8,
                "eligible_players": 14,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Gonçalo Guedes",
                    "weight": 0.1642,
                    "already": 0,
                    "effective_weight": 0.1642,
                    "runner_up": "Carlos Soler",
                    "runner_up_effective_weight": 0.1308,
                    "blocked_own_goal": [
                      "Mikel Oyarzabal"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Takefusa Kubo": {
          "player_id": 880218,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 14,
          "height": 174,
          "market_value": 21000000,
          "stats": {
            "expected_goals": 0.0196,
            "goal_rate": 0.0396,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 0,
            "expected_assists": 0.0186,
            "key_pass": 1,
            "rating": 6.6977,
            "minutes": 19,
            "total_pass": 6,
            "accurate_pass": 5,
            "duels_won": 2,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 5,
            "accurate_opp_half_passes": 4,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 11,
            "possession_lost": 2.8101,
            "dispossessed": 0.478,
            "duels_lost": 1,
            "aerial_lost": 0,
            "total_contest": 1,
            "won_contest": 1,
            "ball_recovery": 1,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assist_rate": 0.0926,
            "assists": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 1,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0025,
            "offsides": 0,
            "ball_carries": 4,
            "total_progression": 11,
            "progressive_carries": 1,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.447,
            "bench_expected_minutes": 18.89,
            "projected_substitution_order": 4,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 4,
            "projected_substitution_expected_count": 2.572,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0192,
            "projected_assists": 0,
            "assist_probability": 0.0182,
            "finishing_factor": 0.9382,
            "creation_factor": 1.25,
            "fifa_overall": 80.0
          },
          "latest_10_games": [
            {
              "match_id": 16421073.0,
              "match_date": "2026-10-18",
              "home_team": "Málaga CF",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 71,
                "rating": 7.9,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.0211,
                "expected_assists": 0.0802,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 20,
                "accurate_pass": 18,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 1,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416332.0,
              "match_date": "2026-09-13",
              "home_team": "Real Sociedad",
              "away_team": "Atlético Madrid",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 18,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0099,
                "total_shots": 0,
                "total_pass": 5,
                "accurate_pass": 5,
                "key_pass": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416340.0,
              "match_date": "2026-09-03",
              "home_team": "Real Sociedad",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 61,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.4845,
                "expected_assists": 0.0393,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 24,
                "accurate_pass": 18,
                "key_pass": 1,
                "clearances": 1,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416310.0,
              "match_date": "2026-08-29",
              "home_team": "Real Sociedad",
              "away_team": "Espanyol",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 12,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421051.0,
              "match_date": "2026-08-26",
              "home_team": "Real Madrid",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Real Madrid",
              "stats": {
                "minutes": 74,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0988,
                "total_shots": 0,
                "total_pass": 16,
                "accurate_pass": 12,
                "key_pass": 1,
                "duels_won": 4,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416293.0,
              "match_date": "2026-08-21",
              "home_team": "Real Betis",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 58,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0452,
                "expected_assists": 0.0032,
                "total_shots": 1,
                "total_pass": 16,
                "accurate_pass": 12,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "duels_won": 7,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 14083624.0,
              "match_date": "2026-05-14",
              "home_team": "Girona FC",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Girona FC",
              "stats": {
                "minutes": 57,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0329,
                "expected_assists": 0.0075,
                "total_shots": 1,
                "total_pass": 9,
                "accurate_pass": 8,
                "key_pass": 1,
                "interceptions": 2,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083583.0,
              "match_date": "2026-05-09",
              "home_team": "Real Sociedad",
              "away_team": "Real Betis",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 54,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.4873,
                "total_shots": 0,
                "total_pass": 18,
                "accurate_pass": 16,
                "key_pass": 2,
                "tackles": 1,
                "tackles_won": 1,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083526.0,
              "match_date": "2026-05-04",
              "home_team": "Sevilla",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Sociedad",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 32,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0154,
                "expected_assists": 0.0116,
                "total_shots": 1,
                "total_pass": 13,
                "accurate_pass": 11,
                "tackles": 2,
                "tackles_won": 1,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14083239.0,
              "match_date": "2026-04-26",
              "home_team": "Rayo Vallecano",
              "away_team": "Real Sociedad",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Sociedad",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 56,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0573,
                "expected_assists": 0.0122,
                "total_shots": 1,
                "total_pass": 16,
                "accurate_pass": 13,
                "duels_won": 4,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559.0",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 1228,
            "combined_rank_score": 536.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 315.0,
            "sofascore_rating": 7.025,
            "sofascore_appearances": 24.0,
            "fifa_rank": 757.0,
            "fifa_overall": 80.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 15,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.6977,
            "source_file": "data/player_rankings.csv",
            "player_name": "Takefusa Kubo",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Carlo Armiento",
                  "ranking": 1223
                },
                {
                  "player_name": "Jeyson Rojas",
                  "ranking": 1224
                },
                {
                  "player_name": "Chang-seok Lim",
                  "ranking": 1225
                },
                {
                  "player_name": "Nicola Nanni",
                  "ranking": 1226
                },
                {
                  "player_name": "Nikola Vlašić",
                  "ranking": 1227
                }
              ],
              "lower": [
                {
                  "player_name": "Trevoh Chalobah",
                  "ranking": 1229
                },
                {
                  "player_name": "Moussa Niakhaté",
                  "ranking": 1230
                },
                {
                  "player_name": "Mario Pašalić",
                  "ranking": 1231
                },
                {
                  "player_name": "Shohruh Gadoev",
                  "ranking": 1232
                },
                {
                  "player_name": "Matthieu Udol",
                  "ranking": 1233
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.773,
          "history_matches": 30,
          "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": 30,
            "data_confidence": 0.773,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 18.89,
            "bench_appearance_prob": 0.447,
            "market_value_adjustment": 1.0058,
            "fbref_prior_metrics": {
              "squad": "Real Sociedad",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 4.0,
              "starts": 3.0,
              "sub_appearances": 1.0,
              "minutes_per_sub": 13.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "prior_reliability": 0.1533
            },
            "rationale": "Bench projection scaled from XGBoost F_service (30 historical appearances) to 18.9 expected mins (appearance prob 0.45); FBref playing time empirical prior: 1.0 sub appearances, 13.0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.0581,
                "goals": 0.0513,
                "goal_rate": 0.0513,
                "shots_on_target": 0.1882,
                "total_shots": 0.5279,
                "expected_assists": 0.0552,
                "key_pass": 0.6697,
                "rating": 6.6977,
                "minutes": 24.26,
                "total_pass": 8.1448,
                "accurate_pass": 6.7189,
                "duels_won": 2.0472,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 6.0885,
                "accurate_opp_half_passes": 4.976,
                "crosses_total": 0.4737,
                "crosses_accurate": 0.1199,
                "touches": 13.8972,
                "possession_lost": 3.5881,
                "dispossessed": 0.4752,
                "duels_lost": 1.4726,
                "aerial_lost": 0.2526,
                "total_contest": 1.207,
                "won_contest": 0.7604,
                "ball_recovery": 1.0608,
                "challenges_lost": 0.1252,
                "fouls": 0.1731,
                "fouls_drawn": 0.514,
                "assists": 0.1199,
                "assist_rate": 0.1199,
                "interceptions": 0.0,
                "tackles_won": 0.4562,
                "tackles": 0.6991,
                "clearances": 0.1019,
                "blocks": 0.0,
                "big_chances_created": 0.1199,
                "big_chances_missed": 0.0,
                "xgot": 0.0074,
                "offsides": 0.1789,
                "ball_carries": 4.7529,
                "total_progression": 14.1674,
                "progressive_carries": 0.926,
                "shots_off_target": 0.3397
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 6,
                  "trained_at": "2026-11-01T11:27:41.685145+00:00",
                  "trained_on": {
                    "matches": 1441,
                    "players": 612,
                    "rows": 17180
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-10-18",
                    "opponent": "Málaga CF",
                    "minutes": 71.0,
                    "is_starting": true,
                    "weight": 0.1512,
                    "rating": 7.9
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Atlético Madrid",
                    "minutes": 18.0,
                    "is_starting": false,
                    "weight": 0.1285,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-09-03",
                    "opponent": "Celta Vigo",
                    "minutes": 61.0,
                    "is_starting": true,
                    "weight": 0.1092,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-29",
                    "opponent": "Espanyol",
                    "minutes": 12.0,
                    "is_starting": false,
                    "weight": 0.0928,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-26",
                    "opponent": "Real Madrid",
                    "minutes": 74.0,
                    "is_starting": true,
                    "weight": 0.0789,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-08-21",
                    "opponent": "Real Betis",
                    "minutes": 58.0,
                    "is_starting": true,
                    "weight": 0.0671,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-05-14",
                    "opponent": "Girona FC",
                    "minutes": 57.0,
                    "is_starting": true,
                    "weight": 0.057,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-05-09",
                    "opponent": "Real Betis",
                    "minutes": 54.0,
                    "is_starting": true,
                    "weight": 0.0485,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-05-04",
                    "opponent": "Sevilla",
                    "minutes": 32.0,
                    "is_starting": false,
                    "weight": 0.0412,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-04-26",
                    "opponent": "Rayo Vallecano",
                    "minutes": 56.0,
                    "is_starting": true,
                    "weight": 0.035,
                    "rating": 6.5
                  }
                ],
                "feature_row": {
                  "history_matches": 20.0,
                  "is_starting_11": 0.0,
                  "accuratePass": 12.7137,
                  "expectedGoals": 0.0818,
                  "accurateOppositionHalfPasses": 9.4988,
                  "totalShots": 0.6487,
                  "totalOppositionHalfPasses": 11.9896
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.05808654800057411,
                    "model_output": 0.0581,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2767
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0987
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.036
                      },
                      {
                        "name": "goals",
                        "importance": 0.0336
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0236
                      }
                    ],
                    "decomposition": {
                      "base": 0.1929,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0881
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0167
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0064
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": -0.004
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0034
                        }
                      ],
                      "others": -0.0162,
                      "total": 0.0581,
                      "log_link": true,
                      "margin_base": -1.645586,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.609742
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.173566
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": -0.075877
                        },
                        {
                          "name": "totalShots_p90",
                          "margin": -0.050729
                        },
                        {
                          "name": "totalProgression",
                          "margin": -0.044982
                        }
                      ],
                      "others_margin": -0.245338
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.05129258334636688,
                    "model_output": 0.0513,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1491
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0805
                      },
                      {
                        "name": "goals",
                        "importance": 0.056
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0343
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 0.1972,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0971
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0111
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0072
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0065
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.005
                        }
                      ],
                      "others": -0.019,
                      "total": 0.0513,
                      "log_link": true,
                      "margin_base": -1.623746,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.678316
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.117888
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.083966
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": -0.083452
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": -0.068348
                        }
                      ],
                      "others_margin": -0.314493
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.18819697201251984,
                    "model_output": 0.1882,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.2173
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0637
                      },
                      {
                        "name": "goals",
                        "importance": 0.0596
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0393
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 0.5269,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2401
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0316
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0137
                        },
                        {
                          "name": "expectedGoals",
                          "contribution": -0.0115
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": -0.0104
                        }
                      ],
                      "others": -0.0314,
                      "total": 0.1882,
                      "log_link": true,
                      "margin_base": -0.640773,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.608242
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.116817
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.055157
                        },
                        {
                          "name": "expectedGoals",
                          "margin": -0.048919
                        },
                        {
                          "name": "totalShots_p90",
                          "margin": -0.0462
                        }
                      ],
                      "others_margin": -0.154158
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.52790367603302,
                    "model_output": 0.5279,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.3005
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0627
                      },
                      {
                        "name": "expectedGoals",
                        "importance": 0.0526
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0309
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0307
                      }
                    ],
                    "decomposition": {
                      "base": 1.3756,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.478
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.1304
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0475
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": -0.0349
                        },
                        {
                          "name": "shotOffTarget",
                          "contribution": -0.0239
                        }
                      ],
                      "others": -0.133,
                      "total": 0.5279,
                      "log_link": false,
                      "margin_base": 1.375643,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.477959
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.130385
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.04751
                        },
                        {
                          "name": "totalShots_p90",
                          "margin": -0.034915
                        },
                        {
                          "name": "shotOffTarget",
                          "margin": -0.023883
                        }
                      ],
                      "others_margin": -0.133087
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.055170655250549316,
                    "model_output": 0.0552,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.1287
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1119
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0634
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0522
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.051
                      }
                    ],
                    "decomposition": {
                      "base": 0.065,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.021
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0061
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": 0.0058
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0043
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.0018
                        }
                      ],
                      "others": 0.0018,
                      "total": 0.0552,
                      "log_link": true,
                      "margin_base": -2.733324,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.390304
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.129177
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": 0.109492
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.079442
                        },
                        {
                          "name": "keyPass",
                          "margin": 0.034613
                        }
                      ],
                      "others_margin": 0.032462
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.6696508526802063,
                    "model_output": 0.6697,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.1579
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.1341
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0953
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.069
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0295
                      }
                    ],
                    "decomposition": {
                      "base": 0.6917,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2121
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": 0.0751
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0311
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0246
                        },
                        {
                          "name": "aerialWon",
                          "contribution": 0.0232
                        }
                      ],
                      "others": 0.0361,
                      "total": 0.6697,
                      "log_link": true,
                      "margin_base": -0.368585,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.366098
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": 0.145468
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.054497
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": 0.041156
                        },
                        {
                          "name": "aerialWon",
                          "margin": 0.037344
                        }
                      ],
                      "others_margin": 0.055218
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.697710037231445,
                    "model_output": 6.6977,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0495
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.048
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0462
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0455
                      },
                      {
                        "name": "rating",
                        "importance": 0.0455
                      }
                    ],
                    "decomposition": {
                      "base": 6.7733,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.078
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0167
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0093
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": 0.007
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0065
                        }
                      ],
                      "others": -0.0055,
                      "total": 6.6977,
                      "log_link": false,
                      "margin_base": 6.773334,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.078035
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.016659
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.009258
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": 0.00703
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.006504
                        }
                      ],
                      "others_margin": -0.005516
                    }
                  }
                ],
                "prediction_basis": {
                  "source": "xgboost_regressor",
                  "role": "substitute",
                  "history_matches": 30,
                  "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 1.0058, quality 0.641)",
              "stats": {
                "expected_goals": 0.0584,
                "goals": 0.0516,
                "goal_rate": 0.0516,
                "shots_on_target": 0.1893,
                "total_shots": 0.531,
                "expected_assists": 0.0555,
                "key_pass": 0.6735,
                "rating": 6.6977,
                "minutes": 24.26,
                "total_pass": 8.192,
                "accurate_pass": 6.7579,
                "duels_won": 2.0591,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 6.1238,
                "accurate_opp_half_passes": 5.0049,
                "crosses_total": 0.4764,
                "crosses_accurate": 0.1206,
                "touches": 13.9778,
                "possession_lost": 3.6089,
                "dispossessed": 0.478,
                "duels_lost": 1.4811,
                "aerial_lost": 0.2541,
                "total_contest": 1.214,
                "won_contest": 0.7648,
                "ball_recovery": 1.067,
                "challenges_lost": 0.1259,
                "fouls": 0.1741,
                "fouls_drawn": 0.517,
                "assists": 0.1206,
                "assist_rate": 0.1206,
                "interceptions": 0.0,
                "tackles_won": 0.4588,
                "tackles": 0.7032,
                "clearances": 0.1025,
                "blocks": 0.0,
                "big_chances_created": 0.1206,
                "big_chances_missed": 0.0,
                "xgot": 0.0074,
                "offsides": 0.1799,
                "ball_carries": 4.7805,
                "total_progression": 14.2496,
                "progressive_carries": 0.9314,
                "shots_off_target": 0.3417
              },
              "params": {
                "market_value_eur": 21000000,
                "quality_factor": 0.6408,
                "boost_factor": 1.0058,
                "reference_quality": 0.505,
                "history_matches": 30,
                "history_shrink": 0.1429,
                "market_value_known": true
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0142)",
              "stats": {
                "expected_goals": 0.0584,
                "goals": 0.0509,
                "goal_rate": 0.0509,
                "shots_on_target": 0.1866,
                "total_shots": 0.5269,
                "expected_assists": 0.0555,
                "key_pass": 0.6735,
                "rating": 6.6977,
                "minutes": 24.26,
                "total_pass": 8.192,
                "accurate_pass": 6.7579,
                "duels_won": 2.0591,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 6.1238,
                "accurate_opp_half_passes": 5.0049,
                "crosses_total": 0.4763,
                "crosses_accurate": 0.1206,
                "touches": 13.9778,
                "possession_lost": 3.6089,
                "dispossessed": 0.478,
                "duels_lost": 1.4811,
                "aerial_lost": 0.2541,
                "total_contest": 1.214,
                "won_contest": 0.7648,
                "ball_recovery": 1.067,
                "challenges_lost": 0.1259,
                "fouls": 0.1766,
                "fouls_drawn": 0.518,
                "assists": 0.1189,
                "assist_rate": 0.1189,
                "interceptions": 0.0017,
                "tackles_won": 0.4556,
                "tackles": 0.7032,
                "clearances": 0.1025,
                "blocks": 0.0,
                "big_chances_created": 0.1206,
                "big_chances_missed": 0.0,
                "xgot": 0.0074,
                "offsides": 0.1773,
                "ball_carries": 4.7805,
                "total_progression": 14.2496,
                "progressive_carries": 0.9314,
                "shots_off_target": 0.3417
              },
              "params": {
                "blend_weight": 0.0142,
                "history_matches": 30,
                "season_overlap_discount": 1.0,
                "per90_to_match_factor": 0.2696,
                "prior_reliability": 0.1533,
                "competition": "La Liga",
                "squad": "Real Sociedad"
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled from 24.3 to 18.9 expected minutes (appearance prob 0.45)",
              "stats": {
                "expected_goals": 0.0455,
                "goals": 0.0396,
                "goal_rate": 0.0396,
                "shots_on_target": 0.1453,
                "total_shots": 0.4114,
                "expected_assists": 0.0432,
                "key_pass": 0.5244,
                "rating": 6.6977,
                "minutes": 18.89,
                "total_pass": 6.3787,
                "accurate_pass": 5.262,
                "duels_won": 1.6033,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 4.7683,
                "accurate_opp_half_passes": 3.8971,
                "crosses_total": 0.3709,
                "crosses_accurate": 0.0939,
                "touches": 10.8838,
                "possession_lost": 2.8101,
                "dispossessed": 0.478,
                "duels_lost": 1.1533,
                "aerial_lost": 0.2541,
                "total_contest": 0.9453,
                "won_contest": 0.5955,
                "ball_recovery": 0.8308,
                "challenges_lost": 0.1259,
                "fouls": 0.1375,
                "fouls_drawn": 0.4033,
                "assists": 0.0926,
                "assist_rate": 0.0926,
                "interceptions": 0.0013,
                "tackles_won": 0.3548,
                "tackles": 0.5475,
                "clearances": 0.0798,
                "blocks": 0.0,
                "big_chances_created": 0.0939,
                "big_chances_missed": 0.0,
                "xgot": 0.0058,
                "offsides": 0.1773,
                "ball_carries": 3.7223,
                "total_progression": 11.0954,
                "progressive_carries": 0.7252,
                "shots_off_target": 0.2661,
                "bench_appearance_probability": 0.447,
                "bench_expected_minutes": 18.89
              },
              "params": {
                "expected_minutes": 18.89,
                "projection_minutes": 24.26,
                "minutes_scale": 0.7786,
                "appearance_probability": 0.447
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0455,
                "goals": 0.0396,
                "goal_rate": 0.0396,
                "shots_on_target": 0.1453,
                "total_shots": 0.4114,
                "expected_assists": 0.0432,
                "key_pass": 0.5244,
                "rating": 6.6977,
                "minutes": 18.89,
                "total_pass": 6.3787,
                "accurate_pass": 5.262,
                "duels_won": 1.6033,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 4.7683,
                "accurate_opp_half_passes": 3.8971,
                "crosses_total": 0.3709,
                "crosses_accurate": 0.0939,
                "touches": 10.8838,
                "possession_lost": 2.8101,
                "dispossessed": 0.478,
                "duels_lost": 1.1533,
                "aerial_lost": 0.2541,
                "total_contest": 0.9453,
                "won_contest": 0.5955,
                "ball_recovery": 0.8308,
                "challenges_lost": 0.1259,
                "fouls": 0.1375,
                "fouls_drawn": 0.4033,
                "assists": 0.0926,
                "assist_rate": 0.0926,
                "interceptions": 0.0013,
                "tackles_won": 0.3548,
                "tackles": 0.5475,
                "clearances": 0.0798,
                "blocks": 0.0,
                "big_chances_created": 0.0939,
                "big_chances_missed": 0.0,
                "xgot": 0.0058,
                "offsides": 0.1773,
                "ball_carries": 3.7223,
                "total_progression": 11.0954,
                "progressive_carries": 0.7252,
                "shots_off_target": 0.2661,
                "bench_appearance_probability": 0.447,
                "bench_expected_minutes": 18.89
              },
              "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.0455,
                "goal_rate": 0.0396,
                "goals": 0,
                "shots_on_target": 0.1453,
                "total_shots": 0.4114,
                "expected_assists": 0.0432,
                "key_pass": 0.5244,
                "rating": 6.6977,
                "minutes": 18.89,
                "total_pass": 6.3787,
                "accurate_pass": 5.262,
                "duels_won": 1.6033,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 4.7683,
                "accurate_opp_half_passes": 3.8971,
                "crosses_total": 0.3709,
                "crosses_accurate": 0.0939,
                "touches": 10.8838,
                "possession_lost": 2.8101,
                "dispossessed": 0.478,
                "duels_lost": 1.1533,
                "aerial_lost": 0.2541,
                "total_contest": 0.9453,
                "won_contest": 0.5955,
                "ball_recovery": 0.8308,
                "challenges_lost": 0.1259,
                "fouls": 0.1375,
                "fouls_drawn": 0.4033,
                "assist_rate": 0.0926,
                "assists": 0,
                "interceptions": 0.0013,
                "tackles_won": 0.3548,
                "tackles": 0.5475,
                "clearances": 0.0798,
                "blocks": 0.0,
                "big_chances_created": 0.0939,
                "big_chances_missed": 0.0,
                "xgot": 0.0058,
                "offsides": 0.1773,
                "ball_carries": 3.7223,
                "total_progression": 11.0954,
                "progressive_carries": 0.7252,
                "shots_off_target": 0.2661,
                "bench_appearance_probability": 0.447,
                "bench_expected_minutes": 18.89,
                "projected_substitution_order": 4,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "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": 1
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.25 (squad xG sum 1.3010, xG scale 0.9646, xA scale 0.9646, team xA 0.85 = 0.67 x lambda)",
              "stats": {
                "expected_goals": 0.0196,
                "goal_rate": 0.0396,
                "goals": 0,
                "shots_on_target": 0.1453,
                "total_shots": 0.4114,
                "expected_assists": 0.0186,
                "key_pass": 0.5244,
                "rating": 6.6977,
                "minutes": 18.89,
                "total_pass": 6.3787,
                "accurate_pass": 5.262,
                "duels_won": 1.6033,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 4.7683,
                "accurate_opp_half_passes": 3.8971,
                "crosses_total": 0.3709,
                "crosses_accurate": 0.0939,
                "touches": 10.8838,
                "possession_lost": 2.8101,
                "dispossessed": 0.478,
                "duels_lost": 1.1533,
                "aerial_lost": 0.2541,
                "total_contest": 0.9453,
                "won_contest": 0.5955,
                "ball_recovery": 0.8308,
                "challenges_lost": 0.1259,
                "fouls": 0.1375,
                "fouls_drawn": 0.4033,
                "assist_rate": 0.0926,
                "assists": 0,
                "interceptions": 0.0013,
                "tackles_won": 0.3548,
                "tackles": 0.5475,
                "clearances": 0.0798,
                "blocks": 0.0,
                "big_chances_created": 0.0939,
                "big_chances_missed": 0.0,
                "xgot": 0.0025,
                "offsides": 0.1773,
                "ball_carries": 3.7223,
                "total_progression": 11.0954,
                "progressive_carries": 0.7252,
                "shots_off_target": 0.2661,
                "bench_appearance_probability": 0.447,
                "bench_expected_minutes": 18.89,
                "projected_substitution_order": 4,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "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.9382,
                "creation_factor": 1.25
              },
              "params": {
                "team_lambda": 1.255,
                "squad_xg_sum": 1.301,
                "squad_xa_sum": 0.8767,
                "team_expected_assists": 0.8457,
                "team_xa_to_xg_ratio": 0.6739,
                "bench_appearance_weighted": true,
                "xg_scale": 0.9646,
                "xa_scale": 0.9646,
                "opponent_lambda": 1.729,
                "scoreline_reset": true,
                "appearance_weight": 0.447
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0455,
                  "after": 0.0196
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0432,
                  "after": 0.0186
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Display-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 80.0)",
              "stats": {
                "expected_goals": 0.0196,
                "goal_rate": 0.0396,
                "goals": 0,
                "shots_on_target": 0.1453,
                "total_shots": 0.4114,
                "expected_assists": 0.0186,
                "key_pass": 0.5244,
                "rating": 6.6977,
                "minutes": 18.89,
                "total_pass": 6.3787,
                "accurate_pass": 5.262,
                "duels_won": 1.6033,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 4.7683,
                "accurate_opp_half_passes": 3.8971,
                "crosses_total": 0.3709,
                "crosses_accurate": 0.0939,
                "touches": 10.8838,
                "possession_lost": 2.8101,
                "dispossessed": 0.478,
                "duels_lost": 1.1533,
                "aerial_lost": 0.2541,
                "total_contest": 0.9453,
                "won_contest": 0.5955,
                "ball_recovery": 0.8308,
                "challenges_lost": 0.1259,
                "fouls": 0.1375,
                "fouls_drawn": 0.4033,
                "assist_rate": 0.0926,
                "assists": 0,
                "interceptions": 0.0013,
                "tackles_won": 0.3548,
                "tackles": 0.5475,
                "clearances": 0.0798,
                "blocks": 0.0,
                "big_chances_created": 0.0939,
                "big_chances_missed": 0.0,
                "xgot": 0.0025,
                "offsides": 0.1773,
                "ball_carries": 3.7223,
                "total_progression": 11.0954,
                "progressive_carries": 0.7252,
                "shots_off_target": 0.2661,
                "bench_appearance_probability": 0.447,
                "bench_expected_minutes": 18.89,
                "projected_substitution_order": 4,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "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.9382,
                "creation_factor": 1.25,
                "fifa_overall": 80.0
              },
              "params": {
                "match_squad_rank": 15,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 1228,
                "fifa_rank": 757.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 80.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.0196,
                "goal_rate": 0.0396,
                "goals": 0,
                "shots_on_target": 0.1453,
                "total_shots": 0.4114,
                "expected_assists": 0.0186,
                "key_pass": 0.5244,
                "rating": 6.6977,
                "minutes": 18.89,
                "total_pass": 6.3787,
                "accurate_pass": 5.262,
                "duels_won": 1.6033,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 4.7683,
                "accurate_opp_half_passes": 3.8971,
                "crosses_total": 0.3709,
                "crosses_accurate": 0.0939,
                "touches": 10.8838,
                "possession_lost": 2.8101,
                "dispossessed": 0.478,
                "duels_lost": 1.1533,
                "aerial_lost": 0.2541,
                "total_contest": 0.9453,
                "won_contest": 0.5955,
                "ball_recovery": 0.8308,
                "challenges_lost": 0.1259,
                "fouls": 0.1375,
                "fouls_drawn": 0.4033,
                "assist_rate": 0.0926,
                "assists": 0,
                "interceptions": 0.0013,
                "tackles_won": 0.3548,
                "tackles": 0.5475,
                "clearances": 0.0798,
                "blocks": 0.0,
                "big_chances_created": 0.0939,
                "big_chances_missed": 0.0,
                "xgot": 0.0025,
                "offsides": 0.1773,
                "ball_carries": 3.7223,
                "total_progression": 11.0954,
                "progressive_carries": 0.7252,
                "shots_off_target": 0.2661,
                "bench_appearance_probability": 0.447,
                "bench_expected_minutes": 18.89,
                "projected_substitution_order": 4,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0192,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.9382,
                "creation_factor": 1.25,
                "fifa_overall": 80.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0192,
                "goal_rate": 0.0396,
                "scorer_weight": 0.0184,
                "squad_weight_total": 1.3959,
                "weight_share": 0.0132,
                "finishing_factor": 0.9382,
                "appearance_weight": 0.447,
                "weight_rank": 12,
                "eligible_players": 14,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Mikel Oyarzabal",
                    "weight": 0.3544,
                    "already": 0,
                    "effective_weight": 0.3544,
                    "runner_up": "Gonçalo Guedes",
                    "runner_up_effective_weight": 0.2684
                  }
                ]
              }
            },
            {
              "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.0196,
                "goal_rate": 0.0396,
                "goals": 0,
                "shots_on_target": 0.1453,
                "total_shots": 0.4114,
                "expected_assists": 0.0186,
                "key_pass": 0.5244,
                "rating": 6.6977,
                "minutes": 18.89,
                "total_pass": 6.3787,
                "accurate_pass": 5.262,
                "duels_won": 1.6033,
                "total_long_balls": 0.0,
                "accurate_long_balls": 0.0,
                "total_opp_half_passes": 4.7683,
                "accurate_opp_half_passes": 3.8971,
                "crosses_total": 0.3709,
                "crosses_accurate": 0.0939,
                "touches": 10.8838,
                "possession_lost": 2.8101,
                "dispossessed": 0.478,
                "duels_lost": 1.1533,
                "aerial_lost": 0.2541,
                "total_contest": 0.9453,
                "won_contest": 0.5955,
                "ball_recovery": 0.8308,
                "challenges_lost": 0.1259,
                "fouls": 0.1375,
                "fouls_drawn": 0.4033,
                "assist_rate": 0.0926,
                "assists": 0,
                "interceptions": 0.0013,
                "tackles_won": 0.3548,
                "tackles": 0.5475,
                "clearances": 0.0798,
                "blocks": 0.0,
                "big_chances_created": 0.0939,
                "big_chances_missed": 0.0,
                "xgot": 0.0025,
                "offsides": 0.1773,
                "ball_carries": 3.7223,
                "total_progression": 11.0954,
                "progressive_carries": 0.7252,
                "shots_off_target": 0.2661,
                "bench_appearance_probability": 0.447,
                "bench_expected_minutes": 18.89,
                "projected_substitution_order": 4,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.572,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0192,
                "projected_assists": 0,
                "assist_probability": 0.0182,
                "finishing_factor": 0.9382,
                "creation_factor": 1.25,
                "fifa_overall": 80.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0182,
                "assist_rate": 0.0926,
                "provider_weight": 0.0232,
                "squad_weight_total": 0.8785,
                "weight_share": 0.0265,
                "creation_factor": 1.25,
                "appearance_weight": 0.447,
                "weight_rank": 10,
                "eligible_players": 14,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Gonçalo Guedes",
                    "weight": 0.1642,
                    "already": 0,
                    "effective_weight": 0.1642,
                    "runner_up": "Carlos Soler",
                    "runner_up_effective_weight": 0.1308,
                    "blocked_own_goal": [
                      "Mikel Oyarzabal"
                    ]
                  }
                ]
              }
            }
          ]
        }
      },
      "team_totals": {
        "projected_goals": 1,
        "expected_goals": 1.25,
        "expected_assists": 0.85,
        "total_shots": 13,
        "shots_on_target": 3,
        "total_passes": 526,
        "interceptions": 9,
        "tackles": 17,
        "avg_rating": 6.94,
        "possession_estimated_pct": 50.2,
        "pressing_actions_per_90": 7.0
      }
    }
  },
  "antagonist_report": {
    "home_attacking_duels": [
      {
        "attacker": "Nico Williams",
        "attacker_role": "ST",
        "attacker_market_value": 44000000,
        "attacker_height": 180,
        "attacker_skill_quality": 0.8,
        "defenders": [
          "Mamadou Sarr",
          "Jon Martin"
        ],
        "defender_roles": [
          "CB",
          "CB"
        ],
        "def_skill_quality_avg": 0.669,
        "duel_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "numerical_situation": "1v2",
        "duel_win_rate": 0.193,
        "xg_contribution": 0.1568,
        "xg_multiplier": 0.9893,
        "shots_in_zone": 2.1,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.3,
        "aerial_duels": 3,
        "aerial_won": 1.6,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.8,
        "pressing_intensity_on_attacker": "MEDIUM",
        "defender_stats": [
          {
            "player": "Mamadou Sarr",
            "role": "CB",
            "market_value": 24000000,
            "tackles_attempted": 1.1,
            "tackles_won": 1.0,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 1.1,
            "clearances_in_zone": 0.9,
            "aerial_duels_won": 0.7,
            "defensive_success_rate": 0.807
          },
          {
            "player": "Jon Martin",
            "role": "CB",
            "market_value": 24000000,
            "tackles_attempted": 1.1,
            "tackles_won": 1.0,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 1.1,
            "clearances_in_zone": 0.9,
            "aerial_duels_won": 0.7,
            "defensive_success_rate": 0.807
          }
        ],
        "duel_analysis": "Nico Williams (ST) is evenly matched against Mamadou Sarr and Jon Martin in a 2-defender block. Duel win probability: 19%. The quality gap is significant (€44M vs €24M avg). Matchup xG multiplier ×0.99 (×1.00 = his usual level). Projected xG contribution: 0.157 — with neither side clearly dominant."
      },
      {
        "attacker": "Álex Berenguer",
        "attacker_role": "ST",
        "attacker_market_value": 4099999,
        "attacker_height": 175,
        "attacker_skill_quality": 0.451,
        "defenders": [
          "Mamadou Sarr",
          "Jon Martin"
        ],
        "defender_roles": [
          "CB",
          "CB"
        ],
        "def_skill_quality_avg": 0.669,
        "duel_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "numerical_situation": "1v2",
        "duel_win_rate": 0.18,
        "xg_contribution": 0.1248,
        "xg_multiplier": 0.7289,
        "shots_in_zone": 2.0,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.3,
        "aerial_duels": 3,
        "aerial_won": 1.4,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.5,
        "pressing_intensity_on_attacker": "MEDIUM",
        "defender_stats": [
          {
            "player": "Mamadou Sarr",
            "role": "CB",
            "market_value": 24000000,
            "tackles_attempted": 1.1,
            "tackles_won": 1.0,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 1.1,
            "clearances_in_zone": 0.9,
            "aerial_duels_won": 0.8,
            "defensive_success_rate": 0.82
          },
          {
            "player": "Jon Martin",
            "role": "CB",
            "market_value": 24000000,
            "tackles_attempted": 1.1,
            "tackles_won": 1.0,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 1.1,
            "clearances_in_zone": 0.9,
            "aerial_duels_won": 0.8,
            "defensive_success_rate": 0.82
          }
        ],
        "duel_analysis": "Álex Berenguer (ST) is heavily outmatched defensively against Mamadou Sarr and Jon Martin in a 2-defender block. Duel win probability: 18%. The quality gap is significant (€4M vs €24M avg). Matchup xG multiplier ×0.73 (×1.00 = his usual level). Projected xG contribution: 0.125 — with very limited chance creation expected."
      },
      {
        "attacker": "Maroan Sannadi",
        "attacker_role": "ST",
        "attacker_market_value": 2800000,
        "attacker_height": 192,
        "attacker_skill_quality": 0.437,
        "defenders": [
          "Mamadou Sarr",
          "Jon Martin"
        ],
        "defender_roles": [
          "CB",
          "CB"
        ],
        "def_skill_quality_avg": 0.669,
        "duel_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "numerical_situation": "1v2",
        "duel_win_rate": 0.18,
        "xg_contribution": 0.1531,
        "xg_multiplier": 0.8198,
        "shots_in_zone": 2.0,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.3,
        "aerial_duels": 3,
        "aerial_won": 2.0,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.4,
        "pressing_intensity_on_attacker": "MEDIUM",
        "defender_stats": [
          {
            "player": "Mamadou Sarr",
            "role": "CB",
            "market_value": 24000000,
            "tackles_attempted": 1.1,
            "tackles_won": 1.0,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 1.1,
            "clearances_in_zone": 0.9,
            "aerial_duels_won": 0.5,
            "defensive_success_rate": 0.82
          },
          {
            "player": "Jon Martin",
            "role": "CB",
            "market_value": 24000000,
            "tackles_attempted": 1.1,
            "tackles_won": 1.0,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 1.1,
            "clearances_in_zone": 0.9,
            "aerial_duels_won": 0.5,
            "defensive_success_rate": 0.82
          }
        ],
        "duel_analysis": "Maroan Sannadi (ST) faces tough defensive resistance against Mamadou Sarr and Jon Martin in a 2-defender block. Duel win probability: 18%. The quality gap is significant (€3M vs €24M avg). Matchup xG multiplier ×0.82 (×1.00 = his usual level). Projected xG contribution: 0.153 — and is restricted in space and time on the ball."
      },
      {
        "attacker": "Iñaki Williams",
        "attacker_role": "ST",
        "attacker_market_value": 7300000,
        "attacker_height": 186,
        "attacker_skill_quality": 0.49,
        "defenders": [
          "Mamadou Sarr",
          "Jon Martin"
        ],
        "defender_roles": [
          "CB",
          "CB"
        ],
        "def_skill_quality_avg": 0.669,
        "duel_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "numerical_situation": "1v2",
        "duel_win_rate": 0.18,
        "xg_contribution": 0.2584,
        "xg_multiplier": 0.8195,
        "shots_in_zone": 2.0,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.3,
        "aerial_duels": 3,
        "aerial_won": 1.8,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.5,
        "pressing_intensity_on_attacker": "MEDIUM",
        "defender_stats": [
          {
            "player": "Mamadou Sarr",
            "role": "CB",
            "market_value": 24000000,
            "tackles_attempted": 1.1,
            "tackles_won": 1.0,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 1.1,
            "clearances_in_zone": 0.9,
            "aerial_duels_won": 0.6,
            "defensive_success_rate": 0.82
          },
          {
            "player": "Jon Martin",
            "role": "CB",
            "market_value": 24000000,
            "tackles_attempted": 1.1,
            "tackles_won": 1.0,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 1.1,
            "clearances_in_zone": 0.9,
            "aerial_duels_won": 0.6,
            "defensive_success_rate": 0.82
          }
        ],
        "duel_analysis": "Iñaki Williams (ST) faces tough defensive resistance against Mamadou Sarr and Jon Martin in a 2-defender block. Duel win probability: 18%. The quality gap is significant (€7M vs €24M avg). Matchup xG multiplier ×0.82 (×1.00 = his usual level). Projected xG contribution: 0.258 — and is restricted in space and time on the ball."
      },
      {
        "attacker": "Mikel Jauregizar",
        "attacker_role": "CDM",
        "attacker_market_value": 26000000,
        "attacker_height": 177,
        "attacker_skill_quality": 0.686,
        "defenders": [
          "Beñat Turrientes"
        ],
        "defender_roles": [
          "CDM"
        ],
        "def_skill_quality_avg": 0.529,
        "duel_zone": "CDM vs CDM",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.489,
        "xg_contribution": 0.0755,
        "xg_multiplier": 1.1013,
        "shots_in_zone": 1.1,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.9,
        "aerial_duels": 2,
        "aerial_won": 1.0,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.2,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Beñat Turrientes",
            "role": "CDM",
            "market_value": 10600000,
            "tackles_attempted": 2.0,
            "tackles_won": 1.6,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 0.8,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 1.0,
            "defensive_success_rate": 0.511
          }
        ],
        "duel_analysis": "Mikel Jauregizar (CDM) is slightly favored against Beñat Turrientes in a direct 1v1 contest. Duel win probability: 49%. The quality gap is significant (€26M vs €11M avg). Matchup xG multiplier ×1.10 (×1.00 = his usual level). Projected xG contribution: 0.076 — creating consistent moderate threat."
      },
      {
        "attacker": "Beñat Gerenabarrena",
        "attacker_role": "CDM",
        "attacker_market_value": 5200000,
        "attacker_height": 173,
        "attacker_skill_quality": 0.465,
        "defenders": [
          "Beñat Turrientes"
        ],
        "defender_roles": [
          "CDM"
        ],
        "def_skill_quality_avg": 0.529,
        "duel_zone": "CDM vs CDM",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.362,
        "xg_contribution": 0.0311,
        "xg_multiplier": 0.915,
        "shots_in_zone": 0.9,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.6,
        "aerial_duels": 2,
        "aerial_won": 0.9,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.2,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Beñat Turrientes",
            "role": "CDM",
            "market_value": 10600000,
            "tackles_attempted": 2.0,
            "tackles_won": 1.7,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 0.8,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 1.1,
            "defensive_success_rate": 0.638
          }
        ],
        "duel_analysis": "Beñat Gerenabarrena (CDM) faces tough defensive resistance against Beñat Turrientes in a direct 1v1 contest. Duel win probability: 36%.  Matchup xG multiplier ×0.92 (×1.00 = his usual level). Projected xG contribution: 0.031 — and is restricted in space and time on the ball."
      }
    ],
    "away_attacking_duels": [
      {
        "attacker": "Carlos Soler",
        "attacker_role": "LW",
        "attacker_market_value": 6600000,
        "attacker_height": 180,
        "attacker_skill_quality": 0.482,
        "defenders": [
          "Yuri Berchiche"
        ],
        "defender_roles": [
          "RB"
        ],
        "def_skill_quality_avg": 0.437,
        "duel_zone": "Left Wing vs Right Back — Flank Battle",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.496,
        "xg_contribution": 0.1374,
        "xg_multiplier": 1.0234,
        "shots_in_zone": 2.0,
        "dribbles_attempted": 3,
        "dribbles_successful": 1.3,
        "aerial_duels": 2,
        "aerial_won": 1.1,
        "crosses_in_zone": 1.9,
        "fouls_drawn": 1.1,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Yuri Berchiche",
            "role": "RB",
            "market_value": 910000,
            "tackles_attempted": 1.9,
            "tackles_won": 1.5,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.6,
            "aerial_duels_won": 0.9,
            "defensive_success_rate": 0.504
          }
        ],
        "duel_analysis": "Carlos Soler (LW) is evenly matched against Yuri Berchiche in a direct 1v1 contest. Duel win probability: 50%.  Matchup xG multiplier ×1.02 (×1.00 = his usual level). Projected xG contribution: 0.137 — with neither side clearly dominant."
      },
      {
        "attacker": "Luka Sučić",
        "attacker_role": "CAM",
        "attacker_market_value": 16300000,
        "attacker_height": 185,
        "attacker_skill_quality": 0.593,
        "defenders": [
          "Mikel Jauregizar",
          "Beñat Gerenabarrena"
        ],
        "defender_roles": [
          "CDM",
          "CDM"
        ],
        "def_skill_quality_avg": 0.575,
        "duel_zone": "Attacking Mid vs Double Pivot — Tight Space Battle",
        "numerical_situation": "1v2",
        "duel_win_rate": 0.281,
        "xg_contribution": 0.1567,
        "xg_multiplier": 1.061,
        "shots_in_zone": 1.8,
        "dribbles_attempted": 3,
        "dribbles_successful": 0.7,
        "aerial_duels": 2,
        "aerial_won": 1.2,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.5,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Mikel Jauregizar",
            "role": "CDM",
            "market_value": 26000000,
            "tackles_attempted": 1.1,
            "tackles_won": 0.9,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 1.1,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 0.4,
            "defensive_success_rate": 0.719
          },
          {
            "player": "Beñat Gerenabarrena",
            "role": "CDM",
            "market_value": 5200000,
            "tackles_attempted": 1.0,
            "tackles_won": 0.9,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 0.4,
            "defensive_success_rate": 0.719
          }
        ],
        "duel_analysis": "Luka Sučić (CAM) is slightly favored against Mikel Jauregizar and Beñat Gerenabarrena in a 2-defender block. Duel win probability: 28%.  Matchup xG multiplier ×1.06 (×1.00 = his usual level). Projected xG contribution: 0.157 — creating consistent moderate threat."
      },
      {
        "attacker": "Mikel Oyarzabal",
        "attacker_role": "ST",
        "attacker_market_value": 27000000,
        "attacker_height": 181,
        "attacker_skill_quality": 0.694,
        "defenders": [
          "Aymeric Laporte",
          "Dani Vivian"
        ],
        "defender_roles": [
          "CB",
          "CB"
        ],
        "def_skill_quality_avg": 0.558,
        "duel_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "numerical_situation": "1v2",
        "duel_win_rate": 0.217,
        "xg_contribution": 0.2937,
        "xg_multiplier": 1.0246,
        "shots_in_zone": 2.2,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.4,
        "aerial_duels": 3,
        "aerial_won": 1.6,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.7,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Aymeric Laporte",
            "role": "CB",
            "market_value": 8400000,
            "tackles_attempted": 1.0,
            "tackles_won": 0.9,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 0.8,
            "clearances_in_zone": 0.7,
            "aerial_duels_won": 0.7,
            "defensive_success_rate": 0.783
          },
          {
            "player": "Dani Vivian",
            "role": "CB",
            "market_value": 18200000,
            "tackles_attempted": 1.0,
            "tackles_won": 0.9,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 1.0,
            "clearances_in_zone": 0.9,
            "aerial_duels_won": 0.7,
            "defensive_success_rate": 0.783
          }
        ],
        "duel_analysis": "Mikel Oyarzabal (ST) is evenly matched against Aymeric Laporte and Dani Vivian in a 2-defender block. Duel win probability: 22%.  Matchup xG multiplier ×1.02 (×1.00 = his usual level). Projected xG contribution: 0.294 — with neither side clearly dominant."
      },
      {
        "attacker": "Gonçalo Guedes",
        "attacker_role": "ST",
        "attacker_market_value": 5700000,
        "attacker_height": 179,
        "attacker_skill_quality": 0.471,
        "defenders": [
          "Aymeric Laporte",
          "Dani Vivian"
        ],
        "defender_roles": [
          "CB",
          "CB"
        ],
        "def_skill_quality_avg": 0.558,
        "duel_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "numerical_situation": "1v2",
        "duel_win_rate": 0.18,
        "xg_contribution": 0.2226,
        "xg_multiplier": 0.865,
        "shots_in_zone": 2.0,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.3,
        "aerial_duels": 3,
        "aerial_won": 1.5,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.5,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Aymeric Laporte",
            "role": "CB",
            "market_value": 8400000,
            "tackles_attempted": 1.0,
            "tackles_won": 0.9,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 0.8,
            "clearances_in_zone": 0.7,
            "aerial_duels_won": 0.7,
            "defensive_success_rate": 0.82
          },
          {
            "player": "Dani Vivian",
            "role": "CB",
            "market_value": 18200000,
            "tackles_attempted": 1.0,
            "tackles_won": 1.0,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 1.0,
            "clearances_in_zone": 0.9,
            "aerial_duels_won": 0.7,
            "defensive_success_rate": 0.82
          }
        ],
        "duel_analysis": "Gonçalo Guedes (ST) faces tough defensive resistance against Aymeric Laporte and Dani Vivian in a 2-defender block. Duel win probability: 18%.  Matchup xG multiplier ×0.87 (×1.00 = his usual level). Projected xG contribution: 0.223 — and is restricted in space and time on the ball."
      },
      {
        "attacker": "Beñat Turrientes",
        "attacker_role": "CDM",
        "attacker_market_value": 10600000,
        "attacker_height": 179,
        "attacker_skill_quality": 0.529,
        "defenders": [
          "Mikel Jauregizar"
        ],
        "defender_roles": [
          "CDM"
        ],
        "def_skill_quality_avg": 0.686,
        "duel_zone": "CDM vs CDM",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.351,
        "xg_contribution": 0.0693,
        "xg_multiplier": 0.8987,
        "shots_in_zone": 0.9,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.6,
        "aerial_duels": 2,
        "aerial_won": 1.0,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.3,
        "pressing_intensity_on_attacker": "MEDIUM",
        "defender_stats": [
          {
            "player": "Mikel Jauregizar",
            "role": "CDM",
            "market_value": 26000000,
            "tackles_attempted": 2.1,
            "tackles_won": 1.8,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 1.1,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 1.0,
            "defensive_success_rate": 0.649
          }
        ],
        "duel_analysis": "Beñat Turrientes (CDM) faces tough defensive resistance against Mikel Jauregizar in a direct 1v1 contest. Duel win probability: 35%. The quality gap is significant (€11M vs €26M avg). Matchup xG multiplier ×0.90 (×1.00 = his usual level). Projected xG contribution: 0.069 — and is restricted in space and time on the ball."
      },
      {
        "attacker": "Jon Gorrotxategi",
        "attacker_role": "CDM",
        "attacker_market_value": 27000000,
        "attacker_height": 177,
        "attacker_skill_quality": 0.694,
        "defenders": [
          "Mikel Jauregizar"
        ],
        "defender_roles": [
          "CDM"
        ],
        "def_skill_quality_avg": 0.686,
        "duel_zone": "CDM vs CDM",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.424,
        "xg_contribution": 0.0325,
        "xg_multiplier": 1.0056,
        "shots_in_zone": 1.0,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.7,
        "aerial_duels": 2,
        "aerial_won": 1.0,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.3,
        "pressing_intensity_on_attacker": "MEDIUM",
        "defender_stats": [
          {
            "player": "Mikel Jauregizar",
            "role": "CDM",
            "market_value": 26000000,
            "tackles_attempted": 2.1,
            "tackles_won": 1.7,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 1.1,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 1.0,
            "defensive_success_rate": 0.576
          }
        ],
        "duel_analysis": "Jon Gorrotxategi (CDM) is evenly matched against Mikel Jauregizar in a direct 1v1 contest. Duel win probability: 42%.  Matchup xG multiplier ×1.01 (×1.00 = his usual level). Projected xG contribution: 0.032 — with neither side clearly dominant."
      }
    ],
    "midfield_battle": {
      "home_midfield_power": 0.55,
      "away_midfield_power": 0.6,
      "home_creative_power": 0.583,
      "away_creative_power": 0.569,
      "home_defensive_power": 0.559,
      "away_defensive_power": 0.52,
      "home_dominance_ratio": 0.479,
      "home_midfield_count": 2,
      "away_midfield_count": 4,
      "home_midfield_players": [
        "Mikel Jauregizar",
        "Beñat Gerenabarrena"
      ],
      "away_midfield_players": [
        "Beñat Turrientes",
        "Jon Gorrotxategi",
        "Luka Sučić",
        "Carlos Soler"
      ],
      "possession_advantage": "neutral",
      "estimated_possession_home_pct": 49.8,
      "estimated_possession_away_pct": 50.2,
      "home_pressing_actions_per_90": 7.1,
      "away_pressing_actions_per_90": 7.0,
      "home_key_passes_projected": 5.0,
      "away_key_passes_projected": 4.9,
      "home_throughball_threat": 2.3,
      "away_throughball_threat": 2.3,
      "key_personal_duel": "Mikel Jauregizar vs Jon Gorrotxategi",
      "midfield_lambda_factor_home": 0.999,
      "midfield_lambda_factor_away": 1.005
    },
    "formation_analysis": {
      "home_formation": "4-2-3-1",
      "away_formation": "4-2-3-1",
      "home_tactical_bonus": 0.0,
      "away_tactical_bonus": 0.0,
      "formation_verdict": "Tactical parity between 4-2-3-1 and 4-2-3-1. Match outcome driven primarily by individual player quality."
    },
    "home_lambda": 1.729,
    "away_lambda": 1.255,
    "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": {
      "Nico Williams": {
        "opponents": [
          "Mamadou Sarr",
          "Jon Martin"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "attacking_duel"
      },
      "Álex Berenguer": {
        "opponents": [
          "Mamadou Sarr",
          "Jon Martin"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "attacking_duel"
      },
      "Maroan Sannadi": {
        "opponents": [
          "Mamadou Sarr",
          "Jon Martin"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "attacking_duel"
      },
      "Iñaki Williams": {
        "opponents": [
          "Mamadou Sarr",
          "Jon Martin"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "attacking_duel"
      },
      "Mikel Jauregizar": {
        "opponents": [
          "Beñat Turrientes",
          "Luka Sučić",
          "Jon Gorrotxategi"
        ],
        "primary_zone": "CDM vs CDM",
        "source": "attacking_duel, defensive_duel, midfield_pairing"
      },
      "Beñat Gerenabarrena": {
        "opponents": [
          "Beñat Turrientes",
          "Luka Sučić",
          "Carlos Soler"
        ],
        "primary_zone": "CDM vs CDM",
        "source": "attacking_duel, defensive_duel, midfield_pairing"
      },
      "Yuri Berchiche": {
        "opponents": [
          "Carlos Soler"
        ],
        "primary_zone": "Left Wing vs Right Back — Flank Battle",
        "source": "defensive_duel"
      },
      "Aymeric Laporte": {
        "opponents": [
          "Mikel Oyarzabal",
          "Gonçalo Guedes"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "defensive_duel"
      },
      "Dani Vivian": {
        "opponents": [
          "Mikel Oyarzabal",
          "Gonçalo Guedes"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "defensive_duel"
      },
      "Unai Simón": {
        "opponents": [
          "Mikel Oyarzabal",
          "Gonçalo Guedes"
        ],
        "primary_zone": "Shape fallback",
        "source": "formation_fallback"
      },
      "Hugo Rincón": {
        "opponents": [
          "Mikel Oyarzabal"
        ],
        "primary_zone": "Shape fallback",
        "source": "formation_fallback"
      }
    },
    "away_player_antagonists": {
      "Mamadou Sarr": {
        "opponents": [
          "Nico Williams",
          "Álex Berenguer",
          "Maroan Sannadi",
          "Iñaki Williams"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "defensive_duel"
      },
      "Jon Martin": {
        "opponents": [
          "Nico Williams",
          "Álex Berenguer",
          "Maroan Sannadi",
          "Iñaki Williams"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "defensive_duel"
      },
      "Beñat Turrientes": {
        "opponents": [
          "Mikel Jauregizar",
          "Beñat Gerenabarrena"
        ],
        "primary_zone": "CDM vs CDM",
        "source": "defensive_duel, attacking_duel, midfield_pairing"
      },
      "Carlos Soler": {
        "opponents": [
          "Yuri Berchiche",
          "Beñat Gerenabarrena"
        ],
        "primary_zone": "Left Wing vs Right Back — Flank Battle",
        "source": "attacking_duel, midfield_pairing"
      },
      "Luka Sučić": {
        "opponents": [
          "Mikel Jauregizar",
          "Beñat Gerenabarrena"
        ],
        "primary_zone": "Attacking Mid vs Double Pivot — Tight Space Battle",
        "source": "attacking_duel, midfield_pairing"
      },
      "Mikel Oyarzabal": {
        "opponents": [
          "Aymeric Laporte",
          "Dani Vivian"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "attacking_duel"
      },
      "Gonçalo Guedes": {
        "opponents": [
          "Aymeric Laporte",
          "Dani Vivian"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "attacking_duel"
      },
      "Jon Gorrotxategi": {
        "opponents": [
          "Mikel Jauregizar"
        ],
        "primary_zone": "CDM vs CDM",
        "source": "attacking_duel, midfield_pairing"
      },
      "Álex Remiro": {
        "opponents": [
          "Nico Williams",
          "Iñaki Williams"
        ],
        "primary_zone": "Shape fallback",
        "source": "formation_fallback"
      },
      "Jon Aramburu": {
        "opponents": [
          "Álex Berenguer"
        ],
        "primary_zone": "Shape fallback",
        "source": "formation_fallback"
      },
      "Sergio Gómez": {
        "opponents": [
          "Maroan Sannadi"
        ],
        "primary_zone": "Shape fallback",
        "source": "formation_fallback"
      }
    },
    "key_tactical_insight": "Midfield is evenly contested — Mikel Jauregizar vs Jon Gorrotxategi will be the pivotal duel. Total antagonist xG — Home: 0.80, Away: 0.91. 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.3418,
      "ha_source": "estimated:league",
      "home_gk_opposition_factor": 0.9777,
      "away_gk_opposition_factor": 0.9273,
      "home_set_piece_bonus": 0.1381,
      "away_set_piece_bonus": 0.061,
      "home_defensive_solidity_vs": 0.9393,
      "away_defensive_solidity_vs": 0.9845,
      "home_midfield_factor": 0.999,
      "away_midfield_factor": 1.005,
      "stage_discount": 1.0,
      "quality_gap_applied": false,
      "home_avg_quality": 0.5326,
      "away_avg_quality": 0.5942,
      "avg_quality_gap": -0.0617,
      "squad_value_gap_log": -0.3214,
      "top5_value_gap_log": -0.1191,
      "attack_value_gap_log": -0.0375,
      "elite_count_gap": 1,
      "combined_quality_gap": -0.0728,
      "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.7997,
          "n_duels": 6,
          "duel_confidence": 0.75,
          "result": 0.9373
        },
        {
          "label": "midfield_factor",
          "factor": 0.999,
          "result": 0.9363
        },
        {
          "label": "formation_bonus",
          "factor": 1.0,
          "result": 0.9363
        },
        {
          "label": "home_advantage",
          "factor": 1.3418,
          "result": 1.2564
        },
        {
          "label": "standing_factor",
          "factor": 1.0291,
          "result": 1.2929
        },
        {
          "label": "gk_opposition",
          "factor": 0.9777,
          "result": 1.2641
        },
        {
          "label": "defensive_solidity",
          "factor": 0.9393,
          "result": 1.1874
        },
        {
          "label": "set_piece_bonus",
          "bonus": 0.1381,
          "result": 1.3255
        },
        {
          "label": "engine_clamp",
          "pre": 1.3255,
          "result": 1.3255,
          "band": [
            0.6,
            4.0
          ],
          "clamped": false
        },
        {
          "label": "quality_gap",
          "applied": false,
          "combined_quality_gap": -0.0728,
          "factor": 1.0,
          "pre": 1.3255,
          "result": 1.3255
        },
        {
          "label": "stage_discount",
          "applied": false,
          "factor": 1.0,
          "result": 1.3255
        },
        {
          "label": "bench_bonus",
          "side": "home",
          "bonus": 0.1542,
          "result": 1.4792
        },
        {
          "label": "fbref_blend",
          "side": "home",
          "applied": true,
          "blending_weight": 0.228,
          "empirical_lambda": 0.5556,
          "result": 1.2686
        },
        {
          "label": "router_clamp",
          "pre": 1.2686,
          "result": 1.269,
          "band": [
            0.65,
            4.8
          ]
        },
        {
          "label": "second_leg",
          "applied": true,
          "factor": 1.1,
          "result": 1.396
        },
        {
          "label": "h2h_adjustment",
          "applied": false,
          "multiplier": 1.0,
          "pre": 1.396,
          "result": 1.396,
          "available": true
        },
        {
          "label": "mismatch_pressure",
          "applied": false,
          "reason": "quality gap below 0.30",
          "result": 1.396
        },
        {
          "label": "underdog_floor",
          "applied": false,
          "mode": "disabled_ablation",
          "result": 1.396
        },
        {
          "label": "final_clamp",
          "applied": false,
          "pre": 1.396,
          "result": 1.396,
          "band": [
            0.65,
            4.8
          ]
        },
        {
          "label": "competition_calibration",
          "applied": true,
          "reason": "competition_intensity_calibration",
          "samples": 124,
          "scale": 1.225,
          "observed_total_goals": 2.984,
          "result": 1.729
        }
      ],
      "away_lambda_chain": [
        {
          "label": "league_anchor",
          "value": 1.35
        },
        {
          "label": "duel_blend",
          "raw_xg": 0.9122,
          "n_duels": 6,
          "duel_confidence": 0.75,
          "result": 1.0217
        },
        {
          "label": "midfield_factor",
          "factor": 1.005,
          "result": 1.0268
        },
        {
          "label": "formation_bonus",
          "factor": 1.0,
          "result": 1.0268
        },
        {
          "label": "home_advantage",
          "factor": 1.0,
          "result": 1.0268
        },
        {
          "label": "standing_factor",
          "factor": 1.0055,
          "result": 1.0324
        },
        {
          "label": "gk_opposition",
          "factor": 0.9273,
          "result": 0.9573
        },
        {
          "label": "defensive_solidity",
          "factor": 0.9845,
          "result": 0.9425
        },
        {
          "label": "set_piece_bonus",
          "bonus": 0.061,
          "result": 1.0035
        },
        {
          "label": "engine_clamp",
          "pre": 1.0035,
          "result": 1.0035,
          "band": [
            0.6,
            4.0
          ],
          "clamped": false
        },
        {
          "label": "quality_gap",
          "applied": false,
          "combined_quality_gap": -0.0728,
          "factor": 1.0,
          "pre": 1.0035,
          "result": 1.0035
        },
        {
          "label": "stage_discount",
          "applied": false,
          "factor": 1.0,
          "result": 1.0035
        },
        {
          "label": "bench_bonus",
          "side": "away",
          "bonus": 0.22,
          "result": 1.223
        },
        {
          "label": "fbref_blend",
          "side": "away",
          "applied": true,
          "blending_weight": 0.228,
          "empirical_lambda": 0.5556,
          "result": 1.0708
        },
        {
          "label": "router_clamp",
          "pre": 1.0708,
          "result": 1.071,
          "band": [
            0.65,
            4.8
          ]
        },
        {
          "label": "second_leg",
          "applied": true,
          "factor": 0.97,
          "result": 1.039
        },
        {
          "label": "h2h_adjustment",
          "applied": false,
          "multiplier": 1.0,
          "pre": 1.039,
          "result": 1.039,
          "available": true
        },
        {
          "label": "mismatch_pressure",
          "applied": false,
          "reason": "quality gap below 0.30",
          "result": 1.039
        },
        {
          "label": "underdog_floor",
          "applied": false,
          "mode": "disabled_ablation",
          "result": 1.039
        },
        {
          "label": "final_clamp",
          "applied": false,
          "pre": 1.039,
          "result": 1.039,
          "band": [
            0.65,
            4.8
          ]
        },
        {
          "label": "competition_calibration",
          "applied": true,
          "reason": "competition_intensity_calibration",
          "samples": 124,
          "scale": 1.225,
          "observed_total_goals": 2.984,
          "result": 1.255
        }
      ],
      "home_bench_lambda_bonus": 0.1542,
      "away_bench_lambda_bonus": 0.22,
      "home_bench_players_modelled": 7,
      "away_bench_players_modelled": 7,
      "fbref_team_priors": {
        "applied": true,
        "home_squad": "Athletic Club",
        "away_squad": "Real Sociedad",
        "home_goals_per90": 1.0,
        "away_goals_against_per90": 0.75,
        "away_goals_per90": 0.75,
        "home_goals_against_per90": 1.0,
        "home_empirical_lambda": 0.556,
        "away_empirical_lambda": 0.556,
        "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.396,
      "pre_competitive_floor_away_lambda": 1.039,
      "pre_calibration_home_lambda": 1.2686,
      "pre_calibration_away_lambda": 1.0708,
      "competition_calibration_applied": true,
      "competition_calibration_reason": "competition_intensity_calibration",
      "competition_calibration_samples": 124,
      "competition_observed_total_goals": 2.984,
      "competition_calibration_scale": 1.225,
      "neutral_share_preserved": false,
      "final_home_lambda": 1.729,
      "final_away_lambda": 1.255
    }
  },
  "home_standing": {
    "available": true,
    "team_position": 7,
    "opponent_position": 5,
    "standing_lambda_multiplier": 1.0291,
    "attack_index": 0.997,
    "defense_concede_index": 1.087,
    "form_multiplier": 0.98,
    "team_attack_rate_contextual": 1.51,
    "opp_defense_rate_contextual": 1.64,
    "team_ppg": 1.35,
    "opponent_ppg": 1.7
  },
  "away_standing": {
    "available": true,
    "team_position": 5,
    "opponent_position": 7,
    "standing_lambda_multiplier": 1.0055,
    "attack_index": 1.118,
    "defense_concede_index": 0.898,
    "form_multiplier": 1.02,
    "team_attack_rate_contextual": 1.69,
    "opp_defense_rate_contextual": 1.36,
    "team_ppg": 1.7,
    "opponent_ppg": 1.35
  },
  "xgboost_reasoning": {
    "summary": "Antagonist + XGBoost match analysis for Athletic Club vs Real Sociedad. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-2-3-1 vs 4-2-3-1 (duel lambdas: Home 1.269, Away 1.071). Final calibrated Poisson lambdas: Home 1.729, Away 1.255 (most likely score 2-1).",
    "competition": "LaLiga",
    "model_coverage": {
      "home_starters_count": 11,
      "home_xgboost_players": 11,
      "home_fbref_players": 10,
      "away_starters_count": 11,
      "away_xgboost_players": 11,
      "away_fbref_players": 10,
      "home_bench_modelled": 7,
      "away_bench_modelled": 7
    },
    "team_priors": {
      "applied": true,
      "home_squad": "Athletic Club",
      "away_squad": "Real Sociedad",
      "home_goals_per90": 1.0,
      "away_goals_against_per90": 0.75,
      "away_goals_per90": 0.75,
      "home_goals_against_per90": 1.0,
      "home_empirical_lambda": 0.556,
      "away_empirical_lambda": 0.556,
      "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.729,
      "away_lambda": 1.255,
      "micro_duel_home_lambda": 1.269,
      "micro_duel_away_lambda": 1.071
    },
    "calibration_and_pressure": {
      "competition_calibration_applied": true,
      "competition_calibration_scale": 1.225,
      "mismatch_pressure_applied": false,
      "underdog_floor_applied": false
    }
  },
  "timestamp": "2026-11-01T14:32:26Z",
  "outcome_baseline": null,
  "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
  }
}