{
  "match_info": {
    "home_team": "Real Madrid",
    "away_team": "Villarreal",
    "tournament": "LaLiga",
    "date": "20261011",
    "timezone": "America/New_York",
    "home_formation": "3-4-2-1",
    "away_formation": "5-4-1",
    "lineup_status": "projected_from_squad",
    "lineup_source": "/teams/get-squad",
    "lineup_confirmed": false,
    "lineup_confidence": 0.45
  },
  "prediction": {
    "most_likely_score": "3-1",
    "home_goals": 3,
    "away_goals": 1,
    "most_likely_score_probability": 0.0754,
    "match_resolution": "regulation",
    "predicted_winner": "Real Madrid",
    "tiebreaker": {
      "applies": false,
      "method": "none",
      "regulation_draw_probability": 0.1183,
      "shootout_home_win_probability": null,
      "shootout_away_win_probability": null,
      "penalty_home_goals": null,
      "penalty_away_goals": null,
      "penalty_score": null,
      "penalty_winner": null,
      "penalty_winner_goals": null,
      "penalty_loser_goals": null,
      "penalty_result": null,
      "home_advance_probability": null,
      "away_advance_probability": null,
      "projected_winner": null,
      "projected_winner_probability": null,
      "final_score_after_penalties": null,
      "reason": "Tie-breaker not required for this match context."
    },
    "top_5_scorelines": [
      {
        "score": "3-1",
        "probability": 0.0754
      },
      {
        "score": "4-1",
        "probability": 0.0667
      },
      {
        "score": "2-1",
        "probability": 0.0639
      },
      {
        "score": "3-0",
        "probability": 0.0559
      },
      {
        "score": "3-2",
        "probability": 0.0508
      }
    ],
    "scoreline_probabilities": {
      "0-0": 0.0077,
      "0-1": 0.0101,
      "0-2": 0.0069,
      "0-3": 0.0031,
      "0-4": 0.001,
      "1-0": 0.0267,
      "1-1": 0.0363,
      "1-2": 0.0244,
      "1-3": 0.0109,
      "1-4": 0.0037,
      "1-5": 0.001,
      "2-0": 0.0474,
      "2-1": 0.0639,
      "2-2": 0.0431,
      "2-3": 0.0194,
      "2-4": 0.0065,
      "2-5": 0.0018,
      "3-0": 0.0559,
      "3-1": 0.0754,
      "3-2": 0.0508,
      "3-3": 0.0228,
      "3-4": 0.0077,
      "3-5": 0.0021,
      "4-0": 0.0495,
      "4-1": 0.0667,
      "4-2": 0.045,
      "4-3": 0.0202,
      "4-4": 0.0068,
      "4-5": 0.0018,
      "5-0": 0.035,
      "5-1": 0.0472,
      "5-2": 0.0318,
      "5-3": 0.0143,
      "5-4": 0.0048,
      "5-5": 0.0013,
      "6-0": 0.0206,
      "6-1": 0.0278,
      "6-2": 0.0188,
      "6-3": 0.0084,
      "6-4": 0.0028,
      "6-5": 0.0008,
      "7-0": 0.0104,
      "7-1": 0.0141,
      "7-2": 0.0095,
      "7-3": 0.0043,
      "7-4": 0.0014,
      "8-0": 0.0046,
      "8-1": 0.0062,
      "8-2": 0.0042,
      "8-3": 0.0019,
      "8-4": 0.0006,
      "9-0": 0.0018,
      "9-1": 0.0024,
      "9-2": 0.0016,
      "9-3": 0.0007
    },
    "outcome": {
      "home_win": 0.7788,
      "draw": 0.1183,
      "away_win": 0.1029
    },
    "markets": {
      "over_2_5_goals": 0.8649,
      "under_2_5_goals": 0.1351,
      "btts_yes": 0.7188,
      "btts_no": 0.2812,
      "home_clean_sheet": 0.2598,
      "away_clean_sheet": 0.0292
    },
    "home_ratings": {
      "DR": 6.8,
      "MCR": 7.02,
      "ATR": 7.03,
      "GK": 7.24
    },
    "away_ratings": {
      "DR": 6.83,
      "MCR": 7.02,
      "ATR": 6.84,
      "GK": 6.4
    },
    "insights": {
      "summary": "Antagonist matchup analysis for Real Madrid vs Villarreal. Most likely scoreline: 3-1. Lambdas derived from 7 home and 7 away individual player duels.",
      "key_player": "Projected scorer(s): Jude Bellingham, Kylian Mbappé, Vinícius Júnior, Georges Mikautadze",
      "tactical_analysis": "Tactical parity between 3-4-2-1 and 5-4-1. Match outcome driven primarily by individual player quality. Home midfield dominates with ~52% possession expected (Jude Bellingham vs Alberto Moleiro). Total antagonist xG — Home: 1.76, Away: 1.13. 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.73,
    "home_lambda": 3.538,
    "away_lambda": 1.348,
    "modal_scoreline": null,
    "modal_scoreline_probability": null,
    "headline_policy": null
  },
  "pregame_baseline": {
    "fair_win_probability": {
      "home_win": 0.7788,
      "draw": 0.1183,
      "away_win": 0.1029
    },
    "favorite": "Real Madrid",
    "favorite_win_probability": 0.7788,
    "fair_spread": 2.19,
    "fair_total": 4.886,
    "prop_estimates": [
      {
        "market": "team_total_goals",
        "selection": "Real Madrid",
        "estimate": 3.538,
        "probability": null,
        "unit": "goals"
      },
      {
        "market": "team_total_goals",
        "selection": "Villarreal",
        "estimate": 1.348,
        "probability": null,
        "unit": "goals"
      },
      {
        "market": "over_2_5_goals",
        "selection": "yes",
        "estimate": 2.5,
        "probability": 0.8649,
        "unit": "probability"
      },
      {
        "market": "both_teams_to_score",
        "selection": "yes",
        "estimate": 1.0,
        "probability": 0.7188,
        "unit": "probability"
      },
      {
        "market": "clean_sheet",
        "selection": "Real Madrid",
        "estimate": 1.0,
        "probability": 0.2598,
        "unit": "probability"
      },
      {
        "market": "clean_sheet",
        "selection": "Villarreal",
        "estimate": 1.0,
        "probability": 0.0292,
        "unit": "probability"
      },
      {
        "market": "anytime_goal",
        "selection": "Kylian Mbappé (Real Madrid)",
        "estimate": 1.003,
        "probability": 0.6332,
        "unit": "xG"
      },
      {
        "market": "anytime_goal",
        "selection": "Georges Mikautadze (Villarreal)",
        "estimate": 0.4447,
        "probability": 0.359,
        "unit": "xG"
      },
      {
        "market": "assist",
        "selection": "Arda Güler (Real Madrid)",
        "estimate": 0.4467,
        "probability": 0.3603,
        "unit": "xA"
      },
      {
        "market": "assist",
        "selection": "Alberto Moleiro (Villarreal)",
        "estimate": 0.2267,
        "probability": 0.2028,
        "unit": "xA"
      }
    ],
    "expected_pace": {
      "tempo": "high",
      "expected_total_goals": 4.886,
      "expected_total_shots": 27,
      "expected_total_passes": 938,
      "expected_pressing_actions_per_90": 16.4,
      "possession_home_pct": 51.6,
      "possession_away_pct": 48.4,
      "notes": "possession projects near even"
    },
    "expected_game_script": {
      "favorite": "Real Madrid",
      "favorite_win_probability": 0.7788,
      "script": "Real Madrid is the fair winner side, but the baseline remains favorite-led: fair spread +2.19 goals and fair total 4.89.",
      "first_half": "Expect high tempo while both sides test the matchup thesis; shot baseline is about 14 first-half attempts.",
      "second_half": "If level after halftime, midfield control and bench quality should decide territory; Villarreal must keep the match inside one goal.",
      "late_game": "A Real Madrid lead likely shifts toward control and counters; a draw state keeps set pieces and transition chances live."
    },
    "key_matchup_thesis": "Real Madrid chance creation leans on Kylian Mbappé against Renato Veiga, Santiago Mouriño in Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle; possession projects near even.",
    "expected_rotation_usage_behavior": [
      "Real Madrid: starters carry the main goal usage through Jude Bellingham, Kylian Mbappé, Vinícius Júnior; bench watchlist: Rodrygo, Endrick.",
      "Villarreal: starters carry the main goal usage through Georges Mikautadze; bench watchlist: Nathan-Dylan Saliba, Tani Oluwaseyi, Nicolas Pépé.",
      "Assist usage should flow through Trent Alexander-Arnold, Kylian Mbappé, Alberto Moleiro; late lineup changes should re-score these allocations."
    ],
    "pregame_play_by_play": [
      "0-15: Real Madrid tries to establish the projected edge; track possession and first-shot share.",
      "15-45: Baseline expects high tempo, about 14 total first-half shots, and 2.44 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 Villarreal 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 Real Madrid.",
      "Villarreal 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": {
    "Real Madrid": {
      "formation": "3-4-2-1",
      "players": {
        "Thibaut Courtois": {
          "player_id": 70988,
          "position": "G",
          "position_depth": "G",
          "is_starter": true,
          "shirt_number": 1,
          "height": 200,
          "market_value": 14500000,
          "stats": {
            "saves": 3,
            "goals_prevented": -0.028,
            "rating": 7.237,
            "minutes": 90,
            "total_pass": 28,
            "accurate_pass": 24,
            "duels_won": 0,
            "total_long_balls": 7,
            "accurate_long_balls": 3,
            "touches": 36,
            "clearances": 0,
            "ball_recovery": 6,
            "high_claims": 0,
            "punches": 0.0,
            "aerial_won": 0,
            "sweeper_actions": 0,
            "sweeper_accurate": 0,
            "saves_inside_box": 0,
            "possession_lost": 4.6711,
            "duels_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "total_own_half_passes": 23,
            "accurate_own_half_passes": 22,
            "goal_rate": 0.0,
            "goals": 0,
            "assist_rate": 0.0,
            "assists": 0,
            "total_shots": 0,
            "shots_on_target": 0,
            "goalsAgainst": 0.67,
            "shotsOnTargetAgainst": 2.3333,
            "cleanSheets": 0.3333,
            "interceptions": 0,
            "tackles_won": 0,
            "crosses_total": 0,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "penaltySave": 0.0,
            "ownGoals": 0.0,
            "savePct": 71.4,
            "cleanSheetPct": 33.3,
            "minutesPct": 100.0,
            "pointsPerMatch": 3.0,
            "netGoalDifferencePer90": 2.67,
            "gk_engine_opponent_lambda": 1.5172,
            "shots_faced": 12.8,
            "expected_saves": 3.13,
            "high_pressure_saves": 1.08,
            "opponent_faced": "Georges Mikautadze, Alberto Moleiro",
            "matchup_zone": "Goalkeeper shot-stopping context",
            "antagonist_source": "formation_fallback",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "finishing_factor": 1.0,
            "creation_factor": 1.0,
            "expected_goals": 0.0,
            "expected_assists": 0.0,
            "fifa_overall": 90.0
          },
          "latest_10_games": [
            {
              "match_id": 16416339.0,
              "match_date": "2026-09-20",
              "home_team": "Atlético Madrid",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 90,
                "rating": 8.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.003,
                "total_shots": 0,
                "total_pass": 24,
                "accurate_pass": 15,
                "clearances": 2,
                "ball_recovery": 6,
                "saves": 5,
                "goals_prevented": 0.8708
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416342.0,
              "match_date": "2026-09-15",
              "home_team": "Elche",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Elche",
              "stats": {
                "minutes": 90,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0003,
                "total_shots": 0,
                "total_pass": 27,
                "accurate_pass": 24,
                "ball_recovery": 5,
                "saves": 1,
                "goals_prevented": -0.6824
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416331.0,
              "match_date": "2026-09-12",
              "home_team": "Real Madrid",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 90,
                "rating": 7.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0015,
                "total_shots": 0,
                "total_pass": 37,
                "accurate_pass": 31,
                "ball_recovery": 8,
                "saves": 6,
                "goals_prevented": 0.3547
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416315.0,
              "match_date": "2026-09-04",
              "home_team": "Real Betis",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0002,
                "total_shots": 0,
                "total_pass": 25,
                "accurate_pass": 24,
                "clearances": 1,
                "ball_recovery": 11,
                "saves": 4,
                "goals_prevented": -0.0792
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416312.0,
              "match_date": "2026-08-30",
              "home_team": "Real Madrid",
              "away_team": "Málaga CF",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0001,
                "total_shots": 0,
                "total_pass": 35,
                "accurate_pass": 31,
                "ball_recovery": 3,
                "saves": 1,
                "goals_prevented": 0.0461
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_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": "home",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0003,
                "total_shots": 0,
                "total_pass": 23,
                "accurate_pass": 20,
                "ball_recovery": 3,
                "saves": 2,
                "goals_prevented": -0.1261
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416306.0,
              "match_date": "2026-08-22",
              "home_team": "Espanyol",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 90,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0002,
                "total_shots": 0,
                "total_pass": 24,
                "accurate_pass": 19,
                "ball_recovery": 5,
                "saves": 2,
                "goals_prevented": -0.5284
              },
              "has_player_stats": true,
              "league_name": "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": 79,
            "combined_rank_score": 85.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 160.0,
            "sofascore_rating": 7.2909,
            "sofascore_appearances": 11.0,
            "fifa_rank": 10.0,
            "fifa_overall": 90.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 3,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 7.237,
            "source_file": "data/player_rankings.csv",
            "player_name": "Thibaut Courtois",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Désiré Doué",
                  "ranking": 74
                },
                {
                  "player_name": "Chema Andrés",
                  "ranking": 75
                },
                {
                  "player_name": "Youri Tielemans",
                  "ranking": 76
                },
                {
                  "player_name": "Marc Cucurella",
                  "ranking": 77
                },
                {
                  "player_name": "Dominik Szoboszlai",
                  "ranking": 78
                }
              ],
              "lower": [
                {
                  "player_name": "Otávio Costa",
                  "ranking": 80
                },
                {
                  "player_name": "Marc Guéhi",
                  "ranking": 81
                },
                {
                  "player_name": "Jaden Philogene-Bidace",
                  "ranking": 82
                },
                {
                  "player_name": "Valdívia",
                  "ranking": 83
                },
                {
                  "player_name": "Bremer",
                  "ranking": 84
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.718,
          "history_matches": 7,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "G_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "accurateLongBalls",
              "totalOwnHalfPasses",
              "accurateOwnHalfPasses",
              "saves",
              "savedShotsFromInsideTheBox",
              "goodHighClaim",
              "punches",
              "aerialWon",
              "totalKeeperSweeper",
              "accurateKeeperSweeper",
              "totalClearance",
              "ballRecovery",
              "touches",
              "possessionLostCtrl",
              "kilometersCovered",
              "passValueNormalized",
              "defensiveValueNormalized",
              "goalkeeperValueNormalized",
              "pass_accuracy",
              "long_ball_accuracy",
              "save_contribution",
              "inside_box_save_rate",
              "sweeper_accuracy",
              "sweeper_actions_p90",
              "distribution_accuracy",
              "commanding_index",
              "gk_coverage",
              "history_matches"
            ],
            "targets_predicted": [
              "saves",
              "goalsPrevented",
              "rating"
            ],
            "history_matches": 7,
            "data_confidence": 0.718,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0221,
            "fbref_prior_metrics": {
              "squad": "Real Madrid",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "minutes": 270.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.0,
              "prior_reliability": 0.2
            },
            "rationale": "XGBoost regressor (G_service) evaluated 7 historical appearances across 3 target models; FBref 2026-2027 prior blended (La Liga, Real Madrid, rel: 0.20, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost G_service raw output over 3 target models",
              "stats": {
                "saves": 3,
                "goals_prevented": -0.0274,
                "rating": 7.237,
                "minutes": 90,
                "total_pass": 28,
                "accurate_pass": 23,
                "duels_won": 0,
                "total_long_balls": 7,
                "accurate_long_balls": 3,
                "touches": 35,
                "clearances": 0,
                "ball_recovery": 6,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 4.57,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 22
              },
              "trace": {
                "model": {
                  "position_service": "G",
                  "schema_version": 4,
                  "trained_at": "2026-09-29T10:01:45.250339+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 135,
                    "rows": 3738
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Atlético Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2208,
                    "rating": 8.6
                  },
                  {
                    "match_date": "2026-09-15",
                    "opponent": "Elche",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1877,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Rayo Vallecano",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1595,
                    "rating": 7.8
                  },
                  {
                    "match_date": "2026-09-04",
                    "opponent": "Real Betis",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1356,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Málaga CF",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1152,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-26",
                    "opponent": "Real Sociedad",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.098,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Espanyol",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0833,
                    "rating": 6.5
                  }
                ],
                "feature_row": {
                  "history_matches": 7.0,
                  "is_starting_11": 1.0,
                  "save_contribution": 3.3276,
                  "goalkeeperValueNormalized": 0.0831,
                  "sweeper_actions_p90": 0.1356,
                  "possessionLostCtrl": 4.9733,
                  "accurateKeeperSweeper": 0.1356,
                  "accurateLongBalls": 3.3008
                },
                "per_target": [
                  {
                    "target": "saves",
                    "predicted": 3.03007435798645,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "save_contribution",
                        "importance": 0.0645
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0523
                      },
                      {
                        "name": "saves",
                        "importance": 0.0514
                      },
                      {
                        "name": "accurateLongBalls",
                        "importance": 0.0475
                      },
                      {
                        "name": "goalkeeperValueNormalized",
                        "importance": 0.0445
                      }
                    ],
                    "decomposition": {
                      "base": 2.9861,
                      "items": [
                        {
                          "name": "save_contribution",
                          "contribution": 0.0561
                        },
                        {
                          "name": "saves",
                          "contribution": 0.0399
                        },
                        {
                          "name": "sweeper_actions_p90",
                          "contribution": -0.0383
                        },
                        {
                          "name": "accurateLongBalls",
                          "contribution": -0.0224
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": 0.0214
                        }
                      ],
                      "others": -0.0127,
                      "total": 3.0301,
                      "log_link": true,
                      "margin_base": 1.093963,
                      "item_margins": [
                        {
                          "name": "save_contribution",
                          "margin": 0.01861
                        },
                        {
                          "name": "saves",
                          "margin": 0.013028
                        },
                        {
                          "name": "sweeper_actions_p90",
                          "margin": -0.012519
                        },
                        {
                          "name": "accurateLongBalls",
                          "margin": -0.00737
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": 0.007065
                        }
                      ],
                      "others_margin": -0.00419
                    }
                  },
                  {
                    "target": "goalsPrevented",
                    "predicted": -0.02738802693784237,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "save_contribution",
                        "importance": 0.0582
                      },
                      {
                        "name": "punches",
                        "importance": 0.0515
                      },
                      {
                        "name": "goalkeeperValueNormalized",
                        "importance": 0.051
                      },
                      {
                        "name": "sweeper_actions_p90",
                        "importance": 0.0478
                      },
                      {
                        "name": "touches",
                        "importance": 0.043
                      }
                    ],
                    "decomposition": {
                      "base": -0.0455,
                      "items": [
                        {
                          "name": "pass_accuracy",
                          "contribution": 0.0644
                        },
                        {
                          "name": "goalkeeperValueNormalized",
                          "contribution": -0.0472
                        },
                        {
                          "name": "sweeper_actions_p90",
                          "contribution": -0.0279
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0242
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0225
                        }
                      ],
                      "others": 0.0305,
                      "total": -0.0274,
                      "log_link": false,
                      "margin_base": -0.045465,
                      "item_margins": [
                        {
                          "name": "pass_accuracy",
                          "margin": 0.064401
                        },
                        {
                          "name": "goalkeeperValueNormalized",
                          "margin": -0.047231
                        },
                        {
                          "name": "sweeper_actions_p90",
                          "margin": -0.027889
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.024195
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.022537
                        }
                      ],
                      "others_margin": 0.030454
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 7.2369771003723145,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "save_contribution",
                        "importance": 0.075
                      },
                      {
                        "name": "sweeper_actions_p90",
                        "importance": 0.0537
                      },
                      {
                        "name": "goalkeeperValueNormalized",
                        "importance": 0.0529
                      },
                      {
                        "name": "accurateKeeperSweeper",
                        "importance": 0.0478
                      },
                      {
                        "name": "pass_accuracy",
                        "importance": 0.0409
                      }
                    ],
                    "decomposition": {
                      "base": 7.0878,
                      "items": [
                        {
                          "name": "pass_accuracy",
                          "contribution": 0.0691
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0404
                        },
                        {
                          "name": "accurateOwnHalfPasses",
                          "contribution": 0.0385
                        },
                        {
                          "name": "save_contribution",
                          "contribution": -0.0319
                        },
                        {
                          "name": "sweeper_actions_p90",
                          "contribution": -0.0296
                        }
                      ],
                      "others": 0.0627,
                      "total": 7.237,
                      "log_link": false,
                      "margin_base": 7.087778,
                      "item_margins": [
                        {
                          "name": "pass_accuracy",
                          "margin": 0.069141
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": 0.040426
                        },
                        {
                          "name": "accurateOwnHalfPasses",
                          "margin": 0.038508
                        },
                        {
                          "name": "save_contribution",
                          "margin": -0.03188
                        },
                        {
                          "name": "sweeper_actions_p90",
                          "margin": -0.029562
                        }
                      ],
                      "others_margin": 0.062565
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0221, quality 0.574)",
              "stats": {
                "saves": 3,
                "goals_prevented": -0.028,
                "rating": 7.237,
                "minutes": 90,
                "total_pass": 28,
                "accurate_pass": 24,
                "duels_won": 0,
                "total_long_balls": 7,
                "accurate_long_balls": 3,
                "touches": 36,
                "clearances": 0,
                "ball_recovery": 6,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 4.6711,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 22
              },
              "params": {
                "market_value_eur": 14500000,
                "quality_factor": 0.5737,
                "boost_factor": 1.0221
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0542)",
              "stats": {
                "saves": 3,
                "goals_prevented": -0.028,
                "rating": 7.237,
                "minutes": 90,
                "total_pass": 28,
                "accurate_pass": 24,
                "duels_won": 0,
                "total_long_balls": 7,
                "accurate_long_balls": 3,
                "touches": 36,
                "clearances": 0,
                "ball_recovery": 6,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 4.6711,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 22,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 0.67,
                "shotsOnTargetAgainst": 2.3333,
                "cleanSheets": 0.3333,
                "interceptions": 0,
                "tackles_won": 0,
                "crosses_total": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "penaltySave": 0.0,
                "ownGoals": 0.0,
                "savePct": 71.4,
                "cleanSheetPct": 33.3,
                "minutesPct": 100.0,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.67
              },
              "params": {
                "blend_weight": 0.0542,
                "history_matches": 7,
                "prior_reliability": 0.2,
                "competition": "La Liga",
                "squad": "Real Madrid"
              },
              "changes": [
                {
                  "stat": "saves",
                  "before": 3.0971,
                  "after": 3.0196
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "saves": 3,
                "goals_prevented": -0.028,
                "rating": 7.237,
                "minutes": 90,
                "total_pass": 28,
                "accurate_pass": 24,
                "duels_won": 0,
                "total_long_balls": 7,
                "accurate_long_balls": 3,
                "touches": 36,
                "clearances": 0,
                "ball_recovery": 6,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 4.6711,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 22,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 0.67,
                "shotsOnTargetAgainst": 2.3333,
                "cleanSheets": 0.3333,
                "interceptions": 0,
                "tackles_won": 0,
                "crosses_total": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "penaltySave": 0.0,
                "ownGoals": 0.0,
                "savePct": 71.4,
                "cleanSheetPct": 33.3,
                "minutesPct": 100.0,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.67
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "saves": 3,
                "goals_prevented": -0.028,
                "rating": 7.237,
                "minutes": 90,
                "total_pass": 28,
                "accurate_pass": 24,
                "duels_won": 0,
                "total_long_balls": 7,
                "accurate_long_balls": 3,
                "touches": 36,
                "clearances": 0,
                "ball_recovery": 6,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 4.6711,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 22,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 0.67,
                "shotsOnTargetAgainst": 2.3333,
                "cleanSheets": 0.3333,
                "interceptions": 0,
                "tackles_won": 0,
                "crosses_total": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "penaltySave": 0.0,
                "ownGoals": 0.0,
                "savePct": 71.4,
                "cleanSheetPct": 33.3,
                "minutesPct": 100.0,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.67,
                "gk_engine_opponent_lambda": 1.5172,
                "shots_faced": 14.4,
                "expected_saves": 3.52,
                "high_pressure_saves": 1.21,
                "opponent_faced": "Georges Mikautadze, Alberto Moleiro",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Georges Mikautadze, Alberto Moleiro",
                  "matchup_zone": "Goalkeeper shot-stopping context",
                  "opponent_lambda": 1.5172
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.54 (squad xG sum 1.8684, xG scale 1.8936, xA scale 1.8936, team xA 2.35 = 0.66 x lambda)",
              "stats": {
                "saves": 3,
                "goals_prevented": -0.028,
                "rating": 7.237,
                "minutes": 90,
                "total_pass": 28,
                "accurate_pass": 24,
                "duels_won": 0,
                "total_long_balls": 7,
                "accurate_long_balls": 3,
                "touches": 36,
                "clearances": 0,
                "ball_recovery": 6,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 4.6711,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 22,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 0.67,
                "shotsOnTargetAgainst": 2.3333,
                "cleanSheets": 0.3333,
                "interceptions": 0,
                "tackles_won": 0,
                "crosses_total": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "penaltySave": 0.0,
                "ownGoals": 0.0,
                "savePct": 71.4,
                "cleanSheetPct": 33.3,
                "minutesPct": 100.0,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.67,
                "gk_engine_opponent_lambda": 1.5172,
                "shots_faced": 12.8,
                "expected_saves": 3.13,
                "high_pressure_saves": 1.08,
                "opponent_faced": "Georges Mikautadze, Alberto Moleiro",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 1.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0
              },
              "params": {
                "team_lambda": 3.538,
                "squad_xg_sum": 1.8684,
                "squad_xa_sum": 1.2396,
                "team_expected_assists": 2.3473,
                "team_xa_to_xg_ratio": 0.6635,
                "bench_appearance_weighted": true,
                "xg_scale": 1.8936,
                "xa_scale": 1.8936,
                "opponent_lambda": 1.348,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "shots_faced",
                  "before": 14.4,
                  "after": 12.8
                },
                {
                  "stat": "expected_saves",
                  "before": 3.52,
                  "after": 3.13
                },
                {
                  "stat": "high_pressure_saves",
                  "before": 1.21,
                  "after": 1.08
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 3 by projected rating, fifa_overall 90.0; not used by the projection)",
              "stats": {
                "saves": 3,
                "goals_prevented": -0.028,
                "rating": 7.237,
                "minutes": 90,
                "total_pass": 28,
                "accurate_pass": 24,
                "duels_won": 0,
                "total_long_balls": 7,
                "accurate_long_balls": 3,
                "touches": 36,
                "clearances": 0,
                "ball_recovery": 6,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 4.6711,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 22,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 0.67,
                "shotsOnTargetAgainst": 2.3333,
                "cleanSheets": 0.3333,
                "interceptions": 0,
                "tackles_won": 0,
                "crosses_total": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "penaltySave": 0.0,
                "ownGoals": 0.0,
                "savePct": 71.4,
                "cleanSheetPct": 33.3,
                "minutesPct": 100.0,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.67,
                "gk_engine_opponent_lambda": 1.5172,
                "shots_faced": 12.8,
                "expected_saves": 3.13,
                "high_pressure_saves": 1.08,
                "opponent_faced": "Georges Mikautadze, Alberto Moleiro",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 1.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "fifa_overall": 90.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": 79,
                "fifa_rank": 10.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 90.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "saves": 3,
                "goals_prevented": -0.028,
                "rating": 7.237,
                "minutes": 90,
                "total_pass": 28,
                "accurate_pass": 24,
                "duels_won": 0,
                "total_long_balls": 7,
                "accurate_long_balls": 3,
                "touches": 36,
                "clearances": 0,
                "ball_recovery": 6,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 4.6711,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 22,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 0.67,
                "shotsOnTargetAgainst": 2.3333,
                "cleanSheets": 0.3333,
                "interceptions": 0,
                "tackles_won": 0,
                "crosses_total": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "penaltySave": 0.0,
                "ownGoals": 0.0,
                "savePct": 71.4,
                "cleanSheetPct": 33.3,
                "minutesPct": 100.0,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.67,
                "gk_engine_opponent_lambda": 1.5172,
                "shots_faced": 12.8,
                "expected_saves": 3.13,
                "high_pressure_saves": 1.08,
                "opponent_faced": "Georges Mikautadze, Alberto Moleiro",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 1.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "fifa_overall": 90.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 0.0,
                "squad_weight_total": 3.5857,
                "weight_share": 0.0,
                "finishing_factor": 1.0,
                "appearance_weight": 1.0,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Kylian Mbappé",
                    "weight": 1.2537,
                    "already": 0,
                    "effective_weight": 1.2537,
                    "runner_up": "Jude Bellingham",
                    "runner_up_effective_weight": 0.5657
                  },
                  {
                    "n": 2,
                    "player": "Jude Bellingham",
                    "weight": 0.5657,
                    "already": 0,
                    "effective_weight": 0.5657,
                    "runner_up": "Vinícius Júnior",
                    "runner_up_effective_weight": 0.5343
                  },
                  {
                    "n": 3,
                    "player": "Vinícius Júnior",
                    "weight": 0.5343,
                    "already": 0,
                    "effective_weight": 0.5343,
                    "runner_up": "Kylian Mbappé",
                    "runner_up_effective_weight": 0.5335
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "saves": 3,
                "goals_prevented": -0.028,
                "rating": 7.237,
                "minutes": 90,
                "total_pass": 28,
                "accurate_pass": 24,
                "duels_won": 0,
                "total_long_balls": 7,
                "accurate_long_balls": 3,
                "touches": 36,
                "clearances": 0,
                "ball_recovery": 6,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 4.6711,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 22,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 0.67,
                "shotsOnTargetAgainst": 2.3333,
                "cleanSheets": 0.3333,
                "interceptions": 0,
                "tackles_won": 0,
                "crosses_total": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "penaltySave": 0.0,
                "ownGoals": 0.0,
                "savePct": 71.4,
                "cleanSheetPct": 33.3,
                "minutesPct": 100.0,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.67,
                "gk_engine_opponent_lambda": 1.5172,
                "shots_faced": 12.8,
                "expected_saves": 3.13,
                "high_pressure_saves": 1.08,
                "opponent_faced": "Georges Mikautadze, Alberto Moleiro",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 1.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "fifa_overall": 90.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 2,
                "assists_allocated": 0,
                "assist_probability": 0.0,
                "provider_weight": 0.0,
                "squad_weight_total": 2.5484,
                "weight_share": 0.0,
                "creation_factor": 1.0,
                "appearance_weight": 1.0,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Trent Alexander-Arnold",
                    "weight": 0.524,
                    "already": 0,
                    "effective_weight": 0.524,
                    "runner_up": "Kylian Mbappé",
                    "runner_up_effective_weight": 0.4996
                  },
                  {
                    "n": 2,
                    "player": "Kylian Mbappé",
                    "weight": 0.4996,
                    "already": 0,
                    "effective_weight": 0.4996,
                    "runner_up": "Arda Güler",
                    "runner_up_effective_weight": 0.3574
                  }
                ]
              }
            }
          ]
        },
        "Dean Huijsen": {
          "player_id": 1176744,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 4,
          "height": 195,
          "market_value": 66000000,
          "stats": {
            "interceptions": 1,
            "tackles": 2,
            "tackles_won": 1,
            "clearances": 5,
            "aerial_won": 1,
            "total_shots": 1,
            "rating": 6.907,
            "minutes": 84,
            "total_pass": 70,
            "accurate_pass": 67,
            "duels_won": 4,
            "total_long_balls": 5,
            "accurate_long_balls": 4,
            "total_own_half_passes": 42,
            "accurate_own_half_passes": 41,
            "total_opp_half_passes": 28,
            "accurate_opp_half_passes": 26,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 83,
            "possession_lost": 0.0,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 3,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assist_rate": 0.0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0841,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 23,
            "total_progression": 90,
            "progressive_carries": 1,
            "key_pass": 0,
            "shots_off_target": 1,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 0.0,
            "shotConversion": 0.0,
            "minutesPct": 100.0,
            "pointsPerMatch": 3.0,
            "netGoalDifferencePer90": 2.67,
            "tackles_in_zone": 2.3,
            "tackles_won_in_zone": 2.1,
            "interceptions_in_zone": 1.4,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 0.9,
            "defensive_success_rate": 0.77,
            "opponent_faced": "Tajon Buchanan",
            "pressing_zone": "LM vs CB",
            "matchup_zone": "LM vs CB",
            "antagonist_source": "defensive_duel",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0807,
            "finishing_factor": 1.0,
            "creation_factor": 0.8,
            "fifa_overall": 81.0
          },
          "latest_10_games": [
            {
              "match_id": 16416339.0,
              "match_date": "2026-09-20",
              "home_team": "Atlético Madrid",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 52,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0019,
                "total_shots": 0,
                "total_pass": 36,
                "accurate_pass": 36,
                "tackles": 3,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 5,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416342.0,
              "match_date": "2026-09-15",
              "home_team": "Elche",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Elche",
              "stats": {
                "minutes": 90,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1048,
                "expected_assists": 0.0128,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 51,
                "accurate_pass": 49,
                "tackles": 1,
                "interceptions": 2,
                "clearances": 4,
                "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_type": "played",
              "match_id": "16416331.0",
              "match_date": "2026-09-12 19:00:00 UTC",
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27",
              "home_team": "Real Madrid",
              "away_team": "Rayo Vallecano",
              "home_score_current": 4.0,
              "away_score_current": 1.0,
              "team_side": "home",
              "status_code": "100.0",
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": "True",
              "team": "Real Madrid",
              "opponent": "Rayo Vallecano",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16416315.0,
              "match_date": "2026-09-04",
              "home_team": "Real Betis",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 90,
                "rating": 7.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.4003,
                "expected_assists": 0.2102,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 88,
                "accurate_pass": 86,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 2,
                "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": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416312.0,
              "match_date": "2026-08-30",
              "home_team": "Real Madrid",
              "away_team": "Málaga CF",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 90,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0102,
                "total_shots": 0,
                "total_pass": 53,
                "accurate_pass": 49,
                "key_pass": 1,
                "tackles": 3,
                "tackles_won": 2,
                "interceptions": 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": "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": "home",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 90,
                "rating": 7.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0541,
                "expected_assists": 0.0189,
                "total_shots": 2,
                "shots_off_target": 2,
                "total_pass": 72,
                "accurate_pass": 69,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 11,
                "aerial_won": 3,
                "duels_won": 5,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416306.0,
              "match_date": "2026-08-22",
              "home_team": "Espanyol",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0842,
                "expected_assists": 0.0128,
                "total_shots": 1,
                "total_pass": 76,
                "accurate_pass": 74,
                "interceptions": 1,
                "clearances": 5,
                "aerial_won": 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"
            }
          ],
          "ranking": {
            "global_player_rank": 556,
            "combined_rank_score": 306.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 30.0,
            "sofascore_rating": 8.0,
            "sofascore_appearances": 2.0,
            "fifa_rank": 583.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.907,
            "source_file": "data/player_rankings.csv",
            "player_name": "Dean Huijsen",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Senne Lammens",
                  "ranking": 551
                },
                {
                  "player_name": "Agustín Arce",
                  "ranking": 552
                },
                {
                  "player_name": "Alejandro Panach Olmo",
                  "ranking": 553
                },
                {
                  "player_name": "Edu Altozano",
                  "ranking": 554
                },
                {
                  "player_name": "Joseph Otunenche",
                  "ranking": 555
                }
              ],
              "lower": [
                {
                  "player_name": "Jarrod Bowen",
                  "ranking": 557
                },
                {
                  "player_name": "Ivan Alonso Martin",
                  "ranking": 558
                },
                {
                  "player_name": "Marco Román",
                  "ranking": 559
                },
                {
                  "player_name": "Nicolas Pépé",
                  "ranking": 560
                },
                {
                  "player_name": "Javi Navarro",
                  "ranking": 561
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.655,
          "history_matches": 6,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "D_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "totalOppositionHalfPasses",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "ballRecovery",
              "touches",
              "totalClearance",
              "wonTackle",
              "interceptionWon",
              "dispossessed",
              "challengeLost",
              "errorLeadToAShot",
              "errorLeadToAGoal",
              "possessionLostCtrl",
              "passValueNormalized",
              "defensiveValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "totalShots",
              "rating"
            ],
            "history_matches": 6,
            "data_confidence": 0.655,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.1093,
            "fbref_prior_metrics": {
              "squad": "Real Madrid",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "minutes": 270.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 1.0,
              "shots_on_target_pct": 0.0,
              "prior_reliability": 0.2
            },
            "rationale": "XGBoost regressor (D_service) evaluated 6 historical appearances across 7 target models; FBref 2026-2027 prior blended (La Liga, Real Madrid, rel: 0.20, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 7 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.907,
                "minutes": 84,
                "total_pass": 63,
                "accurate_pass": 60,
                "duels_won": 4,
                "total_long_balls": 5,
                "accurate_long_balls": 3,
                "total_own_half_passes": 38,
                "accurate_own_half_passes": 37,
                "total_opp_half_passes": 25,
                "accurate_opp_half_passes": 23,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 75,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.04,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 21,
                "total_progression": 81,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:01:55.523250+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 402,
                    "rows": 11400
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Atlético Madrid",
                    "minutes": 52.0,
                    "is_starting": true,
                    "weight": 0.2408,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-09-15",
                    "opponent": "Elche",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2047,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-04",
                    "opponent": "Real Betis",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.174,
                    "rating": 7.7
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Málaga CF",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1479,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-08-26",
                    "opponent": "Real Sociedad",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1257,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Espanyol",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1069,
                    "rating": 7.0
                  }
                ],
                "feature_row": {
                  "history_matches": 6.0,
                  "is_starting_11": 1.0,
                  "totalClearance": 4.5839,
                  "defensive_actions": 3.1972,
                  "wonTackle": 0.8363,
                  "totalTackle_p90": 2.1986,
                  "totalClearance_p90": 5.4638,
                  "aerialWon": 1.3983
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 1.1700116395950317,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "interceptionWon",
                        "importance": 0.0903
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0858
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.052
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0447
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0364
                      }
                    ],
                    "decomposition": {
                      "base": 0.9034,
                      "items": [
                        {
                          "name": "interceptionWon_p90",
                          "contribution": 0.0985
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": 0.1078
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": 0.0238
                        },
                        {
                          "name": "touches",
                          "contribution": 0.0103
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0103
                        }
                      ],
                      "others": 0.0159,
                      "total": 1.17,
                      "log_link": true,
                      "margin_base": -0.101631,
                      "item_margins": [
                        {
                          "name": "interceptionWon_p90",
                          "margin": 0.103503
                        },
                        {
                          "name": "interceptionWon",
                          "margin": 0.102224
                        },
                        {
                          "name": "defensive_actions",
                          "margin": 0.0212
                        },
                        {
                          "name": "touches",
                          "margin": 0.009071
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": 0.009
                        }
                      ],
                      "others_margin": 0.013647
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.4479694366455078,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "defensive_actions",
                        "importance": 0.1044
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0863
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0629
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.045
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0342
                      }
                    ],
                    "decomposition": {
                      "base": 1.3313,
                      "items": [
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.1239
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": 0.1242
                        },
                        {
                          "name": "wonTackle",
                          "contribution": -0.0621
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.05
                        },
                        {
                          "name": "press_vulnerability",
                          "contribution": -0.0167
                        }
                      ],
                      "others": -0.0026,
                      "total": 1.448,
                      "log_link": true,
                      "margin_base": 0.286166,
                      "item_margins": [
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.089002
                        },
                        {
                          "name": "defensive_actions",
                          "margin": 0.081901
                        },
                        {
                          "name": "wonTackle",
                          "margin": -0.04014
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.033538
                        },
                        {
                          "name": "press_vulnerability",
                          "margin": -0.011429
                        }
                      ],
                      "others_margin": -0.001799
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.8119094967842102,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "wonTackle",
                        "importance": 0.1003
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0586
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0501
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0492
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0386
                      }
                    ],
                    "decomposition": {
                      "base": 0.8256,
                      "items": [
                        {
                          "name": "wonTackle",
                          "contribution": -0.1151
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": 0.0762
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0343
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0231
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0198
                        }
                      ],
                      "others": -0.0058,
                      "total": 0.8119,
                      "log_link": true,
                      "margin_base": -0.191612,
                      "item_margins": [
                        {
                          "name": "wonTackle",
                          "margin": -0.150163
                        },
                        {
                          "name": "defensive_actions",
                          "margin": 0.101826
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.042671
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.028579
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": 0.024489
                        }
                      ],
                      "others_margin": -0.006998
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 4.2798566818237305,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalClearance",
                        "importance": 0.138
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0733
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.034
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 3.3876,
                      "items": [
                        {
                          "name": "totalClearance",
                          "contribution": 0.4112
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.1893
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.1923
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0525
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0423
                        }
                      ],
                      "others": 0.0893,
                      "total": 4.2799,
                      "log_link": true,
                      "margin_base": 1.220122,
                      "item_margins": [
                        {
                          "name": "totalClearance",
                          "margin": 0.114567
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.048619
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.047088
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.012476
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.010042
                        }
                      ],
                      "others_margin": 0.021089
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 1.30544912815094,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "aerialWon",
                        "importance": 0.1155
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0659
                      },
                      {
                        "name": "aerial_dominance",
                        "importance": 0.0345
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0335
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0332
                      }
                    ],
                    "decomposition": {
                      "base": 1.2696,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": -0.1043
                        },
                        {
                          "name": "totalClearance",
                          "contribution": 0.0766
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0687
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0561
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0451
                        }
                      ],
                      "others": -0.0162,
                      "total": 1.3054,
                      "log_link": true,
                      "margin_base": 0.238719,
                      "item_margins": [
                        {
                          "name": "aerialWon",
                          "margin": -0.08568
                        },
                        {
                          "name": "totalClearance",
                          "margin": 0.063654
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.053876
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.041942
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.033587
                        }
                      ],
                      "others_margin": -0.012376
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.4934,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0373
                      },
                      {
                        "name": "long_ball_accuracy",
                        "importance": 0.0337
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0333
                      },
                      {
                        "name": "errorLeadToAGoal",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0306
                      }
                    ],
                    "decomposition": {
                      "base": 0.476,
                      "items": [
                        {
                          "name": "aerialLost",
                          "contribution": -0.0181
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": 0.0178
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0173
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": 0.0151
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0125
                        }
                      ],
                      "others": 0.0074,
                      "total": 0.4934,
                      "log_link": false,
                      "margin_base": 0.476045,
                      "item_margins": [
                        {
                          "name": "aerialLost",
                          "margin": -0.018075
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": 0.017829
                        },
                        {
                          "name": "duelLost",
                          "margin": -0.017277
                        },
                        {
                          "name": "progressive_carries_p90",
                          "margin": 0.015118
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.012488
                        }
                      ],
                      "others_margin": 0.007251
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.907022476196289,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0639
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0627
                      },
                      {
                        "name": "defensiveValueNormalized",
                        "importance": 0.0466
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0352
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 6.7578,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0744
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": 0.0176
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": -0.0146
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0125
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0122
                        }
                      ],
                      "others": 0.0471,
                      "total": 6.907,
                      "log_link": false,
                      "margin_base": 6.757789,
                      "item_margins": [
                        {
                          "name": "passValueNormalized",
                          "margin": 0.074379
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": 0.017618
                        },
                        {
                          "name": "duelWon_p90",
                          "margin": -0.014612
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.012517
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": 0.012239
                        }
                      ],
                      "others_margin": 0.047091
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.1093, quality 0.864)",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.907,
                "minutes": 84,
                "total_pass": 70,
                "accurate_pass": 67,
                "duels_won": 4,
                "total_long_balls": 5,
                "accurate_long_balls": 4,
                "total_own_half_passes": 42,
                "accurate_own_half_passes": 41,
                "total_opp_half_passes": 28,
                "accurate_opp_half_passes": 26,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 83,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0444,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 23,
                "total_progression": 90,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 66000000,
                "quality_factor": 0.8644,
                "boost_factor": 1.1093
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0591)",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.907,
                "minutes": 84,
                "total_pass": 70,
                "accurate_pass": 67,
                "duels_won": 4,
                "total_long_balls": 5,
                "accurate_long_balls": 4,
                "total_own_half_passes": 42,
                "accurate_own_half_passes": 41,
                "total_opp_half_passes": 28,
                "accurate_opp_half_passes": 26,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 83,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0444,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 23,
                "total_progression": 90,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.67
              },
              "params": {
                "blend_weight": 0.0591,
                "history_matches": 6,
                "prior_reliability": 0.2,
                "competition": "La Liga",
                "squad": "Real Madrid"
              },
              "changes": [
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0394
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0394
                },
                {
                  "stat": "totalShots",
                  "before": 0.5473,
                  "after": 0.5741
                },
                {
                  "stat": "wonTackle",
                  "before": 0.9007,
                  "after": 0.9066
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.907,
                "minutes": 84,
                "total_pass": 70,
                "accurate_pass": 67,
                "duels_won": 4,
                "total_long_balls": 5,
                "accurate_long_balls": 4,
                "total_own_half_passes": 42,
                "accurate_own_half_passes": 41,
                "total_opp_half_passes": 28,
                "accurate_opp_half_passes": 26,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 83,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0444,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 23,
                "total_progression": 90,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.67
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.907,
                "minutes": 84,
                "total_pass": 70,
                "accurate_pass": 67,
                "duels_won": 4,
                "total_long_balls": 5,
                "accurate_long_balls": 4,
                "total_own_half_passes": 42,
                "accurate_own_half_passes": 41,
                "total_opp_half_passes": 28,
                "accurate_opp_half_passes": 26,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 83,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0444,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 23,
                "total_progression": 90,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.67,
                "tackles_in_zone": 2.3,
                "tackles_won_in_zone": 2.1,
                "interceptions_in_zone": 1.4,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.9,
                "defensive_success_rate": 0.77,
                "opponent_faced": "Tajon Buchanan",
                "pressing_zone": "LM vs CB",
                "matchup_zone": "LM vs CB",
                "antagonist_source": "defensive_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Tajon Buchanan",
                  "matchup_zone": "LM vs CB"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.54 (squad xG sum 1.8684, xG scale 1.8936, xA scale 1.8936, team xA 2.35 = 0.66 x lambda)",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.907,
                "minutes": 84,
                "total_pass": 70,
                "accurate_pass": 67,
                "duels_won": 4,
                "total_long_balls": 5,
                "accurate_long_balls": 4,
                "total_own_half_passes": 42,
                "accurate_own_half_passes": 41,
                "total_opp_half_passes": 28,
                "accurate_opp_half_passes": 26,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 83,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0841,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 23,
                "total_progression": 90,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.67,
                "tackles_in_zone": 2.3,
                "tackles_won_in_zone": 2.1,
                "interceptions_in_zone": 1.4,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.9,
                "defensive_success_rate": 0.77,
                "opponent_faced": "Tajon Buchanan",
                "pressing_zone": "LM vs CB",
                "matchup_zone": "LM vs CB",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 3.538,
                "squad_xg_sum": 1.8684,
                "squad_xa_sum": 1.2396,
                "team_expected_assists": 2.3473,
                "team_xa_to_xg_ratio": 0.6635,
                "bench_appearance_weighted": true,
                "xg_scale": 1.8936,
                "xa_scale": 1.8936,
                "opponent_lambda": 1.348,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_assists",
                  "before": 0.0444,
                  "after": 0.0841
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 7 by projected rating, fifa_overall 81.0; not used by the projection)",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.907,
                "minutes": 84,
                "total_pass": 70,
                "accurate_pass": 67,
                "duels_won": 4,
                "total_long_balls": 5,
                "accurate_long_balls": 4,
                "total_own_half_passes": 42,
                "accurate_own_half_passes": 41,
                "total_opp_half_passes": 28,
                "accurate_opp_half_passes": 26,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 83,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0841,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 23,
                "total_progression": 90,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.67,
                "tackles_in_zone": 2.3,
                "tackles_won_in_zone": 2.1,
                "interceptions_in_zone": 1.4,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.9,
                "defensive_success_rate": 0.77,
                "opponent_faced": "Tajon Buchanan",
                "pressing_zone": "LM vs CB",
                "matchup_zone": "LM vs CB",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 0.8,
                "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",
                "ranking_status": "combined",
                "global_player_rank": 556,
                "fifa_rank": 583.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 81.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.907,
                "minutes": 84,
                "total_pass": 70,
                "accurate_pass": 67,
                "duels_won": 4,
                "total_long_balls": 5,
                "accurate_long_balls": 4,
                "total_own_half_passes": 42,
                "accurate_own_half_passes": 41,
                "total_opp_half_passes": 28,
                "accurate_opp_half_passes": 26,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 83,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0841,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 23,
                "total_progression": 90,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.67,
                "tackles_in_zone": 2.3,
                "tackles_won_in_zone": 2.1,
                "interceptions_in_zone": 1.4,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.9,
                "defensive_success_rate": 0.77,
                "opponent_faced": "Tajon Buchanan",
                "pressing_zone": "LM vs CB",
                "matchup_zone": "LM vs CB",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 0.8,
                "fifa_overall": 81.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 0.001,
                "squad_weight_total": 3.5857,
                "weight_share": 0.0003,
                "finishing_factor": 1.0,
                "appearance_weight": 1.0,
                "weight_rank": 10,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Kylian Mbappé",
                    "weight": 1.2537,
                    "already": 0,
                    "effective_weight": 1.2537,
                    "runner_up": "Jude Bellingham",
                    "runner_up_effective_weight": 0.5657
                  },
                  {
                    "n": 2,
                    "player": "Jude Bellingham",
                    "weight": 0.5657,
                    "already": 0,
                    "effective_weight": 0.5657,
                    "runner_up": "Vinícius Júnior",
                    "runner_up_effective_weight": 0.5343
                  },
                  {
                    "n": 3,
                    "player": "Vinícius Júnior",
                    "weight": 0.5343,
                    "already": 0,
                    "effective_weight": 0.5343,
                    "runner_up": "Kylian Mbappé",
                    "runner_up_effective_weight": 0.5335
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.907,
                "minutes": 84,
                "total_pass": 70,
                "accurate_pass": 67,
                "duels_won": 4,
                "total_long_balls": 5,
                "accurate_long_balls": 4,
                "total_own_half_passes": 42,
                "accurate_own_half_passes": 41,
                "total_opp_half_passes": 28,
                "accurate_opp_half_passes": 26,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 83,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0841,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 23,
                "total_progression": 90,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.67,
                "tackles_in_zone": 2.3,
                "tackles_won_in_zone": 2.1,
                "interceptions_in_zone": 1.4,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.9,
                "defensive_success_rate": 0.77,
                "opponent_faced": "Tajon Buchanan",
                "pressing_zone": "LM vs CB",
                "matchup_zone": "LM vs CB",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0807,
                "finishing_factor": 1.0,
                "creation_factor": 0.8,
                "fifa_overall": 81.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 2,
                "assists_allocated": 0,
                "assist_probability": 0.0807,
                "provider_weight": 0.0673,
                "squad_weight_total": 2.5484,
                "weight_share": 0.0264,
                "creation_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 9,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Trent Alexander-Arnold",
                    "weight": 0.524,
                    "already": 0,
                    "effective_weight": 0.524,
                    "runner_up": "Kylian Mbappé",
                    "runner_up_effective_weight": 0.4996
                  },
                  {
                    "n": 2,
                    "player": "Kylian Mbappé",
                    "weight": 0.4996,
                    "already": 0,
                    "effective_weight": 0.4996,
                    "runner_up": "Arda Güler",
                    "runner_up_effective_weight": 0.3574
                  }
                ]
              }
            }
          ]
        },
        "Trent Alexander-Arnold": {
          "player_id": 795064,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 12,
          "height": 180,
          "market_value": 62000000,
          "stats": {
            "interceptions": 1,
            "tackles": 1,
            "tackles_won": 1,
            "clearances": 2,
            "aerial_won": 1,
            "total_shots": 1,
            "rating": 6.8457,
            "minutes": 53,
            "total_pass": 44,
            "accurate_pass": 39,
            "duels_won": 4,
            "total_long_balls": 7,
            "accurate_long_balls": 4,
            "total_own_half_passes": 22,
            "accurate_own_half_passes": 21,
            "total_opp_half_passes": 22,
            "accurate_opp_half_passes": 18,
            "crosses_total": 6,
            "crosses_accurate": 2,
            "touches": 59,
            "possession_lost": 9.4101,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assist_rate": 0.2935,
            "assists": 1,
            "expected_goals": 0.0,
            "expected_assists": 0.4192,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 17,
            "total_progression": 60,
            "progressive_carries": 1,
            "key_pass": 0,
            "shots_off_target": 1,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 50.0,
            "shotConversion": 0.0,
            "minutesPct": 37.4,
            "pointsPerMatch": 3.0,
            "netGoalDifferencePer90": 4.46,
            "tackles_in_zone": 1.1,
            "tackles_won_in_zone": 1.1,
            "interceptions_in_zone": 1.4,
            "clearances_in_zone": 1.2,
            "aerial_duels_won": 0.8,
            "defensive_success_rate": 0.82,
            "opponent_faced": "Georges Mikautadze",
            "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": 1,
            "assist_probability": 0.3424,
            "finishing_factor": 1.0,
            "creation_factor": 1.25,
            "fifa_overall": 84.0
          },
          "latest_10_games": [
            {
              "match_id": 16416342.0,
              "match_date": "2026-09-15",
              "home_team": "Elche",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Elche",
              "stats": {
                "minutes": 87,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0436,
                "expected_assists": 0.3145,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 37,
                "accurate_pass": 32,
                "key_pass": 2,
                "tackles": 1,
                "interceptions": 3,
                "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": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_type": "played",
              "match_id": "16416331.0",
              "match_date": "2026-09-12 19:00:00 UTC",
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27",
              "home_team": "Real Madrid",
              "away_team": "Rayo Vallecano",
              "home_score_current": 4.0,
              "away_score_current": 1.0,
              "team_side": "home",
              "status_code": "100.0",
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": "True",
              "team": "Real Madrid",
              "opponent": "Rayo Vallecano",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16416315.0,
              "match_date": "2026-09-04",
              "home_team": "Real Betis",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Madrid",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 26,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0856,
                "total_shots": 0,
                "total_pass": 15,
                "accurate_pass": 14,
                "key_pass": 1,
                "tackles": 1,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416312.0,
              "match_date": "2026-08-30",
              "home_team": "Real Madrid",
              "away_team": "Málaga CF",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 90,
                "rating": 7.9,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.0899,
                "expected_assists": 0.3672,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 96,
                "accurate_pass": 88,
                "key_pass": 3,
                "interceptions": 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": 16416306.0,
              "match_date": "2026-08-22",
              "home_team": "Espanyol",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Madrid",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 10,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0271,
                "total_shots": 0,
                "total_pass": 11,
                "accurate_pass": 7,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 220,
            "combined_rank_score": 166.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 108.0,
            "sofascore_rating": 7.45,
            "sofascore_appearances": 2.0,
            "fifa_rank": 224.0,
            "fifa_overall": 84.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 11,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.8457,
            "source_file": "data/player_rankings.csv",
            "player_name": "Trent Alexander-Arnold",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Konrad Laimer",
                  "ranking": 215
                },
                {
                  "player_name": "Jeremías Ledesma",
                  "ranking": 216
                },
                {
                  "player_name": "Rúben Neves",
                  "ranking": 217
                },
                {
                  "player_name": "Fagner",
                  "ranking": 218
                },
                {
                  "player_name": "Javohir Ilyosov",
                  "ranking": 219
                }
              ],
              "lower": [
                {
                  "player_name": "Pedro Porro",
                  "ranking": 221
                },
                {
                  "player_name": "Rodrigo Garro",
                  "ranking": 222
                },
                {
                  "player_name": "Ylyas Chouaref",
                  "ranking": 223
                },
                {
                  "player_name": "Rodrigo Riquelme",
                  "ranking": 224
                },
                {
                  "player_name": "Luis Chávez",
                  "ranking": 225
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.511,
          "history_matches": 4,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "D_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "totalOppositionHalfPasses",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "ballRecovery",
              "touches",
              "totalClearance",
              "wonTackle",
              "interceptionWon",
              "dispossessed",
              "challengeLost",
              "errorLeadToAShot",
              "errorLeadToAGoal",
              "possessionLostCtrl",
              "passValueNormalized",
              "defensiveValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "totalShots",
              "rating"
            ],
            "history_matches": 4,
            "data_confidence": 0.511,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.1071,
            "fbref_prior_metrics": {
              "squad": "Real Madrid",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 1.0,
              "minutes": 101.0,
              "goals_per90": 0.0,
              "assists_per90": 0.9090909090909092,
              "shots_per90": 1.78,
              "shots_on_target_pct": 50.0,
              "prior_reliability": 0.0733
            },
            "rationale": "XGBoost regressor (D_service) evaluated 4 historical appearances across 7 target models; FBref 2026-2027 prior blended (La Liga, Real Madrid, rel: 0.07, gls/90: 0.0, ast/90: 0.9090909090909092)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 7 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.8457,
                "minutes": 53,
                "total_pass": 40,
                "accurate_pass": 35,
                "duels_won": 4,
                "total_long_balls": 7,
                "accurate_long_balls": 4,
                "total_own_half_passes": 20,
                "accurate_own_half_passes": 19,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 16,
                "crosses_total": 6,
                "crosses_accurate": 2,
                "touches": 53,
                "possession_lost": 8.5,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.25,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.2,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 16,
                "total_progression": 54,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:01:55.523250+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 402,
                    "rows": 11400
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-15",
                    "opponent": "Elche",
                    "minutes": 87.0,
                    "is_starting": true,
                    "weight": 0.3138,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-09-04",
                    "opponent": "Real Betis",
                    "minutes": 26.0,
                    "is_starting": false,
                    "weight": 0.2667,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Málaga CF",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2267,
                    "rating": 7.9
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Espanyol",
                    "minutes": 10.0,
                    "is_starting": false,
                    "weight": 0.1927,
                    "rating": 7.0
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 1.0,
                  "totalClearance": 0.9414,
                  "defensive_actions": 2.6216,
                  "wonTackle": 0.1927,
                  "totalTackle_p90": 2.9824,
                  "totalClearance_p90": 0.9739,
                  "aerialWon": 0.0
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 1.1191571950912476,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "interceptionWon",
                        "importance": 0.0903
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0858
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.052
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0447
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0364
                      }
                    ],
                    "decomposition": {
                      "base": 0.9034,
                      "items": [
                        {
                          "name": "interceptionWon_p90",
                          "contribution": 0.1621
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": 0.0847
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0345
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0266
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0223
                        }
                      ],
                      "others": -0.0166,
                      "total": 1.1192,
                      "log_link": true,
                      "margin_base": -0.101631,
                      "item_margins": [
                        {
                          "name": "interceptionWon_p90",
                          "margin": 0.165066
                        },
                        {
                          "name": "interceptionWon",
                          "margin": 0.076498
                        },
                        {
                          "name": "duelLost",
                          "margin": 0.029553
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.022716
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.019471
                        }
                      ],
                      "others_margin": -0.014721
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.3061785697937012,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "defensive_actions",
                        "importance": 0.1044
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0863
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0629
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.045
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0342
                      }
                    ],
                    "decomposition": {
                      "base": 1.3313,
                      "items": [
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.1312
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0785
                        },
                        {
                          "name": "wonTackle",
                          "contribution": -0.0605
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0314
                        },
                        {
                          "name": "duelWon",
                          "contribution": -0.0294
                        }
                      ],
                      "others": 0.0435,
                      "total": 1.3062,
                      "log_link": true,
                      "margin_base": 0.286166,
                      "item_margins": [
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.094013
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.055139
                        },
                        {
                          "name": "wonTackle",
                          "margin": -0.044722
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.024016
                        },
                        {
                          "name": "duelWon",
                          "margin": -0.023027
                        }
                      ],
                      "others_margin": 0.033832
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.7123361825942993,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "wonTackle",
                        "importance": 0.1003
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0586
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0501
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0492
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0386
                      }
                    ],
                    "decomposition": {
                      "base": 0.8256,
                      "items": [
                        {
                          "name": "wonTackle",
                          "contribution": -0.1755
                        },
                        {
                          "name": "tackle_success_rate",
                          "contribution": 0.0337
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0173
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0146
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0106
                        }
                      ],
                      "others": 0.0072,
                      "total": 0.7123,
                      "log_link": true,
                      "margin_base": -0.191612,
                      "item_margins": [
                        {
                          "name": "wonTackle",
                          "margin": -0.238942
                        },
                        {
                          "name": "tackle_success_rate",
                          "margin": 0.050537
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.025043
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": 0.020555
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.014887
                        }
                      ],
                      "others_margin": 0.010101
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 2.1138150691986084,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalClearance",
                        "importance": 0.138
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0733
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.034
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 3.3876,
                      "items": [
                        {
                          "name": "totalClearance",
                          "contribution": -0.8745
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.3523
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.1539
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0831
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0781
                        }
                      ],
                      "others": 0.1019,
                      "total": 2.1138,
                      "log_link": true,
                      "margin_base": 1.220122,
                      "item_margins": [
                        {
                          "name": "totalClearance",
                          "margin": -0.298606
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.151043
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.073903
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.040577
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.038102
                        }
                      ],
                      "others_margin": 0.049449
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.5132816433906555,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "aerialWon",
                        "importance": 0.1155
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0659
                      },
                      {
                        "name": "aerial_dominance",
                        "importance": 0.0345
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0335
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0332
                      }
                    ],
                    "decomposition": {
                      "base": 1.2696,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": -0.6262
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0606
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0262
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.025
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0236
                        }
                      ],
                      "others": -0.0471,
                      "total": 0.5133,
                      "log_link": true,
                      "margin_base": 0.238719,
                      "item_margins": [
                        {
                          "name": "aerialWon",
                          "margin": -0.679616
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.09896
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.043939
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.041893
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.041172
                        }
                      ],
                      "others_margin": -0.087947
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.5606297850608826,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0373
                      },
                      {
                        "name": "long_ball_accuracy",
                        "importance": 0.0337
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0333
                      },
                      {
                        "name": "errorLeadToAGoal",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0306
                      }
                    ],
                    "decomposition": {
                      "base": 0.476,
                      "items": [
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": 0.0366
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": 0.0333
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0277
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0229
                        },
                        {
                          "name": "aerialLost",
                          "contribution": -0.0162
                        }
                      ],
                      "others": 0.0261,
                      "total": 0.5606,
                      "log_link": false,
                      "margin_base": 0.476045,
                      "item_margins": [
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": 0.036621
                        },
                        {
                          "name": "progressive_carries_p90",
                          "margin": 0.033313
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.027657
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.022897
                        },
                        {
                          "name": "aerialLost",
                          "margin": -0.016227
                        }
                      ],
                      "others_margin": 0.026118
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.845660209655762,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0639
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0627
                      },
                      {
                        "name": "defensiveValueNormalized",
                        "importance": 0.0466
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0352
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 6.7578,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0769
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": 0.0423
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0189
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0187
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0147
                        }
                      ],
                      "others": -0.0542,
                      "total": 6.8457,
                      "log_link": false,
                      "margin_base": 6.757789,
                      "item_margins": [
                        {
                          "name": "passValueNormalized",
                          "margin": 0.076881
                        },
                        {
                          "name": "duel_win_rate",
                          "margin": 0.0423
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": 0.018895
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.018651
                        },
                        {
                          "name": "totalPass",
                          "margin": -0.014683
                        }
                      ],
                      "others_margin": -0.054173
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.1071, quality 0.857)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.8457,
                "minutes": 53,
                "total_pass": 44,
                "accurate_pass": 39,
                "duels_won": 4,
                "total_long_balls": 7,
                "accurate_long_balls": 4,
                "total_own_half_passes": 22,
                "accurate_own_half_passes": 21,
                "total_opp_half_passes": 22,
                "accurate_opp_half_passes": 18,
                "crosses_total": 6,
                "crosses_accurate": 2,
                "touches": 59,
                "possession_lost": 9.4101,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.2768,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.2214,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 17,
                "total_progression": 60,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 62000000,
                "quality_factor": 0.8569,
                "boost_factor": 1.1071
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0265)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.8457,
                "minutes": 53,
                "total_pass": 44,
                "accurate_pass": 39,
                "duels_won": 4,
                "total_long_balls": 7,
                "accurate_long_balls": 4,
                "total_own_half_passes": 22,
                "accurate_own_half_passes": 21,
                "total_opp_half_passes": 22,
                "accurate_opp_half_passes": 18,
                "crosses_total": 6,
                "crosses_accurate": 2,
                "touches": 59,
                "possession_lost": 9.4101,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.2935,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.2214,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 17,
                "total_progression": 60,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 37.4,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 4.46
              },
              "params": {
                "blend_weight": 0.0265,
                "history_matches": 4,
                "prior_reliability": 0.0733,
                "competition": "La Liga",
                "squad": "Real Madrid"
              },
              "changes": [
                {
                  "stat": "totalCross",
                  "before": 6.0889,
                  "after": 6.2406
                },
                {
                  "stat": "interceptionWon",
                  "before": 1.239,
                  "after": 1.3025
                },
                {
                  "stat": "totalShots",
                  "before": 0.6207,
                  "after": 0.6514
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0241
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.0,
                  "after": 0.0236
                },
                {
                  "stat": "goalAssist",
                  "before": 0.2768,
                  "after": 0.2935
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.8457,
                "minutes": 53,
                "total_pass": 44,
                "accurate_pass": 39,
                "duels_won": 4,
                "total_long_balls": 7,
                "accurate_long_balls": 4,
                "total_own_half_passes": 22,
                "accurate_own_half_passes": 21,
                "total_opp_half_passes": 22,
                "accurate_opp_half_passes": 18,
                "crosses_total": 6,
                "crosses_accurate": 2,
                "touches": 59,
                "possession_lost": 9.4101,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.2935,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.2214,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 17,
                "total_progression": 60,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 37.4,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 4.46
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.8457,
                "minutes": 53,
                "total_pass": 44,
                "accurate_pass": 39,
                "duels_won": 4,
                "total_long_balls": 7,
                "accurate_long_balls": 4,
                "total_own_half_passes": 22,
                "accurate_own_half_passes": 21,
                "total_opp_half_passes": 22,
                "accurate_opp_half_passes": 18,
                "crosses_total": 6,
                "crosses_accurate": 2,
                "touches": 59,
                "possession_lost": 9.4101,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.2935,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.2214,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 17,
                "total_progression": 60,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 37.4,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 4.46,
                "tackles_in_zone": 1.1,
                "tackles_won_in_zone": 1.1,
                "interceptions_in_zone": 1.4,
                "clearances_in_zone": 1.2,
                "aerial_duels_won": 0.8,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Georges Mikautadze",
                "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": "Georges Mikautadze",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.54 (squad xG sum 1.8684, xG scale 1.8936, xA scale 1.8936, team xA 2.35 = 0.66 x lambda)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.8457,
                "minutes": 53,
                "total_pass": 44,
                "accurate_pass": 39,
                "duels_won": 4,
                "total_long_balls": 7,
                "accurate_long_balls": 4,
                "total_own_half_passes": 22,
                "accurate_own_half_passes": 21,
                "total_opp_half_passes": 22,
                "accurate_opp_half_passes": 18,
                "crosses_total": 6,
                "crosses_accurate": 2,
                "touches": 59,
                "possession_lost": 9.4101,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.2935,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.4192,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 17,
                "total_progression": 60,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 37.4,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 4.46,
                "tackles_in_zone": 1.1,
                "tackles_won_in_zone": 1.1,
                "interceptions_in_zone": 1.4,
                "clearances_in_zone": 1.2,
                "aerial_duels_won": 0.8,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Georges Mikautadze",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 1.25
              },
              "params": {
                "team_lambda": 3.538,
                "squad_xg_sum": 1.8684,
                "squad_xa_sum": 1.2396,
                "team_expected_assists": 2.3473,
                "team_xa_to_xg_ratio": 0.6635,
                "bench_appearance_weighted": true,
                "xg_scale": 1.8936,
                "xa_scale": 1.8936,
                "opponent_lambda": 1.348,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_assists",
                  "before": 0.2214,
                  "after": 0.4192
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 11 by projected rating, fifa_overall 84.0; not used by the projection)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.8457,
                "minutes": 53,
                "total_pass": 44,
                "accurate_pass": 39,
                "duels_won": 4,
                "total_long_balls": 7,
                "accurate_long_balls": 4,
                "total_own_half_passes": 22,
                "accurate_own_half_passes": 21,
                "total_opp_half_passes": 22,
                "accurate_opp_half_passes": 18,
                "crosses_total": 6,
                "crosses_accurate": 2,
                "touches": 59,
                "possession_lost": 9.4101,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.2935,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.4192,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 17,
                "total_progression": 60,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 37.4,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 4.46,
                "tackles_in_zone": 1.1,
                "tackles_won_in_zone": 1.1,
                "interceptions_in_zone": 1.4,
                "clearances_in_zone": 1.2,
                "aerial_duels_won": 0.8,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Georges Mikautadze",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 1.25,
                "fifa_overall": 84.0
              },
              "params": {
                "match_squad_rank": 11,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 220,
                "fifa_rank": 224.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 84.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.8457,
                "minutes": 53,
                "total_pass": 44,
                "accurate_pass": 39,
                "duels_won": 4,
                "total_long_balls": 7,
                "accurate_long_balls": 4,
                "total_own_half_passes": 22,
                "accurate_own_half_passes": 21,
                "total_opp_half_passes": 22,
                "accurate_opp_half_passes": 18,
                "crosses_total": 6,
                "crosses_accurate": 2,
                "touches": 59,
                "possession_lost": 9.4101,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.2935,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.4192,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 17,
                "total_progression": 60,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 37.4,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 4.46,
                "tackles_in_zone": 1.1,
                "tackles_won_in_zone": 1.1,
                "interceptions_in_zone": 1.4,
                "clearances_in_zone": 1.2,
                "aerial_duels_won": 0.8,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Georges Mikautadze",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 1.25,
                "fifa_overall": 84.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 0.001,
                "squad_weight_total": 3.5857,
                "weight_share": 0.0003,
                "finishing_factor": 1.0,
                "appearance_weight": 1.0,
                "weight_rank": 11,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Kylian Mbappé",
                    "weight": 1.2537,
                    "already": 0,
                    "effective_weight": 1.2537,
                    "runner_up": "Jude Bellingham",
                    "runner_up_effective_weight": 0.5657
                  },
                  {
                    "n": 2,
                    "player": "Jude Bellingham",
                    "weight": 0.5657,
                    "already": 0,
                    "effective_weight": 0.5657,
                    "runner_up": "Vinícius Júnior",
                    "runner_up_effective_weight": 0.5343
                  },
                  {
                    "n": 3,
                    "player": "Vinícius Júnior",
                    "weight": 0.5343,
                    "already": 0,
                    "effective_weight": 0.5343,
                    "runner_up": "Kylian Mbappé",
                    "runner_up_effective_weight": 0.5335
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.8457,
                "minutes": 53,
                "total_pass": 44,
                "accurate_pass": 39,
                "duels_won": 4,
                "total_long_balls": 7,
                "accurate_long_balls": 4,
                "total_own_half_passes": 22,
                "accurate_own_half_passes": 21,
                "total_opp_half_passes": 22,
                "accurate_opp_half_passes": 18,
                "crosses_total": 6,
                "crosses_accurate": 2,
                "touches": 59,
                "possession_lost": 9.4101,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.2935,
                "assists": 1,
                "expected_goals": 0.0,
                "expected_assists": 0.4192,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 17,
                "total_progression": 60,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 37.4,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 4.46,
                "tackles_in_zone": 1.1,
                "tackles_won_in_zone": 1.1,
                "interceptions_in_zone": 1.4,
                "clearances_in_zone": 1.2,
                "aerial_duels_won": 0.8,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Georges Mikautadze",
                "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": 1,
                "assist_probability": 0.3424,
                "finishing_factor": 1.0,
                "creation_factor": 1.25,
                "fifa_overall": 84.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 2,
                "assists_allocated": 1,
                "assist_probability": 0.3424,
                "provider_weight": 0.524,
                "squad_weight_total": 2.5484,
                "weight_share": 0.2056,
                "creation_factor": 1.25,
                "appearance_weight": 1.0,
                "weight_rank": 1,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Trent Alexander-Arnold",
                    "weight": 0.524,
                    "already": 0,
                    "effective_weight": 0.524,
                    "runner_up": "Kylian Mbappé",
                    "runner_up_effective_weight": 0.4996
                  },
                  {
                    "n": 2,
                    "player": "Kylian Mbappé",
                    "weight": 0.4996,
                    "already": 0,
                    "effective_weight": 0.4996,
                    "runner_up": "Arda Güler",
                    "runner_up_effective_weight": 0.3574
                  }
                ]
              }
            }
          ]
        },
        "Marc Cucurella": {
          "player_id": 794939,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 17,
          "height": 175,
          "market_value": 62000000,
          "stats": {
            "interceptions": 1,
            "tackles": 2,
            "tackles_won": 1,
            "clearances": 3,
            "aerial_won": 1,
            "total_shots": 0,
            "rating": 6.6572,
            "minutes": 61,
            "total_pass": 40,
            "accurate_pass": 36,
            "duels_won": 4,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 18,
            "accurate_own_half_passes": 16,
            "total_opp_half_passes": 0,
            "accurate_opp_half_passes": 0,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 55,
            "possession_lost": 6.4874,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assist_rate": 0.0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0418,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 10,
            "total_progression": 31,
            "progressive_carries": 0,
            "key_pass": 0,
            "shots_off_target": 0,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "minutesPct": 60.0,
            "pointsPerMatch": 3.0,
            "netGoalDifferencePer90": 4.44,
            "opponent_faced": "Georges Mikautadze",
            "matchup_zone": "Shape fallback",
            "antagonist_source": "formation_fallback",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0409,
            "finishing_factor": 1.0,
            "creation_factor": 0.8,
            "fifa_overall": 85.0
          },
          "latest_10_games": [
            {
              "match_id": 16416339.0,
              "match_date": "2026-09-20",
              "home_team": "Atlético Madrid",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 90,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.01,
                "total_shots": 0,
                "total_pass": 48,
                "accurate_pass": 42,
                "tackles": 5,
                "tackles_won": 3,
                "clearances": 2,
                "duels_won": 5,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416342.0,
              "match_date": "2026-09-15",
              "home_team": "Elche",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Elche",
              "stats": {
                "minutes": 90,
                "rating": 5.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.01,
                "total_shots": 0,
                "total_pass": 44,
                "accurate_pass": 38,
                "tackles": 2,
                "interceptions": 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": 16416331.0,
              "match_date": "2026-09-12",
              "home_team": "Real Madrid",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "total_pass": 1,
                "accurate_pass": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416315.0,
              "match_date": "2026-09-04",
              "home_team": "Real Betis",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 88,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0271,
                "total_shots": 0,
                "total_pass": 60,
                "accurate_pass": 56,
                "clearances": 2,
                "aerial_won": 2,
                "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": 16416312.0,
              "match_date": "2026-08-30",
              "home_team": "Real Madrid",
              "away_team": "Málaga CF",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 90,
                "rating": 7.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0437,
                "total_shots": 0,
                "total_pass": 52,
                "accurate_pass": 46,
                "key_pass": 1,
                "tackles": 3,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421051.0,
              "match_date": "2026-08-26",
              "home_team": "Real Madrid",
              "away_team": "Real Sociedad",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Madrid",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 45,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0122,
                "total_shots": 0,
                "total_pass": 28,
                "accurate_pass": 24,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 1,
                "duels_won": 2,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416306.0,
              "match_date": "2026-08-22",
              "home_team": "Espanyol",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Madrid",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 26,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0464,
                "total_shots": 0,
                "total_pass": 21,
                "accurate_pass": 19,
                "key_pass": 1,
                "tackles": 1,
                "interceptions": 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"
            }
          ],
          "ranking": {
            "global_player_rank": 77,
            "combined_rank_score": 111.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 84.0,
            "sofascore_rating": 7.54,
            "sofascore_appearances": 5.0,
            "fifa_rank": 138.0,
            "fifa_overall": 85.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 17,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.6572,
            "source_file": "data/player_rankings.csv",
            "player_name": "Marc Cucurella",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Kevin De Bruyne",
                  "ranking": 72
                },
                {
                  "player_name": "Silva Denisson",
                  "ranking": 73
                },
                {
                  "player_name": "Désiré Doué",
                  "ranking": 74
                },
                {
                  "player_name": "Chema Andrés",
                  "ranking": 75
                },
                {
                  "player_name": "Youri Tielemans",
                  "ranking": 76
                }
              ],
              "lower": [
                {
                  "player_name": "Dominik Szoboszlai",
                  "ranking": 78
                },
                {
                  "player_name": "Thibaut Courtois",
                  "ranking": 79
                },
                {
                  "player_name": "Otávio Costa",
                  "ranking": 80
                },
                {
                  "player_name": "Marc Guéhi",
                  "ranking": 81
                },
                {
                  "player_name": "Jaden Philogene-Bidace",
                  "ranking": 82
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.706,
          "history_matches": 7,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "D_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "totalOppositionHalfPasses",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "ballRecovery",
              "touches",
              "totalClearance",
              "wonTackle",
              "interceptionWon",
              "dispossessed",
              "challengeLost",
              "errorLeadToAShot",
              "errorLeadToAGoal",
              "possessionLostCtrl",
              "passValueNormalized",
              "defensiveValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "totalShots",
              "rating"
            ],
            "history_matches": 7,
            "data_confidence": 0.706,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.1071,
            "fbref_prior_metrics": {
              "squad": "Real Madrid",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 1.0,
              "minutes": 162.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.0,
              "prior_reliability": 0.12
            },
            "rationale": "XGBoost regressor (D_service) evaluated 7 historical appearances across 7 target models; FBref 2026-2027 prior blended (La Liga, Real Madrid, rel: 0.12, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 7 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.6572,
                "minutes": 61,
                "total_pass": 36,
                "accurate_pass": 32,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 17,
                "accurate_own_half_passes": 15,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 50,
                "possession_lost": 5.86,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.02,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 9,
                "total_progression": 28,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:01:55.523250+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 402,
                    "rows": 11400
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Atlético Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2208,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-15",
                    "opponent": "Elche",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1877,
                    "rating": 5.8
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Rayo Vallecano",
                    "minutes": 1.0,
                    "is_starting": true,
                    "weight": 0.1595,
                    "rating": null
                  },
                  {
                    "match_date": "2026-09-04",
                    "opponent": "Real Betis",
                    "minutes": 88.0,
                    "is_starting": true,
                    "weight": 0.1356,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Málaga CF",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1152,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-08-26",
                    "opponent": "Real Sociedad",
                    "minutes": 45.0,
                    "is_starting": false,
                    "weight": 0.098,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Espanyol",
                    "minutes": 26.0,
                    "is_starting": false,
                    "weight": 0.0833,
                    "rating": 6.9
                  }
                ],
                "feature_row": {
                  "history_matches": 7.0,
                  "is_starting_11": 1.0,
                  "totalClearance": 1.4889,
                  "defensive_actions": 2.4903,
                  "wonTackle": 0.9735,
                  "totalTackle_p90": 2.505,
                  "totalClearance_p90": 1.593,
                  "aerialWon": 0.4697
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.6342571973800659,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "interceptionWon",
                        "importance": 0.0903
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0858
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.052
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0447
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0364
                      }
                    ],
                    "decomposition": {
                      "base": 0.9034,
                      "items": [
                        {
                          "name": "interceptionWon",
                          "contribution": -0.1188
                        },
                        {
                          "name": "interceptionWon_p90",
                          "contribution": -0.0998
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0297
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0182
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0159
                        }
                      ],
                      "others": -0.0461,
                      "total": 0.6343,
                      "log_link": true,
                      "margin_base": -0.101631,
                      "item_margins": [
                        {
                          "name": "interceptionWon",
                          "margin": -0.141005
                        },
                        {
                          "name": "interceptionWon_p90",
                          "margin": -0.136111
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.042477
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.025745
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.023129
                        }
                      ],
                      "others_margin": -0.070156
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.3719531297683716,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "defensive_actions",
                        "importance": 0.1044
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0863
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0629
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.045
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0342
                      }
                    ],
                    "decomposition": {
                      "base": 1.3313,
                      "items": [
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.1289
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0583
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0439
                        },
                        {
                          "name": "wonTackle",
                          "contribution": -0.0394
                        },
                        {
                          "name": "duelWon",
                          "contribution": -0.025
                        }
                      ],
                      "others": 0.0784,
                      "total": 1.372,
                      "log_link": true,
                      "margin_base": 0.286166,
                      "item_margins": [
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.092437
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.040753
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.031794
                        },
                        {
                          "name": "wonTackle",
                          "margin": -0.029406
                        },
                        {
                          "name": "duelWon",
                          "margin": -0.019137
                        }
                      ],
                      "others_margin": 0.058723
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.6943204998970032,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "wonTackle",
                        "importance": 0.1003
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0586
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0501
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0492
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0386
                      }
                    ],
                    "decomposition": {
                      "base": 0.8256,
                      "items": [
                        {
                          "name": "wonTackle",
                          "contribution": -0.1429
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0232
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0216
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0176
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0128
                        }
                      ],
                      "others": 0.0052,
                      "total": 0.6943,
                      "log_link": true,
                      "margin_base": -0.191612,
                      "item_margins": [
                        {
                          "name": "wonTackle",
                          "margin": -0.190072
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.033389
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.031028
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": 0.025464
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.018422
                        }
                      ],
                      "others_margin": 0.007459
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 2.564793109893799,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalClearance",
                        "importance": 0.138
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0733
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.034
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 3.3876,
                      "items": [
                        {
                          "name": "totalClearance",
                          "contribution": -0.6886
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.1639
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.1141
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.097
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0717
                        }
                      ],
                      "others": 0.1185,
                      "total": 2.5648,
                      "log_link": true,
                      "margin_base": 1.220122,
                      "item_margins": [
                        {
                          "name": "totalClearance",
                          "margin": -0.227253
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.062652
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.04607
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.039288
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.028876
                        }
                      ],
                      "others_margin": 0.047319
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.4713427424430847,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "aerialWon",
                        "importance": 0.1155
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0659
                      },
                      {
                        "name": "aerial_dominance",
                        "importance": 0.0345
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0335
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0332
                      }
                    ],
                    "decomposition": {
                      "base": 1.2696,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": -0.6235
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0691
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0358
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0268
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0212
                        }
                      ],
                      "others": -0.0219,
                      "total": 0.4713,
                      "log_link": true,
                      "margin_base": 0.238719,
                      "item_margins": [
                        {
                          "name": "aerialWon",
                          "margin": -0.675449
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.1131
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.064022
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.050732
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.042175
                        }
                      ],
                      "others_margin": -0.04541
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.3419208526611328,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0373
                      },
                      {
                        "name": "long_ball_accuracy",
                        "importance": 0.0337
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0333
                      },
                      {
                        "name": "errorLeadToAGoal",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0306
                      }
                    ],
                    "decomposition": {
                      "base": 0.476,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.042
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": -0.0191
                        },
                        {
                          "name": "aerialLost",
                          "contribution": -0.0142
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0103
                        },
                        {
                          "name": "duelWon",
                          "contribution": -0.0097
                        }
                      ],
                      "others": -0.0388,
                      "total": 0.3419,
                      "log_link": false,
                      "margin_base": 0.476045,
                      "item_margins": [
                        {
                          "name": "passValueNormalized",
                          "margin": -0.041952
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": -0.019053
                        },
                        {
                          "name": "aerialLost",
                          "margin": -0.014204
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.010313
                        },
                        {
                          "name": "duelWon",
                          "margin": -0.009665
                        }
                      ],
                      "others_margin": -0.038936
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.657211780548096,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0639
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0627
                      },
                      {
                        "name": "defensiveValueNormalized",
                        "importance": 0.0466
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0352
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 6.7578,
                      "items": [
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0476
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0472
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0178
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0134
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": 0.0129
                        }
                      ],
                      "others": -0.0499,
                      "total": 6.6572,
                      "log_link": false,
                      "margin_base": 6.757789,
                      "item_margins": [
                        {
                          "name": "defensiveValueNormalized",
                          "margin": -0.04762
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.047245
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.017781
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.013386
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": 0.012853
                        }
                      ],
                      "others_margin": -0.04973
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.1071, quality 0.857)",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.6572,
                "minutes": 61,
                "total_pass": 40,
                "accurate_pass": 36,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 55,
                "possession_lost": 6.4874,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0221,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 31,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0
              },
              "params": {
                "market_value_eur": 62000000,
                "quality_factor": 0.8569,
                "boost_factor": 1.1071
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0325)",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.6572,
                "minutes": 61,
                "total_pass": 40,
                "accurate_pass": 36,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 55,
                "possession_lost": 6.4874,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0221,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 31,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 60.0,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 4.44
              },
              "params": {
                "blend_weight": 0.0325,
                "history_matches": 7,
                "prior_reliability": 0.12,
                "competition": "La Liga",
                "squad": "Real Madrid"
              },
              "changes": [
                {
                  "stat": "wonTackle",
                  "before": 0.7687,
                  "after": 0.7979
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.7022,
                  "after": 0.7155
                },
                {
                  "stat": "totalShots",
                  "before": 0.3785,
                  "after": 0.3662
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.6572,
                "minutes": 61,
                "total_pass": 40,
                "accurate_pass": 36,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 55,
                "possession_lost": 6.4874,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0221,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 31,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 60.0,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 4.44
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.6572,
                "minutes": 61,
                "total_pass": 40,
                "accurate_pass": 36,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 55,
                "possession_lost": 6.4874,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0221,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 31,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 60.0,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 4.44,
                "opponent_faced": "Georges Mikautadze",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Georges Mikautadze",
                  "matchup_zone": "Shape fallback"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.54 (squad xG sum 1.8684, xG scale 1.8936, xA scale 1.8936, team xA 2.35 = 0.66 x lambda)",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.6572,
                "minutes": 61,
                "total_pass": 40,
                "accurate_pass": 36,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 55,
                "possession_lost": 6.4874,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0418,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 31,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 60.0,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 4.44,
                "opponent_faced": "Georges Mikautadze",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 3.538,
                "squad_xg_sum": 1.8684,
                "squad_xa_sum": 1.2396,
                "team_expected_assists": 2.3473,
                "team_xa_to_xg_ratio": 0.6635,
                "bench_appearance_weighted": true,
                "xg_scale": 1.8936,
                "xa_scale": 1.8936,
                "opponent_lambda": 1.348,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_assists",
                  "before": 0.0221,
                  "after": 0.0418
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 17 by projected rating, fifa_overall 85.0; not used by the projection)",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.6572,
                "minutes": 61,
                "total_pass": 40,
                "accurate_pass": 36,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 55,
                "possession_lost": 6.4874,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0418,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 31,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 60.0,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 4.44,
                "opponent_faced": "Georges Mikautadze",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 0.8,
                "fifa_overall": 85.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": 77,
                "fifa_rank": 138.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 85.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.6572,
                "minutes": 61,
                "total_pass": 40,
                "accurate_pass": 36,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 55,
                "possession_lost": 6.4874,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0418,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 31,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 60.0,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 4.44,
                "opponent_faced": "Georges Mikautadze",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 0.8,
                "fifa_overall": 85.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 0.001,
                "squad_weight_total": 3.5857,
                "weight_share": 0.0003,
                "finishing_factor": 1.0,
                "appearance_weight": 1.0,
                "weight_rank": 12,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Kylian Mbappé",
                    "weight": 1.2537,
                    "already": 0,
                    "effective_weight": 1.2537,
                    "runner_up": "Jude Bellingham",
                    "runner_up_effective_weight": 0.5657
                  },
                  {
                    "n": 2,
                    "player": "Jude Bellingham",
                    "weight": 0.5657,
                    "already": 0,
                    "effective_weight": 0.5657,
                    "runner_up": "Vinícius Júnior",
                    "runner_up_effective_weight": 0.5343
                  },
                  {
                    "n": 3,
                    "player": "Vinícius Júnior",
                    "weight": 0.5343,
                    "already": 0,
                    "effective_weight": 0.5343,
                    "runner_up": "Kylian Mbappé",
                    "runner_up_effective_weight": 0.5335
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.6572,
                "minutes": 61,
                "total_pass": 40,
                "accurate_pass": 36,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 55,
                "possession_lost": 6.4874,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0418,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 31,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 60.0,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 4.44,
                "opponent_faced": "Georges Mikautadze",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0409,
                "finishing_factor": 1.0,
                "creation_factor": 0.8,
                "fifa_overall": 85.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 2,
                "assists_allocated": 0,
                "assist_probability": 0.0409,
                "provider_weight": 0.0334,
                "squad_weight_total": 2.5484,
                "weight_share": 0.0131,
                "creation_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 11,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Trent Alexander-Arnold",
                    "weight": 0.524,
                    "already": 0,
                    "effective_weight": 0.524,
                    "runner_up": "Kylian Mbappé",
                    "runner_up_effective_weight": 0.4996
                  },
                  {
                    "n": 2,
                    "player": "Kylian Mbappé",
                    "weight": 0.4996,
                    "already": 0,
                    "effective_weight": 0.4996,
                    "runner_up": "Arda Güler",
                    "runner_up_effective_weight": 0.3574
                  }
                ]
              }
            }
          ]
        },
        "Jude Bellingham": {
          "player_id": 991011,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 5,
          "height": 188,
          "market_value": 151000000,
          "stats": {
            "key_pass": 2,
            "expected_assists": 0.2924,
            "assist_rate": 0.137,
            "assists": 0,
            "expected_goals": 0.4861,
            "goal_rate": 0.3069,
            "goals": 1,
            "shots_on_target": 1,
            "total_shots": 2,
            "rating": 7.1477,
            "minutes": 76,
            "total_pass": 39,
            "accurate_pass": 35,
            "duels_won": 8,
            "total_long_balls": 4,
            "accurate_long_balls": 0,
            "total_own_half_passes": 0,
            "accurate_own_half_passes": 0,
            "total_opp_half_passes": 28,
            "accurate_opp_half_passes": 24,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 60,
            "possession_lost": 8.802,
            "dispossessed": 0.0,
            "duels_lost": 5,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 5,
            "won_contest": 3,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 24,
            "total_progression": 91,
            "progressive_carries": 3,
            "shots_off_target": 1,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 50.0,
            "shotConversion": 0.25,
            "minutesPct": 89.6,
            "pointsPerMatch": 3.0,
            "netGoalDifferencePer90": 1.86,
            "duel_xg_multiplier": 1.1194,
            "dribbles_attempted": 3,
            "dribbles_successful": 1.3,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.501,
            "pressing_faced": "ULTRA_HIGH",
            "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
            "numerical_situation": "1v1",
            "opponent_defenders": "Alberto Moleiro",
            "opponent_faced": "Alberto Moleiro",
            "antagonist_source": "attacking_duel, midfield_pairing",
            "projected_goals": 1,
            "goal_probability": 0.385,
            "projected_assists": 0,
            "assist_probability": 0.2535,
            "finishing_factor": 1.1637,
            "creation_factor": 0.9149,
            "fifa_overall": 90.0
          },
          "latest_10_games": [
            {
              "match_id": 16416339.0,
              "match_date": "2026-09-20",
              "home_team": "Atlético Madrid",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 82,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0108,
                "total_shots": 0,
                "total_pass": 28,
                "accurate_pass": 24,
                "key_pass": 3,
                "tackles": 4,
                "tackles_won": 3,
                "interceptions": 1,
                "duels_won": 11,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416342.0,
              "match_date": "2026-09-15",
              "home_team": "Elche",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Elche",
              "stats": {
                "minutes": 22,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0203,
                "expected_assists": 0.2362,
                "total_shots": 1,
                "total_pass": 10,
                "accurate_pass": 9,
                "key_pass": 2,
                "duels_won": 4,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416331.0,
              "match_date": "2026-09-12",
              "home_team": "Real Madrid",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 90,
                "rating": 8.1,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.4019,
                "expected_assists": 0.0641,
                "total_shots": 4,
                "shots_on_target": 2,
                "total_pass": 38,
                "accurate_pass": 31,
                "key_pass": 2,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 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": 16416315.0,
              "match_date": "2026-09-04",
              "home_team": "Real Betis",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 90,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1651,
                "expected_assists": 0.4642,
                "total_shots": 3,
                "shots_on_target": 1,
                "shots_off_target": 2,
                "total_pass": 48,
                "accurate_pass": 43,
                "key_pass": 3,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 1,
                "duels_won": 6,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416312.0,
              "match_date": "2026-08-30",
              "home_team": "Real Madrid",
              "away_team": "Málaga CF",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 87,
                "rating": 8.5,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.4008,
                "expected_assists": 0.0465,
                "total_shots": 5,
                "shots_on_target": 2,
                "shots_off_target": 3,
                "total_pass": 38,
                "accurate_pass": 36,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 2,
                "aerial_won": 1,
                "duels_won": 7,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421051.0,
              "match_date": "2026-08-26",
              "home_team": "Real Madrid",
              "away_team": "Real Sociedad",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 78,
                "rating": 9.0,
                "assist_rate": 2.0,
                "assists": 2,
                "expected_goals": 0.1486,
                "expected_assists": 0.58,
                "total_shots": 1,
                "total_pass": 42,
                "accurate_pass": 40,
                "key_pass": 4,
                "tackles": 2,
                "tackles_won": 1,
                "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": 16416306.0,
              "match_date": "2026-08-22",
              "home_team": "Espanyol",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 80,
                "rating": 8.1,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.126,
                "expected_assists": 0.0492,
                "total_shots": 2,
                "shots_on_target": 2,
                "total_pass": 39,
                "accurate_pass": 37,
                "key_pass": 2,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 2,
                "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": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 5,
            "combined_rank_score": 11.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 9.0,
            "sofascore_rating": 8.5333,
            "sofascore_appearances": 3.0,
            "fifa_rank": 14.0,
            "fifa_overall": 90.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 5,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 7.1477,
            "source_file": "data/player_rankings.csv",
            "player_name": "Jude Bellingham",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Lamine Yamal",
                  "ranking": 1
                },
                {
                  "player_name": "Kylian Mbappé",
                  "ranking": 2
                },
                {
                  "player_name": "Erling Haaland",
                  "ranking": 3
                },
                {
                  "player_name": "Mariano Díaz",
                  "ranking": 4
                }
              ],
              "lower": [
                {
                  "player_name": "Pedri",
                  "ranking": 6
                },
                {
                  "player_name": "Ryu Won-Woo",
                  "ranking": 7
                },
                {
                  "player_name": "Bruno Fernandes",
                  "ranking": 8
                },
                {
                  "player_name": "Felix Horn Myhre",
                  "ranking": 9
                },
                {
                  "player_name": "Raphinha",
                  "ranking": 10
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.715,
          "history_matches": 7,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 7,
            "data_confidence": 0.715,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.1198,
            "fbref_prior_metrics": {
              "squad": "Real Madrid",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "minutes": 242.0,
              "goals_per90": 0.7407407407407407,
              "assists_per90": 0.7407407407407407,
              "shots_per90": 2.98,
              "shots_on_target_pct": 50.0,
              "prior_reliability": 0.18
            },
            "rationale": "XGBoost regressor (M_service) evaluated 7 historical appearances across 8 target models; FBref 2026-2027 prior blended (La Liga, Real Madrid, rel: 0.18, gls/90: 0.7407407407407407, ast/90: 0.7407407407407407)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.1379,
                "assist_rate": 0.0948,
                "assists": 0,
                "expected_goals": 0.2048,
                "goal_rate": 0.2236,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.1477,
                "minutes": 76,
                "total_pass": 35,
                "accurate_pass": 31,
                "duels_won": 7,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 25,
                "accurate_opp_half_passes": 21,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 54,
                "possession_lost": 7.86,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 4,
                "won_contest": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 21,
                "total_progression": 81,
                "progressive_carries": 3,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 6,
                  "trained_at": "2026-09-29T10:02:07.046807+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 550,
                    "rows": 13779
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Atlético Madrid",
                    "minutes": 82.0,
                    "is_starting": true,
                    "weight": 0.2208,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-09-15",
                    "opponent": "Elche",
                    "minutes": 22.0,
                    "is_starting": true,
                    "weight": 0.1877,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Rayo Vallecano",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1595,
                    "rating": 8.1
                  },
                  {
                    "match_date": "2026-09-04",
                    "opponent": "Real Betis",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1356,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Málaga CF",
                    "minutes": 87.0,
                    "is_starting": true,
                    "weight": 0.1152,
                    "rating": 8.5
                  },
                  {
                    "match_date": "2026-08-26",
                    "opponent": "Real Sociedad",
                    "minutes": 78.0,
                    "is_starting": true,
                    "weight": 0.098,
                    "rating": 9.0
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Espanyol",
                    "minutes": 80.0,
                    "is_starting": true,
                    "weight": 0.0833,
                    "rating": 8.1
                  }
                ],
                "feature_row": {
                  "history_matches": 7.0,
                  "is_starting_11": 1.0,
                  "totalShots": 2.0732,
                  "expectedAssists": 0.1862,
                  "creative_index": 1.0865,
                  "creative_efficiency": 0.0707,
                  "shotValueNormalized": 0.1941,
                  "dribbleValueNormalized": 0.3413
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 1.613618016242981,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.12
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0959
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0798
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0429
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0425
                      }
                    ],
                    "decomposition": {
                      "base": 0.9267,
                      "items": [
                        {
                          "name": "creative_index",
                          "contribution": 0.1719
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.1694
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0962
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.0683
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0615
                        }
                      ],
                      "others": 0.1196,
                      "total": 1.6136,
                      "log_link": true,
                      "margin_base": -0.076148,
                      "item_margins": [
                        {
                          "name": "creative_index",
                          "margin": 0.170185
                        },
                        {
                          "name": "keyPass",
                          "margin": 0.143423
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.07314
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": 0.048837
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.042065
                        }
                      ],
                      "others_margin": 0.076978
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.1379011571407318,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.118
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0768
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0579
                      },
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0397
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0318
                      }
                    ],
                    "decomposition": {
                      "base": 0.0872,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0236
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.009
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0079
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0056
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": 0.0039
                        }
                      ],
                      "others": 0.0165,
                      "total": 0.1379,
                      "log_link": true,
                      "margin_base": -2.439192,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": 0.23935
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.078431
                        },
                        {
                          "name": "cross_creative_contribution",
                          "margin": -0.068213
                        },
                        {
                          "name": "creative_index",
                          "margin": 0.049221
                        },
                        {
                          "name": "duelWon_p90",
                          "margin": 0.032748
                        }
                      ],
                      "others_margin": 0.126437
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.09476824849843979,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0669
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0574
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0465
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0404
                      },
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0277
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0077
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.0048
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.004
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.0039
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0033
                        }
                      ],
                      "others": -0.0074,
                      "total": 0.0948,
                      "log_link": true,
                      "margin_base": -2.463441,
                      "item_margins": [
                        {
                          "name": "creative_efficiency",
                          "margin": 0.086349
                        },
                        {
                          "name": "keyPass",
                          "margin": 0.050692
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.039785
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": 0.03768
                        },
                        {
                          "name": "totalProgression",
                          "margin": -0.031493
                        }
                      ],
                      "others_margin": -0.075892
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.20480036735534668,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.082
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0374
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0365
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.035
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0344
                      }
                    ],
                    "decomposition": {
                      "base": 0.1826,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.024
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0106
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0108
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0098
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": -0.0069
                        }
                      ],
                      "others": -0.0065,
                      "total": 0.2048,
                      "log_link": true,
                      "margin_base": -1.700309,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": 0.123548
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.049912
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.048369
                        },
                        {
                          "name": "intensity_index",
                          "margin": -0.04413
                        },
                        {
                          "name": "kilometersCovered",
                          "margin": -0.032005
                        }
                      ],
                      "others_margin": -0.031105
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.22355225682258606,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0879
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0676
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0367
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.031
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0294
                      }
                    ],
                    "decomposition": {
                      "base": 0.1479,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0609
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0495
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.023
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": -0.0185
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0146
                        }
                      ],
                      "others": 0.0214,
                      "total": 0.2236,
                      "log_link": true,
                      "margin_base": -1.911166,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": 0.34506
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.212762
                        },
                        {
                          "name": "intensity_index",
                          "margin": -0.093192
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "margin": -0.082081
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.069553
                        }
                      ],
                      "others_margin": 0.10006
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.637033224105835,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1114
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0574
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0383
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0333
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.033
                      }
                    ],
                    "decomposition": {
                      "base": 0.3374,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.1689
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0746
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0403
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": 0.0259
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0246
                        }
                      ],
                      "others": 0.0459,
                      "total": 0.637,
                      "log_link": true,
                      "margin_base": -1.086396,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.405821
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": 0.137493
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.071955
                        },
                        {
                          "name": "duel_win_rate",
                          "margin": 0.046763
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.042471
                        }
                      ],
                      "others_margin": 0.074868
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.7992753982543945,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1236
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0751
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0663
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0364
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 1.0381,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.4861
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.145
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0444
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0382
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0287
                        }
                      ],
                      "others": 0.1076,
                      "total": 1.7993,
                      "log_link": false,
                      "margin_base": 1.038069,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.486058
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.144973
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.044381
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": 0.038182
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.028709
                        }
                      ],
                      "others_margin": 0.107666
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 7.147682189941406,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0666
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "touches",
                        "importance": 0.041
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0305
                      }
                    ],
                    "decomposition": {
                      "base": 6.8598,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0524
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0396
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0388
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0244
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.023
                        }
                      ],
                      "others": 0.1097,
                      "total": 7.1477,
                      "log_link": false,
                      "margin_base": 6.859756,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": 0.05238
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": 0.039551
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.038832
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.024412
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.023045
                        }
                      ],
                      "others_margin": 0.109706
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.1198, quality 0.899)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.1544,
                "assist_rate": 0.1061,
                "assists": 0,
                "expected_goals": 0.2293,
                "goal_rate": 0.2503,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.1477,
                "minutes": 76,
                "total_pass": 39,
                "accurate_pass": 35,
                "duels_won": 8,
                "total_long_balls": 4,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 28,
                "accurate_opp_half_passes": 24,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 60,
                "possession_lost": 8.802,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 5,
                "won_contest": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 24,
                "total_progression": 91,
                "progressive_carries": 3,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 151000000,
                "quality_factor": 0.8995,
                "boost_factor": 1.1198
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0488)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.1544,
                "assist_rate": 0.137,
                "assists": 0,
                "expected_goals": 0.2293,
                "goal_rate": 0.2742,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.1477,
                "minutes": 76,
                "total_pass": 39,
                "accurate_pass": 35,
                "duels_won": 8,
                "total_long_balls": 4,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 28,
                "accurate_opp_half_passes": 24,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 60,
                "possession_lost": 8.802,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 5,
                "won_contest": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 24,
                "total_progression": 91,
                "progressive_carries": 3,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.25,
                "minutesPct": 89.6,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 1.86
              },
              "params": {
                "blend_weight": 0.0488,
                "history_matches": 7,
                "prior_reliability": 0.18,
                "competition": "La Liga",
                "squad": "Real Madrid"
              },
              "changes": [
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.1264
                },
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0722
                },
                {
                  "stat": "totalShots",
                  "before": 2.0149,
                  "after": 2.0619
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.7134,
                  "after": 0.7513
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0361
                },
                {
                  "stat": "goalAssist",
                  "before": 0.1061,
                  "after": 0.137
                },
                {
                  "stat": "goals",
                  "before": 0.2503,
                  "after": 0.2742
                },
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.0181
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.1544,
                "assist_rate": 0.137,
                "assists": 0,
                "expected_goals": 0.2293,
                "goal_rate": 0.2742,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.1477,
                "minutes": 76,
                "total_pass": 39,
                "accurate_pass": 35,
                "duels_won": 8,
                "total_long_balls": 4,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 28,
                "accurate_opp_half_passes": 24,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 60,
                "possession_lost": 8.802,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 5,
                "won_contest": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 24,
                "total_progression": 91,
                "progressive_carries": 3,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.25,
                "minutesPct": 89.6,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 1.86
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.1544,
                "assist_rate": 0.137,
                "assists": 0,
                "expected_goals": 0.2567,
                "goal_rate": 0.3069,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.1477,
                "minutes": 76,
                "total_pass": 39,
                "accurate_pass": 35,
                "duels_won": 8,
                "total_long_balls": 4,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 28,
                "accurate_opp_half_passes": 24,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 60,
                "possession_lost": 8.802,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 5,
                "won_contest": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 24,
                "total_progression": 91,
                "progressive_carries": 3,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.25,
                "minutesPct": 89.6,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 1.86,
                "duel_xg_multiplier": 1.1194,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.3,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.501,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Alberto Moleiro",
                "opponent_faced": "Alberto Moleiro",
                "antagonist_source": "attacking_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Alberto Moleiro",
                  "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                  "duel_win_rate": 0.501,
                  "pressing_faced": "ULTRA_HIGH",
                  "numerical_situation": "1v1",
                  "xg_multiplier": 1.1194,
                  "skill_edge": 0.0212,
                  "height_edge": 0.06,
                  "attacker_skill": 0.8998,
                  "defender_skill": 0.8526,
                  "xg_override": 0.2567
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.0,
                  "after": 1.2
                },
                {
                  "stat": "totalShots",
                  "before": 2.0619,
                  "after": 2.3081
                },
                {
                  "stat": "shotOffTarget",
                  "before": 1.3015,
                  "after": 1.4569
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.7513,
                  "after": 0.841
                },
                {
                  "stat": "goals",
                  "before": 0.2742,
                  "after": 0.3069
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.2293,
                  "after": 0.2567
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.54 (squad xG sum 1.8684, xG scale 1.8936, xA scale 1.8936, team xA 2.35 = 0.66 x lambda)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.2924,
                "assist_rate": 0.137,
                "assists": 0,
                "expected_goals": 0.4861,
                "goal_rate": 0.3069,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.1477,
                "minutes": 76,
                "total_pass": 39,
                "accurate_pass": 35,
                "duels_won": 8,
                "total_long_balls": 4,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 28,
                "accurate_opp_half_passes": 24,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 60,
                "possession_lost": 8.802,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 5,
                "won_contest": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 24,
                "total_progression": 91,
                "progressive_carries": 3,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.25,
                "minutesPct": 89.6,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 1.86,
                "duel_xg_multiplier": 1.1194,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.3,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.501,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Alberto Moleiro",
                "opponent_faced": "Alberto Moleiro",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.1637,
                "creation_factor": 0.9149
              },
              "params": {
                "team_lambda": 3.538,
                "squad_xg_sum": 1.8684,
                "squad_xa_sum": 1.2396,
                "team_expected_assists": 2.3473,
                "team_xa_to_xg_ratio": 0.6635,
                "bench_appearance_weighted": true,
                "xg_scale": 1.8936,
                "xa_scale": 1.8936,
                "opponent_lambda": 1.348,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.2567,
                  "after": 0.4861
                },
                {
                  "stat": "expected_assists",
                  "before": 0.1544,
                  "after": 0.2924
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 5 by projected rating, fifa_overall 90.0; not used by the projection)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.2924,
                "assist_rate": 0.137,
                "assists": 0,
                "expected_goals": 0.4861,
                "goal_rate": 0.3069,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.1477,
                "minutes": 76,
                "total_pass": 39,
                "accurate_pass": 35,
                "duels_won": 8,
                "total_long_balls": 4,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 28,
                "accurate_opp_half_passes": 24,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 60,
                "possession_lost": 8.802,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 5,
                "won_contest": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 24,
                "total_progression": 91,
                "progressive_carries": 3,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.25,
                "minutesPct": 89.6,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 1.86,
                "duel_xg_multiplier": 1.1194,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.3,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.501,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Alberto Moleiro",
                "opponent_faced": "Alberto Moleiro",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.1637,
                "creation_factor": 0.9149,
                "fifa_overall": 90.0
              },
              "params": {
                "match_squad_rank": 5,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 5,
                "fifa_rank": 14.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 90.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.2924,
                "assist_rate": 0.137,
                "assists": 0,
                "expected_goals": 0.4861,
                "goal_rate": 0.3069,
                "goals": 1,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.1477,
                "minutes": 76,
                "total_pass": 39,
                "accurate_pass": 35,
                "duels_won": 8,
                "total_long_balls": 4,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 28,
                "accurate_opp_half_passes": 24,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 60,
                "possession_lost": 8.802,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 5,
                "won_contest": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 24,
                "total_progression": 91,
                "progressive_carries": 3,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.25,
                "minutesPct": 89.6,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 1.86,
                "duel_xg_multiplier": 1.1194,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.3,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.501,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Alberto Moleiro",
                "opponent_faced": "Alberto Moleiro",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 1,
                "goal_probability": 0.385,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.1637,
                "creation_factor": 0.9149,
                "fifa_overall": 90.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 1,
                "goal_probability": 0.385,
                "scorer_weight": 0.5657,
                "squad_weight_total": 3.5857,
                "weight_share": 0.1578,
                "finishing_factor": 1.1637,
                "appearance_weight": 1.0,
                "weight_rank": 2,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Kylian Mbappé",
                    "weight": 1.2537,
                    "already": 0,
                    "effective_weight": 1.2537,
                    "runner_up": "Jude Bellingham",
                    "runner_up_effective_weight": 0.5657
                  },
                  {
                    "n": 2,
                    "player": "Jude Bellingham",
                    "weight": 0.5657,
                    "already": 0,
                    "effective_weight": 0.5657,
                    "runner_up": "Vinícius Júnior",
                    "runner_up_effective_weight": 0.5343
                  },
                  {
                    "n": 3,
                    "player": "Vinícius Júnior",
                    "weight": 0.5343,
                    "already": 0,
                    "effective_weight": 0.5343,
                    "runner_up": "Kylian Mbappé",
                    "runner_up_effective_weight": 0.5335
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.2924,
                "assist_rate": 0.137,
                "assists": 0,
                "expected_goals": 0.4861,
                "goal_rate": 0.3069,
                "goals": 1,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.1477,
                "minutes": 76,
                "total_pass": 39,
                "accurate_pass": 35,
                "duels_won": 8,
                "total_long_balls": 4,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 28,
                "accurate_opp_half_passes": 24,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 60,
                "possession_lost": 8.802,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 5,
                "won_contest": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 24,
                "total_progression": 91,
                "progressive_carries": 3,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.25,
                "minutesPct": 89.6,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 1.86,
                "duel_xg_multiplier": 1.1194,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.3,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.501,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Alberto Moleiro",
                "opponent_faced": "Alberto Moleiro",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 1,
                "goal_probability": 0.385,
                "projected_assists": 0,
                "assist_probability": 0.2535,
                "finishing_factor": 1.1637,
                "creation_factor": 0.9149,
                "fifa_overall": 90.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 2,
                "assists_allocated": 0,
                "assist_probability": 0.2535,
                "provider_weight": 0.2675,
                "squad_weight_total": 2.5484,
                "weight_share": 0.105,
                "creation_factor": 0.9149,
                "appearance_weight": 1.0,
                "weight_rank": 4,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Trent Alexander-Arnold",
                    "weight": 0.524,
                    "already": 0,
                    "effective_weight": 0.524,
                    "runner_up": "Kylian Mbappé",
                    "runner_up_effective_weight": 0.4996
                  },
                  {
                    "n": 2,
                    "player": "Kylian Mbappé",
                    "weight": 0.4996,
                    "already": 0,
                    "effective_weight": 0.4996,
                    "runner_up": "Arda Güler",
                    "runner_up_effective_weight": 0.3574
                  }
                ]
              }
            }
          ]
        },
        "Arda Güler": {
          "player_id": 1091116,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 15,
          "height": 176,
          "market_value": 87000000,
          "stats": {
            "key_pass": 2,
            "expected_assists": 0.4467,
            "assist_rate": 0.1714,
            "assists": 0,
            "expected_goals": 0.4351,
            "goal_rate": 0.153,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 2,
            "rating": 7.1753,
            "minutes": 50,
            "total_pass": 31,
            "accurate_pass": 27,
            "duels_won": 4,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 0,
            "accurate_own_half_passes": 0,
            "total_opp_half_passes": 22,
            "accurate_opp_half_passes": 19,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 48,
            "possession_lost": 0.0,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 2,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 13,
            "total_progression": 57,
            "progressive_carries": 2,
            "shots_off_target": 1,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 50.0,
            "shotConversion": 0.25,
            "minutesPct": 53.3,
            "pointsPerMatch": 3.0,
            "netGoalDifferencePer90": 1.87,
            "duel_xg_multiplier": 1.0497,
            "dribbles_attempted": 3,
            "dribbles_successful": 1.2,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.454,
            "pressing_faced": "ULTRA_HIGH",
            "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
            "numerical_situation": "1v1",
            "opponent_defenders": "Alberto Moleiro",
            "opponent_faced": "Alberto Moleiro",
            "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.3528,
            "projected_assists": 0,
            "assist_probability": 0.3603,
            "finishing_factor": 0.8,
            "creation_factor": 0.8,
            "fifa_overall": 83.0
          },
          "latest_10_games": [
            {
              "match_id": 16416339.0,
              "match_date": "2026-09-20",
              "home_team": "Atlético Madrid",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 54,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0138,
                "expected_assists": 0.0608,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 20,
                "accurate_pass": 14,
                "key_pass": 1,
                "aerial_won": 1,
                "duels_won": 5,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416342.0,
              "match_date": "2026-09-15",
              "home_team": "Elche",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Elche",
              "stats": {
                "minutes": 68,
                "rating": 7.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.9075,
                "expected_assists": 0.3531,
                "total_shots": 3,
                "shots_off_target": 3,
                "total_pass": 26,
                "accurate_pass": 25,
                "key_pass": 3,
                "interceptions": 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": 16416331.0,
              "match_date": "2026-09-12",
              "home_team": "Real Madrid",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 18,
                "rating": 7.8,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.0172,
                "expected_assists": 0.686,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 18,
                "accurate_pass": 16,
                "key_pass": 5,
                "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": 16416315.0,
              "match_date": "2026-09-04",
              "home_team": "Real Betis",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 64,
                "rating": 7.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0429,
                "expected_assists": 0.6869,
                "total_shots": 2,
                "shots_off_target": 2,
                "total_pass": 40,
                "accurate_pass": 36,
                "key_pass": 7,
                "clearances": 1,
                "duels_won": 3,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416312.0,
              "match_date": "2026-08-30",
              "home_team": "Real Madrid",
              "away_team": "Málaga CF",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Madrid",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 7,
                "rating": 7.6,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 1.0081,
                "expected_assists": 0.0157,
                "total_shots": 2,
                "shots_on_target": 1,
                "total_pass": 1,
                "accurate_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421051.0,
              "match_date": "2026-08-26",
              "home_team": "Real Madrid",
              "away_team": "Real Sociedad",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 78,
                "rating": 7.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0362,
                "expected_assists": 0.3801,
                "total_shots": 2,
                "shots_on_target": 1,
                "total_pass": 46,
                "accurate_pass": 41,
                "key_pass": 5,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 1,
                "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": 16416306.0,
              "match_date": "2026-08-22",
              "home_team": "Espanyol",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 64,
                "rating": 8.0,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_assists": 0.8547,
                "total_shots": 0,
                "total_pass": 41,
                "accurate_pass": 38,
                "key_pass": 7,
                "tackles": 2,
                "tackles_won": 2,
                "aerial_won": 1,
                "duels_won": 6,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 250,
            "combined_rank_score": 186.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 59.0,
            "sofascore_rating": 7.6667,
            "sofascore_appearances": 3.0,
            "fifa_rank": 314.0,
            "fifa_overall": 83.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 4,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 7.1753,
            "source_file": "data/player_rankings.csv",
            "player_name": "Arda Güler",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Denzel Dumfries",
                  "ranking": 245
                },
                {
                  "player_name": "Pablo Barrios",
                  "ranking": 246
                },
                {
                  "player_name": "Joaquín Moya",
                  "ranking": 247
                },
                {
                  "player_name": "Leonard Pllana",
                  "ranking": 248
                },
                {
                  "player_name": "Eldor Adhamov",
                  "ranking": 249
                }
              ],
              "lower": [
                {
                  "player_name": "David Raum",
                  "ranking": 251
                },
                {
                  "player_name": "Bryan Carvallo",
                  "ranking": 252
                },
                {
                  "player_name": "Alexis Mac Allister",
                  "ranking": 253
                },
                {
                  "player_name": "Maximilian Mittelstädt",
                  "ranking": 254
                },
                {
                  "player_name": "Seong-Jin Kang",
                  "ranking": 255
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.704,
          "history_matches": 7,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 7,
            "data_confidence": 0.704,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.1162,
            "fbref_prior_metrics": {
              "squad": "Real Madrid",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 2.0,
              "minutes": 144.0,
              "goals_per90": 0.625,
              "assists_per90": 0.625,
              "shots_per90": 2.5,
              "shots_on_target_pct": 50.0,
              "prior_reliability": 0.1067
            },
            "rationale": "XGBoost regressor (M_service) evaluated 7 historical appearances across 8 target models; FBref 2026-2027 prior blended (La Liga, Real Madrid, rel: 0.11, gls/90: 0.625, ast/90: 0.625)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.2114,
                "assist_rate": 0.1415,
                "assists": 0,
                "expected_goals": 0.1961,
                "goal_rate": 0.1178,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.1753,
                "minutes": 50,
                "total_pass": 27,
                "accurate_pass": 24,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 17,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 43,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 2,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 12,
                "total_progression": 51,
                "progressive_carries": 2,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 6,
                  "trained_at": "2026-09-29T10:02:07.046807+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 550,
                    "rows": 13779
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Atlético Madrid",
                    "minutes": 54.0,
                    "is_starting": true,
                    "weight": 0.2208,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-09-15",
                    "opponent": "Elche",
                    "minutes": 68.0,
                    "is_starting": true,
                    "weight": 0.1877,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Rayo Vallecano",
                    "minutes": 18.0,
                    "is_starting": true,
                    "weight": 0.1595,
                    "rating": 7.8
                  },
                  {
                    "match_date": "2026-09-04",
                    "opponent": "Real Betis",
                    "minutes": 64.0,
                    "is_starting": true,
                    "weight": 0.1356,
                    "rating": 7.4
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Málaga CF",
                    "minutes": 7.0,
                    "is_starting": false,
                    "weight": 0.1152,
                    "rating": 7.6
                  },
                  {
                    "match_date": "2026-08-26",
                    "opponent": "Real Sociedad",
                    "minutes": 78.0,
                    "is_starting": true,
                    "weight": 0.098,
                    "rating": 7.4
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Espanyol",
                    "minutes": 64.0,
                    "is_starting": true,
                    "weight": 0.0833,
                    "rating": 8.0
                  }
                ],
                "feature_row": {
                  "history_matches": 7.0,
                  "is_starting_11": 1.0,
                  "totalShots": 1.6408,
                  "expectedAssists": 0.3925,
                  "creative_index": 1.6767,
                  "creative_efficiency": 0.0883,
                  "shotValueNormalized": -0.0194,
                  "dribbleValueNormalized": 0.1387
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 2.148961305618286,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.12
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0959
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0798
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0429
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0425
                      }
                    ],
                    "decomposition": {
                      "base": 0.9267,
                      "items": [
                        {
                          "name": "keyPass",
                          "contribution": 0.3151
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.2912
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.1323
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.0764
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0522
                        }
                      ],
                      "others": 0.3551,
                      "total": 2.149,
                      "log_link": true,
                      "margin_base": -0.076148,
                      "item_margins": [
                        {
                          "name": "keyPass",
                          "margin": 0.292687
                        },
                        {
                          "name": "creative_index",
                          "margin": 0.210681
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.082751
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": 0.04484
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.029538
                        }
                      ],
                      "others_margin": 0.180635
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.2113533765077591,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.118
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0768
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0579
                      },
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0397
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0318
                      }
                    ],
                    "decomposition": {
                      "base": 0.0872,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0648
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0107
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.0085
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.008
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0046
                        }
                      ],
                      "others": 0.0276,
                      "total": 0.2114,
                      "log_link": true,
                      "margin_base": -2.439192,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": 0.55584
                        },
                        {
                          "name": "creative_index",
                          "margin": 0.068101
                        },
                        {
                          "name": "cross_creative_contribution",
                          "margin": 0.050964
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.045369
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.025279
                        }
                      ],
                      "others_margin": 0.139415
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.14147014915943146,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0669
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0574
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0465
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0404
                      },
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0277
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.033
                        },
                        {
                          "name": "cross_accuracy",
                          "contribution": -0.0138
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0049
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.005
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.0049
                        }
                      ],
                      "others": 0.0224,
                      "total": 0.1415,
                      "log_link": true,
                      "margin_base": -2.463441,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": 0.327335
                        },
                        {
                          "name": "cross_accuracy",
                          "margin": -0.124096
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.046212
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.044347
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": 0.041827
                        }
                      ],
                      "others_margin": 0.172151
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.19610817730426788,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.082
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0374
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0365
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.035
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0344
                      }
                    ],
                    "decomposition": {
                      "base": 0.1826,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0161
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0132
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.0135
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0119
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.01
                        }
                      ],
                      "others": -0.0274,
                      "total": 0.1961,
                      "log_link": true,
                      "margin_base": -1.700309,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.084578
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.06439
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": 0.061791
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.054402
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.045651
                        }
                      ],
                      "others_margin": -0.130788
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.11777888238430023,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0879
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0676
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0367
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.031
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0294
                      }
                    ],
                    "decomposition": {
                      "base": 0.1479,
                      "items": [
                        {
                          "name": "creative_index",
                          "contribution": 0.0337
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0325
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0244
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0193
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0126
                        }
                      ],
                      "others": -0.0136,
                      "total": 0.1178,
                      "log_link": true,
                      "margin_base": -1.911166,
                      "item_margins": [
                        {
                          "name": "creative_index",
                          "margin": 0.205334
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.197012
                        },
                        {
                          "name": "intensity_index",
                          "margin": -0.178774
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.143528
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.091235
                        }
                      ],
                      "others_margin": -0.10962
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.33506080508232117,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1114
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0574
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0383
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0333
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.033
                      }
                    ],
                    "decomposition": {
                      "base": 0.3374,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0413
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0194
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0185
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.0176
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0173
                        }
                      ],
                      "others": 0.0008,
                      "total": 0.3351,
                      "log_link": true,
                      "margin_base": -1.086396,
                      "item_margins": [
                        {
                          "name": "numberOfSprints",
                          "margin": -0.130518
                        },
                        {
                          "name": "creative_index",
                          "margin": 0.063389
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.056918
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": 0.051244
                        },
                        {
                          "name": "intensity_index",
                          "margin": -0.050601
                        }
                      ],
                      "others_margin": 0.002521
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.292687177658081,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1236
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0751
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0663
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0364
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 1.0381,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.2633
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0553
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.0401
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0378
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0377
                        }
                      ],
                      "others": 0.0066,
                      "total": 1.2927,
                      "log_link": false,
                      "margin_base": 1.038069,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.26333
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.055258
                        },
                        {
                          "name": "keyPass",
                          "margin": 0.040083
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.037803
                        },
                        {
                          "name": "creative_index",
                          "margin": 0.037725
                        }
                      ],
                      "others_margin": 0.006541
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 7.175314426422119,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0666
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "touches",
                        "importance": 0.041
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0305
                      }
                    ],
                    "decomposition": {
                      "base": 6.8598,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.1574
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0653
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.05
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0319
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": 0.0172
                        }
                      ],
                      "others": -0.0063,
                      "total": 7.1753,
                      "log_link": false,
                      "margin_base": 6.859756,
                      "item_margins": [
                        {
                          "name": "passValueNormalized",
                          "margin": 0.157351
                        },
                        {
                          "name": "creative_index",
                          "margin": 0.065284
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.050014
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": 0.03186
                        },
                        {
                          "name": "interceptionWon",
                          "margin": 0.017155
                        }
                      ],
                      "others_margin": -0.006107
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.1162, quality 0.887)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.2359,
                "assist_rate": 0.1579,
                "assists": 0,
                "expected_goals": 0.2189,
                "goal_rate": 0.1315,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.1753,
                "minutes": 50,
                "total_pass": 31,
                "accurate_pass": 27,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 22,
                "accurate_opp_half_passes": 19,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 48,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 2,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 13,
                "total_progression": 57,
                "progressive_carries": 2,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 87000000,
                "quality_factor": 0.8873,
                "boost_factor": 1.1162
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0289)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.2359,
                "assist_rate": 0.1714,
                "assists": 0,
                "expected_goals": 0.2189,
                "goal_rate": 0.1458,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.1753,
                "minutes": 50,
                "total_pass": 31,
                "accurate_pass": 27,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 22,
                "accurate_opp_half_passes": 19,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 48,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 2,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 13,
                "total_progression": 57,
                "progressive_carries": 2,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.25,
                "minutesPct": 53.3,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 1.87
              },
              "params": {
                "blend_weight": 0.0289,
                "history_matches": 7,
                "prior_reliability": 0.1067,
                "competition": "La Liga",
                "squad": "Real Madrid"
              },
              "changes": [
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.1626
                },
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0542
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0361
                },
                {
                  "stat": "totalShots",
                  "before": 1.4429,
                  "after": 1.4734
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.374,
                  "after": 0.3993
                },
                {
                  "stat": "goals",
                  "before": 0.1315,
                  "after": 0.1458
                },
                {
                  "stat": "goalAssist",
                  "before": 0.1579,
                  "after": 0.1714
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.2359,
                "assist_rate": 0.1714,
                "assists": 0,
                "expected_goals": 0.2189,
                "goal_rate": 0.1458,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.1753,
                "minutes": 50,
                "total_pass": 31,
                "accurate_pass": 27,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 22,
                "accurate_opp_half_passes": 19,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 48,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 2,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 13,
                "total_progression": 57,
                "progressive_carries": 2,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.25,
                "minutesPct": 53.3,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 1.87
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.2359,
                "assist_rate": 0.1714,
                "assists": 0,
                "expected_goals": 0.2298,
                "goal_rate": 0.153,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 2,
                "rating": 7.1753,
                "minutes": 50,
                "total_pass": 31,
                "accurate_pass": 27,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 22,
                "accurate_opp_half_passes": 19,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 48,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 2,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 13,
                "total_progression": 57,
                "progressive_carries": 2,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.25,
                "minutesPct": 53.3,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 1.87,
                "duel_xg_multiplier": 1.0497,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.454,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Alberto Moleiro",
                "opponent_faced": "Alberto Moleiro",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Alberto Moleiro",
                  "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                  "duel_win_rate": 0.454,
                  "pressing_faced": "ULTRA_HIGH",
                  "numerical_situation": "1v1",
                  "xg_multiplier": 1.0497,
                  "skill_edge": 0.0178,
                  "height_edge": 0.016,
                  "attacker_skill": 0.8921,
                  "defender_skill": 0.8526,
                  "xg_override": 0.2298
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.0,
                  "after": 0.9
                },
                {
                  "stat": "totalShots",
                  "before": 1.4734,
                  "after": 1.5466
                },
                {
                  "stat": "shotOffTarget",
                  "before": 1.0689,
                  "after": 1.122
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.3993,
                  "after": 0.4191
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.2189,
                  "after": 0.2298
                },
                {
                  "stat": "goals",
                  "before": 0.1458,
                  "after": 0.153
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.54 (squad xG sum 1.8684, xG scale 1.8936, xA scale 1.8936, team xA 2.35 = 0.66 x lambda)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.4467,
                "assist_rate": 0.1714,
                "assists": 0,
                "expected_goals": 0.4351,
                "goal_rate": 0.153,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 2,
                "rating": 7.1753,
                "minutes": 50,
                "total_pass": 31,
                "accurate_pass": 27,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 22,
                "accurate_opp_half_passes": 19,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 48,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 2,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 13,
                "total_progression": 57,
                "progressive_carries": 2,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.25,
                "minutesPct": 53.3,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 1.87,
                "duel_xg_multiplier": 1.0497,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.454,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Alberto Moleiro",
                "opponent_faced": "Alberto Moleiro",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 3.538,
                "squad_xg_sum": 1.8684,
                "squad_xa_sum": 1.2396,
                "team_expected_assists": 2.3473,
                "team_xa_to_xg_ratio": 0.6635,
                "bench_appearance_weighted": true,
                "xg_scale": 1.8936,
                "xa_scale": 1.8936,
                "opponent_lambda": 1.348,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.2298,
                  "after": 0.4351
                },
                {
                  "stat": "expected_assists",
                  "before": 0.2359,
                  "after": 0.4467
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 4 by projected rating, fifa_overall 83.0; not used by the projection)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.4467,
                "assist_rate": 0.1714,
                "assists": 0,
                "expected_goals": 0.4351,
                "goal_rate": 0.153,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 2,
                "rating": 7.1753,
                "minutes": 50,
                "total_pass": 31,
                "accurate_pass": 27,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 22,
                "accurate_opp_half_passes": 19,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 48,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 2,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 13,
                "total_progression": 57,
                "progressive_carries": 2,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.25,
                "minutesPct": 53.3,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 1.87,
                "duel_xg_multiplier": 1.0497,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.454,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Alberto Moleiro",
                "opponent_faced": "Alberto Moleiro",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 0.8,
                "fifa_overall": 83.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": 250,
                "fifa_rank": 314.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 83.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.4467,
                "assist_rate": 0.1714,
                "assists": 0,
                "expected_goals": 0.4351,
                "goal_rate": 0.153,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 2,
                "rating": 7.1753,
                "minutes": 50,
                "total_pass": 31,
                "accurate_pass": 27,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 22,
                "accurate_opp_half_passes": 19,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 48,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 2,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 13,
                "total_progression": 57,
                "progressive_carries": 2,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.25,
                "minutesPct": 53.3,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 1.87,
                "duel_xg_multiplier": 1.0497,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.454,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Alberto Moleiro",
                "opponent_faced": "Alberto Moleiro",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.3528,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 0.8,
                "fifa_overall": 83.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 0,
                "goal_probability": 0.3528,
                "scorer_weight": 0.3481,
                "squad_weight_total": 3.5857,
                "weight_share": 0.0971,
                "finishing_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 4,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Kylian Mbappé",
                    "weight": 1.2537,
                    "already": 0,
                    "effective_weight": 1.2537,
                    "runner_up": "Jude Bellingham",
                    "runner_up_effective_weight": 0.5657
                  },
                  {
                    "n": 2,
                    "player": "Jude Bellingham",
                    "weight": 0.5657,
                    "already": 0,
                    "effective_weight": 0.5657,
                    "runner_up": "Vinícius Júnior",
                    "runner_up_effective_weight": 0.5343
                  },
                  {
                    "n": 3,
                    "player": "Vinícius Júnior",
                    "weight": 0.5343,
                    "already": 0,
                    "effective_weight": 0.5343,
                    "runner_up": "Kylian Mbappé",
                    "runner_up_effective_weight": 0.5335
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.4467,
                "assist_rate": 0.1714,
                "assists": 0,
                "expected_goals": 0.4351,
                "goal_rate": 0.153,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 2,
                "rating": 7.1753,
                "minutes": 50,
                "total_pass": 31,
                "accurate_pass": 27,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 22,
                "accurate_opp_half_passes": 19,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 48,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 2,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 13,
                "total_progression": 57,
                "progressive_carries": 2,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.25,
                "minutesPct": 53.3,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 1.87,
                "duel_xg_multiplier": 1.0497,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.454,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Alberto Moleiro",
                "opponent_faced": "Alberto Moleiro",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.3528,
                "projected_assists": 0,
                "assist_probability": 0.3603,
                "finishing_factor": 0.8,
                "creation_factor": 0.8,
                "fifa_overall": 83.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 2,
                "assists_allocated": 0,
                "assist_probability": 0.3603,
                "provider_weight": 0.3574,
                "squad_weight_total": 2.5484,
                "weight_share": 0.1402,
                "creation_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 3,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Trent Alexander-Arnold",
                    "weight": 0.524,
                    "already": 0,
                    "effective_weight": 0.524,
                    "runner_up": "Kylian Mbappé",
                    "runner_up_effective_weight": 0.4996
                  },
                  {
                    "n": 2,
                    "player": "Kylian Mbappé",
                    "weight": 0.4996,
                    "already": 0,
                    "effective_weight": 0.4996,
                    "runner_up": "Arda Güler",
                    "runner_up_effective_weight": 0.3574
                  }
                ]
              }
            }
          ]
        },
        "Federico Valverde": {
          "player_id": 831808,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 8,
          "height": 181,
          "market_value": 87000000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.1409,
            "assist_rate": 0.1038,
            "assists": 0,
            "expected_goals": 0.2155,
            "goal_rate": 0.0932,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "rating": 6.9034,
            "minutes": 81,
            "total_pass": 55,
            "accurate_pass": 51,
            "duels_won": 4,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 21,
            "accurate_own_half_passes": 20,
            "total_opp_half_passes": 35,
            "accurate_opp_half_passes": 31,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 66,
            "possession_lost": 6.2171,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 17,
            "total_progression": 52,
            "progressive_carries": 1,
            "shots_off_target": 1,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 33.3,
            "shotConversion": 0.0,
            "minutesPct": 94.8,
            "pointsPerMatch": 3.0,
            "netGoalDifferencePer90": 2.46,
            "duel_xg_multiplier": 1.1299,
            "dribbles_attempted": 3,
            "dribbles_successful": 1.3,
            "crosses_attempted": 3.1,
            "duel_win_rate": 0.508,
            "pressing_faced": "LOW",
            "matchup_zone": "LWB vs RWB",
            "numerical_situation": "1v1",
            "opponent_defenders": "Logan Costa",
            "opponent_faced": "Logan Costa",
            "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.1939,
            "projected_assists": 0,
            "assist_probability": 0.1314,
            "finishing_factor": 0.8742,
            "creation_factor": 1.2363,
            "fifa_overall": 87.0
          },
          "latest_10_games": [
            {
              "match_id": 16416339.0,
              "match_date": "2026-09-20",
              "home_team": "Atlético Madrid",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0244,
                "total_shots": 0,
                "total_pass": 29,
                "accurate_pass": 25,
                "clearances": 3,
                "aerial_won": 3,
                "duels_won": 5,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416342.0,
              "match_date": "2026-09-15",
              "home_team": "Elche",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Elche",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0636,
                "total_shots": 0,
                "total_pass": 42,
                "accurate_pass": 38,
                "key_pass": 1,
                "tackles": 1,
                "interceptions": 1,
                "clearances": 2,
                "duels_won": 4,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416331.0,
              "match_date": "2026-09-12",
              "home_team": "Real Madrid",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 45,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0745,
                "expected_assists": 0.0124,
                "total_shots": 2,
                "shots_off_target": 2,
                "total_pass": 36,
                "accurate_pass": 35,
                "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": 16416315.0,
              "match_date": "2026-09-04",
              "home_team": "Real Betis",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 82,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0223,
                "expected_assists": 0.0334,
                "total_shots": 1,
                "total_pass": 58,
                "accurate_pass": 51,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 2,
                "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": 16416312.0,
              "match_date": "2026-08-30",
              "home_team": "Real Madrid",
              "away_team": "Málaga CF",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 77,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0574,
                "total_shots": 0,
                "total_pass": 56,
                "accurate_pass": 50,
                "key_pass": 1,
                "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": 16421051.0,
              "match_date": "2026-08-26",
              "home_team": "Real Madrid",
              "away_team": "Real Sociedad",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 90,
                "rating": 7.7,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.1346,
                "expected_assists": 0.156,
                "total_shots": 2,
                "shots_on_target": 1,
                "total_pass": 61,
                "accurate_pass": 57,
                "key_pass": 2,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 1,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416306.0,
              "match_date": "2026-08-22",
              "home_team": "Espanyol",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 90,
                "rating": 7.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0541,
                "expected_assists": 0.0441,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 66,
                "accurate_pass": 64,
                "key_pass": 1,
                "tackles": 3,
                "tackles_won": 3,
                "interceptions": 1,
                "clearances": 2,
                "duels_won": 4,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 46,
            "combined_rank_score": 57.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 62.0,
            "sofascore_rating": 7.65,
            "sofascore_appearances": 6.0,
            "fifa_rank": 52.0,
            "fifa_overall": 87.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 8,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.9034,
            "source_file": "data/player_rankings.csv",
            "player_name": "Federico Valverde",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Lionel Messi",
                  "ranking": 41
                },
                {
                  "player_name": "Abdumavlon Abduzhalilov",
                  "ranking": 42
                },
                {
                  "player_name": "Eryin Sanhueza",
                  "ranking": 43
                },
                {
                  "player_name": "Euller",
                  "ranking": 44
                },
                {
                  "player_name": "Bukayo Saka",
                  "ranking": 45
                }
              ],
              "lower": [
                {
                  "player_name": "Ayrton Lucas",
                  "ranking": 47
                },
                {
                  "player_name": "Giorgian de Arrascaeta",
                  "ranking": 48
                },
                {
                  "player_name": "Rayan Cherki",
                  "ranking": 49
                },
                {
                  "player_name": "Rodri",
                  "ranking": 50
                },
                {
                  "player_name": "Matheus Serafim",
                  "ranking": 51
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.716,
          "history_matches": 7,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 7,
            "data_confidence": 0.716,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.1162,
            "fbref_prior_metrics": {
              "squad": "Real Madrid",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "minutes": 256.0,
              "goals_per90": 0.0,
              "assists_per90": 0.3571428571428571,
              "shots_per90": 1.05,
              "shots_on_target_pct": 33.3,
              "prior_reliability": 0.1867
            },
            "rationale": "XGBoost regressor (M_service) evaluated 7 historical appearances across 8 target models; FBref 2026-2027 prior blended (La Liga, Real Madrid, rel: 0.19, gls/90: 0.0, ast/90: 0.3571428571428571)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0666,
                "assist_rate": 0.0809,
                "assists": 0,
                "expected_goals": 0.0902,
                "goal_rate": 0.0779,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.9034,
                "minutes": 81,
                "total_pass": 50,
                "accurate_pass": 46,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 19,
                "accurate_own_half_passes": 18,
                "total_opp_half_passes": 31,
                "accurate_opp_half_passes": 28,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 59,
                "possession_lost": 5.57,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 47,
                "progressive_carries": 1,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 6,
                  "trained_at": "2026-09-29T10:02:07.046807+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 550,
                    "rows": 13779
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Atlético Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2208,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-09-15",
                    "opponent": "Elche",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1877,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Rayo Vallecano",
                    "minutes": 45.0,
                    "is_starting": true,
                    "weight": 0.1595,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-09-04",
                    "opponent": "Real Betis",
                    "minutes": 82.0,
                    "is_starting": true,
                    "weight": 0.1356,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Málaga CF",
                    "minutes": 77.0,
                    "is_starting": true,
                    "weight": 0.1152,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-08-26",
                    "opponent": "Real Sociedad",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.098,
                    "rating": 7.7
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Espanyol",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0833,
                    "rating": 7.3
                  }
                ],
                "feature_row": {
                  "history_matches": 7.0,
                  "is_starting_11": 1.0,
                  "totalShots": 0.7338,
                  "expectedAssists": 0.0494,
                  "creative_index": 0.2625,
                  "creative_efficiency": 0.0299,
                  "shotValueNormalized": -0.0908,
                  "dribbleValueNormalized": 0.1386
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.7073967456817627,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.12
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0959
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0798
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0429
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0425
                      }
                    ],
                    "decomposition": {
                      "base": 0.9267,
                      "items": [
                        {
                          "name": "keyPass",
                          "contribution": -0.1073
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0833
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0391
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0314
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": -0.0255
                        }
                      ],
                      "others": -0.0109,
                      "total": 0.7074,
                      "log_link": true,
                      "margin_base": -0.076148,
                      "item_margins": [
                        {
                          "name": "keyPass",
                          "margin": -0.123011
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.107254
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.051799
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.04133
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": -0.034922
                        }
                      ],
                      "others_margin": -0.015298
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.0666436180472374,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.118
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0768
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0579
                      },
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0397
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0318
                      }
                    ],
                    "decomposition": {
                      "base": 0.0872,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0084
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0048
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0041
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0035
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": -0.0029
                        }
                      ],
                      "others": -0.0065,
                      "total": 0.0666,
                      "log_link": true,
                      "margin_base": -2.439192,
                      "item_margins": [
                        {
                          "name": "cross_creative_contribution",
                          "margin": -0.100787
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.058902
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.050849
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.045296
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": -0.039588
                        }
                      ],
                      "others_margin": -0.091587
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.08091873675584793,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0669
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0574
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0465
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0404
                      },
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0277
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0128
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.0048
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0021
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.002
                        },
                        {
                          "name": "touches",
                          "contribution": -0.0015
                        }
                      ],
                      "others": -0.0066,
                      "total": 0.0809,
                      "log_link": true,
                      "margin_base": -2.463441,
                      "item_margins": [
                        {
                          "name": "creative_efficiency",
                          "margin": 0.140252
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.050196
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.02249
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.022473
                        },
                        {
                          "name": "touches",
                          "margin": -0.016577
                        }
                      ],
                      "others_margin": -0.079385
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.0902111753821373,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.082
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0374
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0365
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.035
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0344
                      }
                    ],
                    "decomposition": {
                      "base": 0.1826,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0404
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0117
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0072
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": -0.0064
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0039
                        }
                      ],
                      "others": -0.0228,
                      "total": 0.0902,
                      "log_link": true,
                      "margin_base": -1.700309,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.24991
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.085869
                        },
                        {
                          "name": "intensity_index",
                          "margin": -0.056581
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": -0.053257
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": -0.033753
                        }
                      ],
                      "others_margin": -0.225923
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.07786295562982559,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0879
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0676
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0367
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.031
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0294
                      }
                    ],
                    "decomposition": {
                      "base": 0.1479,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0319
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0102
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0066
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0054
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0039
                        }
                      ],
                      "others": -0.012,
                      "total": 0.0779,
                      "log_link": true,
                      "margin_base": -1.911166,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.242834
                        },
                        {
                          "name": "intensity_index",
                          "margin": -0.092365
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.063919
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.056129
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.042579
                        }
                      ],
                      "others_margin": -0.143811
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.16949991881847382,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1114
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0574
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0383
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0333
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.033
                      }
                    ],
                    "decomposition": {
                      "base": 0.3374,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.1244
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0148
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0083
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0074
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0037
                        }
                      ],
                      "others": -0.0093,
                      "total": 0.1695,
                      "log_link": true,
                      "margin_base": -1.086396,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.459996
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.072146
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": -0.042921
                        },
                        {
                          "name": "intensity_index",
                          "margin": -0.039556
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.020637
                        }
                      ],
                      "others_margin": -0.05325
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.7512999188184738,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1236
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0751
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0663
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0364
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 1.0381,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.183
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0484
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0413
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.033
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0306
                        }
                      ],
                      "others": -0.0331,
                      "total": 0.7513,
                      "log_link": false,
                      "margin_base": 1.038069,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.18304
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.048382
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": 0.04128
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.033037
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.030558
                        }
                      ],
                      "others_margin": -0.033048
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.903392314910889,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0666
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "touches",
                        "importance": 0.041
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0305
                      }
                    ],
                    "decomposition": {
                      "base": 6.8598,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.06
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0231
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0205
                        },
                        {
                          "name": "touches",
                          "contribution": 0.0117
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": 0.009
                        }
                      ],
                      "others": -0.0397,
                      "total": 6.9034,
                      "log_link": false,
                      "margin_base": 6.859756,
                      "item_margins": [
                        {
                          "name": "passValueNormalized",
                          "margin": 0.060028
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": 0.023096
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.020495
                        },
                        {
                          "name": "touches",
                          "margin": 0.011653
                        },
                        {
                          "name": "duel_win_rate",
                          "margin": 0.009006
                        }
                      ],
                      "others_margin": -0.039651
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.1162, quality 0.887)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0744,
                "assist_rate": 0.0903,
                "assists": 0,
                "expected_goals": 0.1007,
                "goal_rate": 0.0869,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.9034,
                "minutes": 81,
                "total_pass": 55,
                "accurate_pass": 51,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 20,
                "total_opp_half_passes": 35,
                "accurate_opp_half_passes": 31,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 66,
                "possession_lost": 6.2171,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 17,
                "total_progression": 52,
                "progressive_carries": 1,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 87000000,
                "quality_factor": 0.8873,
                "boost_factor": 1.1162
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0506)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0744,
                "assist_rate": 0.1038,
                "assists": 0,
                "expected_goals": 0.1007,
                "goal_rate": 0.0825,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.9034,
                "minutes": 81,
                "total_pass": 55,
                "accurate_pass": 51,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 20,
                "total_opp_half_passes": 35,
                "accurate_opp_half_passes": 31,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 66,
                "possession_lost": 6.2171,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 17,
                "total_progression": 52,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 33.3,
                "shotConversion": 0.0,
                "minutesPct": 94.8,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.46
              },
              "params": {
                "blend_weight": 0.0506,
                "history_matches": 7,
                "prior_reliability": 0.1867,
                "competition": "La Liga",
                "squad": "Real Madrid"
              },
              "changes": [
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0903
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.0,
                  "after": 0.0542
                },
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.0181
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0181
                },
                {
                  "stat": "goalAssist",
                  "before": 0.0903,
                  "after": 0.1038
                },
                {
                  "stat": "totalShots",
                  "before": 0.8386,
                  "after": 0.8493
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.1892,
                  "after": 0.1973
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0744,
                "assist_rate": 0.1038,
                "assists": 0,
                "expected_goals": 0.1007,
                "goal_rate": 0.0825,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.9034,
                "minutes": 81,
                "total_pass": 55,
                "accurate_pass": 51,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 20,
                "total_opp_half_passes": 35,
                "accurate_opp_half_passes": 31,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 66,
                "possession_lost": 6.2171,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 17,
                "total_progression": 52,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 33.3,
                "shotConversion": 0.0,
                "minutesPct": 94.8,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.46
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0744,
                "assist_rate": 0.1038,
                "assists": 0,
                "expected_goals": 0.1138,
                "goal_rate": 0.0932,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.9034,
                "minutes": 81,
                "total_pass": 55,
                "accurate_pass": 51,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 20,
                "total_opp_half_passes": 35,
                "accurate_opp_half_passes": 31,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 66,
                "possession_lost": 6.2171,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 17,
                "total_progression": 52,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 33.3,
                "shotConversion": 0.0,
                "minutesPct": 94.8,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.46,
                "duel_xg_multiplier": 1.1299,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.3,
                "crosses_attempted": 3.1,
                "duel_win_rate": 0.508,
                "pressing_faced": "LOW",
                "matchup_zone": "LWB vs RWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Logan Costa",
                "opponent_faced": "Logan Costa",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Logan Costa",
                  "matchup_zone": "LWB vs RWB",
                  "duel_win_rate": 0.508,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v1",
                  "xg_multiplier": 1.1299,
                  "skill_edge": 0.1164,
                  "height_edge": -0.028,
                  "attacker_skill": 0.898,
                  "defender_skill": 0.6394,
                  "xg_override": 0.1138
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.0,
                  "after": 1.1
                },
                {
                  "stat": "totalShots",
                  "before": 0.8493,
                  "after": 0.9596
                },
                {
                  "stat": "shotOffTarget",
                  "before": 0.6494,
                  "after": 0.7338
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.1973,
                  "after": 0.2229
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.1007,
                  "after": 0.1138
                },
                {
                  "stat": "goals",
                  "before": 0.0825,
                  "after": 0.0932
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.54 (squad xG sum 1.8684, xG scale 1.8936, xA scale 1.8936, team xA 2.35 = 0.66 x lambda)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1409,
                "assist_rate": 0.1038,
                "assists": 0,
                "expected_goals": 0.2155,
                "goal_rate": 0.0932,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.9034,
                "minutes": 81,
                "total_pass": 55,
                "accurate_pass": 51,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 20,
                "total_opp_half_passes": 35,
                "accurate_opp_half_passes": 31,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 66,
                "possession_lost": 6.2171,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 17,
                "total_progression": 52,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 33.3,
                "shotConversion": 0.0,
                "minutesPct": 94.8,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.46,
                "duel_xg_multiplier": 1.1299,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.3,
                "crosses_attempted": 3.1,
                "duel_win_rate": 0.508,
                "pressing_faced": "LOW",
                "matchup_zone": "LWB vs RWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Logan Costa",
                "opponent_faced": "Logan Costa",
                "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.8742,
                "creation_factor": 1.2363
              },
              "params": {
                "team_lambda": 3.538,
                "squad_xg_sum": 1.8684,
                "squad_xa_sum": 1.2396,
                "team_expected_assists": 2.3473,
                "team_xa_to_xg_ratio": 0.6635,
                "bench_appearance_weighted": true,
                "xg_scale": 1.8936,
                "xa_scale": 1.8936,
                "opponent_lambda": 1.348,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.1138,
                  "after": 0.2155
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0744,
                  "after": 0.1409
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 8 by projected rating, fifa_overall 87.0; not used by the projection)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1409,
                "assist_rate": 0.1038,
                "assists": 0,
                "expected_goals": 0.2155,
                "goal_rate": 0.0932,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.9034,
                "minutes": 81,
                "total_pass": 55,
                "accurate_pass": 51,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 20,
                "total_opp_half_passes": 35,
                "accurate_opp_half_passes": 31,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 66,
                "possession_lost": 6.2171,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 17,
                "total_progression": 52,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 33.3,
                "shotConversion": 0.0,
                "minutesPct": 94.8,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.46,
                "duel_xg_multiplier": 1.1299,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.3,
                "crosses_attempted": 3.1,
                "duel_win_rate": 0.508,
                "pressing_faced": "LOW",
                "matchup_zone": "LWB vs RWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Logan Costa",
                "opponent_faced": "Logan Costa",
                "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.8742,
                "creation_factor": 1.2363,
                "fifa_overall": 87.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": 46,
                "fifa_rank": 52.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 87.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1409,
                "assist_rate": 0.1038,
                "assists": 0,
                "expected_goals": 0.2155,
                "goal_rate": 0.0932,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.9034,
                "minutes": 81,
                "total_pass": 55,
                "accurate_pass": 51,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 20,
                "total_opp_half_passes": 35,
                "accurate_opp_half_passes": 31,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 66,
                "possession_lost": 6.2171,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 17,
                "total_progression": 52,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 33.3,
                "shotConversion": 0.0,
                "minutesPct": 94.8,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.46,
                "duel_xg_multiplier": 1.1299,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.3,
                "crosses_attempted": 3.1,
                "duel_win_rate": 0.508,
                "pressing_faced": "LOW",
                "matchup_zone": "LWB vs RWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Logan Costa",
                "opponent_faced": "Logan Costa",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.1939,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8742,
                "creation_factor": 1.2363,
                "fifa_overall": 87.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 0,
                "goal_probability": 0.1939,
                "scorer_weight": 0.1884,
                "squad_weight_total": 3.5857,
                "weight_share": 0.0525,
                "finishing_factor": 0.8742,
                "appearance_weight": 1.0,
                "weight_rank": 7,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Kylian Mbappé",
                    "weight": 1.2537,
                    "already": 0,
                    "effective_weight": 1.2537,
                    "runner_up": "Jude Bellingham",
                    "runner_up_effective_weight": 0.5657
                  },
                  {
                    "n": 2,
                    "player": "Jude Bellingham",
                    "weight": 0.5657,
                    "already": 0,
                    "effective_weight": 0.5657,
                    "runner_up": "Vinícius Júnior",
                    "runner_up_effective_weight": 0.5343
                  },
                  {
                    "n": 3,
                    "player": "Vinícius Júnior",
                    "weight": 0.5343,
                    "already": 0,
                    "effective_weight": 0.5343,
                    "runner_up": "Kylian Mbappé",
                    "runner_up_effective_weight": 0.5335
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1409,
                "assist_rate": 0.1038,
                "assists": 0,
                "expected_goals": 0.2155,
                "goal_rate": 0.0932,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.9034,
                "minutes": 81,
                "total_pass": 55,
                "accurate_pass": 51,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 20,
                "total_opp_half_passes": 35,
                "accurate_opp_half_passes": 31,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 66,
                "possession_lost": 6.2171,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 17,
                "total_progression": 52,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 33.3,
                "shotConversion": 0.0,
                "minutesPct": 94.8,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.46,
                "duel_xg_multiplier": 1.1299,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.3,
                "crosses_attempted": 3.1,
                "duel_win_rate": 0.508,
                "pressing_faced": "LOW",
                "matchup_zone": "LWB vs RWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Logan Costa",
                "opponent_faced": "Logan Costa",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.1939,
                "projected_assists": 0,
                "assist_probability": 0.1314,
                "finishing_factor": 0.8742,
                "creation_factor": 1.2363,
                "fifa_overall": 87.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 2,
                "assists_allocated": 0,
                "assist_probability": 0.1314,
                "provider_weight": 0.1742,
                "squad_weight_total": 2.5484,
                "weight_share": 0.0684,
                "creation_factor": 1.2363,
                "appearance_weight": 1.0,
                "weight_rank": 7,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Trent Alexander-Arnold",
                    "weight": 0.524,
                    "already": 0,
                    "effective_weight": 0.524,
                    "runner_up": "Kylian Mbappé",
                    "runner_up_effective_weight": 0.4996
                  },
                  {
                    "n": 2,
                    "player": "Kylian Mbappé",
                    "weight": 0.4996,
                    "already": 0,
                    "effective_weight": 0.4996,
                    "runner_up": "Arda Güler",
                    "runner_up_effective_weight": 0.3574
                  }
                ]
              }
            }
          ]
        },
        "Aurélien Tchouaméni": {
          "player_id": 859025,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 14,
          "height": 188,
          "market_value": 73000000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.097,
            "assist_rate": 0.0645,
            "assists": 0,
            "expected_goals": 0.2494,
            "goal_rate": 0.088,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "rating": 6.8582,
            "minutes": 59,
            "total_pass": 35,
            "accurate_pass": 33,
            "duels_won": 4,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 16,
            "accurate_own_half_passes": 15,
            "total_opp_half_passes": 19,
            "accurate_opp_half_passes": 19,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 43,
            "possession_lost": 2.5919,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 1,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 11,
            "total_progression": 11,
            "progressive_carries": 0,
            "shots_off_target": 1,
            "duel_xg_multiplier": 1.1797,
            "dribbles_attempted": 3,
            "dribbles_successful": 1.4,
            "crosses_attempted": 3.1,
            "duel_win_rate": 0.542,
            "pressing_faced": "MEDIUM",
            "matchup_zone": "RWB vs LWB",
            "numerical_situation": "1v1",
            "opponent_defenders": "Carlos Romero",
            "opponent_faced": "Carlos Romero",
            "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.2207,
            "projected_assists": 0,
            "assist_probability": 0.0924,
            "finishing_factor": 0.8,
            "creation_factor": 1.1314,
            "fifa_overall": 84.0
          },
          "latest_10_games": [
            {
              "match_id": 16416339.0,
              "match_date": "2026-09-20",
              "home_team": "Atlético Madrid",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 71,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0623,
                "expected_assists": 0.0092,
                "total_shots": 2,
                "shots_off_target": 2,
                "total_pass": 32,
                "accurate_pass": 30,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416342.0,
              "match_date": "2026-09-15",
              "home_team": "Elche",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Elche",
              "stats": {
                "minutes": 86,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0725,
                "total_shots": 0,
                "total_pass": 42,
                "accurate_pass": 40,
                "key_pass": 2,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 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": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416331.0,
              "match_date": "2026-09-12",
              "home_team": "Real Madrid",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 21,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0266,
                "expected_assists": 0.0209,
                "total_shots": 1,
                "total_pass": 21,
                "accurate_pass": 20,
                "key_pass": 1,
                "clearances": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 300,
            "combined_rank_score": 206.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 185.0,
            "sofascore_rating": 7.2273,
            "sofascore_appearances": 33.0,
            "fifa_rank": 228.0,
            "fifa_overall": 84.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 10,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.8582,
            "source_file": "data/player_rankings.csv",
            "player_name": "Aurélien Tchouaméni",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Reece James",
                  "ranking": 295
                },
                {
                  "player_name": "Ifeanyi Ndukwe",
                  "ranking": 296
                },
                {
                  "player_name": "Christian Pulišić",
                  "ranking": 297
                },
                {
                  "player_name": "Zubimendi",
                  "ranking": 298
                },
                {
                  "player_name": "Kim Min-Seung",
                  "ranking": 299
                }
              ],
              "lower": [
                {
                  "player_name": "Robert Lewandowski",
                  "ranking": 301
                },
                {
                  "player_name": "Matthijs de Ligt",
                  "ranking": 302
                },
                {
                  "player_name": "Rodrygo",
                  "ranking": 303
                },
                {
                  "player_name": "Aleksandar Šušnjar",
                  "ranking": 304
                },
                {
                  "player_name": "Brian Fariñas",
                  "ranking": 305
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.438,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.438,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 1.1124,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (M_service) evaluated 3 historical appearances across 8 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.046,
                "assist_rate": 0.0579,
                "assists": 0,
                "expected_goals": 0.1003,
                "goal_rate": 0.0671,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.8582,
                "minutes": 59,
                "total_pass": 32,
                "accurate_pass": 30,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 14,
                "accurate_own_half_passes": 13,
                "total_opp_half_passes": 17,
                "accurate_opp_half_passes": 17,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 39,
                "possession_lost": 2.33,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 10,
                "progressive_carries": 0,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 6,
                  "trained_at": "2026-09-29T10:02:07.046807+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 550,
                    "rows": 13779
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Atlético Madrid",
                    "minutes": 71.0,
                    "is_starting": true,
                    "weight": 0.3887,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-09-15",
                    "opponent": "Elche",
                    "minutes": 86.0,
                    "is_starting": true,
                    "weight": 0.3304,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Rayo Vallecano",
                    "minutes": 21.0,
                    "is_starting": true,
                    "weight": 0.2809,
                    "rating": 6.9
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 1.0,
                  "totalShots": 1.0583,
                  "expectedAssists": 0.0334,
                  "creative_index": 0.3967,
                  "creative_efficiency": 0.0179,
                  "shotValueNormalized": -0.0568,
                  "dribbleValueNormalized": 0.0477
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.8413562178611755,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.12
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0959
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0798
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0429
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0425
                      }
                    ],
                    "decomposition": {
                      "base": 0.9267,
                      "items": [
                        {
                          "name": "keyPass",
                          "contribution": -0.0959
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0471
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0441
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.045
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.044
                        }
                      ],
                      "others": -0.0816,
                      "total": 0.8414,
                      "log_link": true,
                      "margin_base": -0.076148,
                      "item_margins": [
                        {
                          "name": "keyPass",
                          "margin": -0.109184
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.055132
                        },
                        {
                          "name": "creative_index",
                          "margin": 0.048971
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": 0.047628
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.046607
                        }
                      ],
                      "others_margin": -0.092532
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.04602751135826111,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.118
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0768
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0579
                      },
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0397
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0318
                      }
                    ],
                    "decomposition": {
                      "base": 0.0872,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": -0.021
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0034
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.003
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0025
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": -0.0022
                        }
                      ],
                      "others": -0.0091,
                      "total": 0.046,
                      "log_link": true,
                      "margin_base": -2.439192,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": -0.274799
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.051987
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.04961
                        },
                        {
                          "name": "cross_creative_contribution",
                          "margin": -0.042518
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": -0.039595
                        }
                      ],
                      "others_margin": -0.180815
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.05794798955321312,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0669
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0574
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0465
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0404
                      },
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0277
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "creative_efficiency",
                          "contribution": -0.0122
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.003
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0028
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.0021
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0019
                        }
                      ],
                      "others": -0.0052,
                      "total": 0.0579,
                      "log_link": true,
                      "margin_base": -2.463441,
                      "item_margins": [
                        {
                          "name": "creative_efficiency",
                          "margin": -0.154894
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.042586
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.040288
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.032102
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.030115
                        }
                      ],
                      "others_margin": -0.084784
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.10034936666488647,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.082
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0374
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0365
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.035
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0344
                      }
                    ],
                    "decomposition": {
                      "base": 0.1826,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0359
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0154
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0061
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": -0.0057
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0054
                        }
                      ],
                      "others": -0.0138,
                      "total": 0.1003,
                      "log_link": true,
                      "margin_base": -1.700309,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.218993
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.111162
                        },
                        {
                          "name": "intensity_index",
                          "margin": -0.047276
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": -0.046821
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": -0.04616
                        }
                      ],
                      "others_margin": -0.128377
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.06709562987089157,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0879
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0676
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0367
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.031
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0294
                      }
                    ],
                    "decomposition": {
                      "base": 0.1479,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0333
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0117
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0068
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.006
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0036
                        }
                      ],
                      "others": -0.0194,
                      "total": 0.0671,
                      "log_link": true,
                      "margin_base": -1.911166,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.255034
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.107547
                        },
                        {
                          "name": "intensity_index",
                          "margin": -0.068593
                        },
                        {
                          "name": "totalProgression",
                          "margin": -0.06414
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.04121
                        }
                      ],
                      "others_margin": -0.253946
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.22331230342388153,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1114
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0574
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0383
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0333
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.033
                      }
                    ],
                    "decomposition": {
                      "base": 0.3374,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0243
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0169
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0148
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0098
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": -0.0078
                        }
                      ],
                      "others": -0.0405,
                      "total": 0.2233,
                      "log_link": true,
                      "margin_base": -1.086396,
                      "item_margins": [
                        {
                          "name": "numberOfSprints",
                          "margin": -0.074826
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.055368
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": -0.051162
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.035483
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": -0.029121
                        }
                      ],
                      "others_margin": -0.166827
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.7867123034238815,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1236
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0751
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0663
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0364
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 1.0381,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0358
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0318
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0292
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0251
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0237
                        }
                      ],
                      "others": -0.1058,
                      "total": 0.7867,
                      "log_link": false,
                      "margin_base": 1.038069,
                      "item_margins": [
                        {
                          "name": "numberOfSprints",
                          "margin": -0.035782
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.031837
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.029182
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.025118
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.023671
                        }
                      ],
                      "others_margin": -0.105787
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.858219146728516,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0666
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "touches",
                        "importance": 0.041
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0305
                      }
                    ],
                    "decomposition": {
                      "base": 6.8598,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0376
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0324
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0321
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0165
                        },
                        {
                          "name": "duelWon",
                          "contribution": -0.016
                        }
                      ],
                      "others": -0.0064,
                      "total": 6.8582,
                      "log_link": false,
                      "margin_base": 6.859756,
                      "item_margins": [
                        {
                          "name": "passValueNormalized",
                          "margin": 0.037591
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.032387
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": 0.032123
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.016469
                        },
                        {
                          "name": "duelWon",
                          "margin": -0.01603
                        }
                      ],
                      "others_margin": -0.006365
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.1124, quality 0.875)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0512,
                "assist_rate": 0.0645,
                "assists": 0,
                "expected_goals": 0.1116,
                "goal_rate": 0.0746,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.8582,
                "minutes": 59,
                "total_pass": 35,
                "accurate_pass": 33,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 16,
                "accurate_own_half_passes": 15,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 19,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 43,
                "possession_lost": 2.5919,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 11,
                "progressive_carries": 0,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 73000000,
                "quality_factor": 0.8747,
                "boost_factor": 1.1124
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0512,
                "assist_rate": 0.0645,
                "assists": 0,
                "expected_goals": 0.1116,
                "goal_rate": 0.0746,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.8582,
                "minutes": 59,
                "total_pass": 35,
                "accurate_pass": 33,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 16,
                "accurate_own_half_passes": 15,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 19,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 43,
                "possession_lost": 2.5919,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 11,
                "progressive_carries": 0,
                "shots_off_target": 1
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0512,
                "assist_rate": 0.0645,
                "assists": 0,
                "expected_goals": 0.1317,
                "goal_rate": 0.088,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.8582,
                "minutes": 59,
                "total_pass": 35,
                "accurate_pass": 33,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 16,
                "accurate_own_half_passes": 15,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 19,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 43,
                "possession_lost": 2.5919,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 11,
                "progressive_carries": 0,
                "shots_off_target": 1,
                "duel_xg_multiplier": 1.1797,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.4,
                "crosses_attempted": 3.1,
                "duel_win_rate": 0.542,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "RWB vs LWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Carlos Romero",
                "opponent_faced": "Carlos Romero",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Carlos Romero",
                  "matchup_zone": "RWB vs LWB",
                  "duel_win_rate": 0.542,
                  "pressing_faced": "MEDIUM",
                  "numerical_situation": "1v1",
                  "xg_multiplier": 1.1797,
                  "skill_edge": 0.0662,
                  "height_edge": 0.056,
                  "attacker_skill": 0.8946,
                  "defender_skill": 0.7474,
                  "xg_override": 0.1317
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.0,
                  "after": 1.2
                },
                {
                  "stat": "totalShots",
                  "before": 0.8751,
                  "after": 1.0324
                },
                {
                  "stat": "shotOffTarget",
                  "before": 0.6267,
                  "after": 0.7393
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.2484,
                  "after": 0.293
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.1116,
                  "after": 0.1317
                },
                {
                  "stat": "goals",
                  "before": 0.0746,
                  "after": 0.088
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.54 (squad xG sum 1.8684, xG scale 1.8936, xA scale 1.8936, team xA 2.35 = 0.66 x lambda)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.097,
                "assist_rate": 0.0645,
                "assists": 0,
                "expected_goals": 0.2494,
                "goal_rate": 0.088,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.8582,
                "minutes": 59,
                "total_pass": 35,
                "accurate_pass": 33,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 16,
                "accurate_own_half_passes": 15,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 19,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 43,
                "possession_lost": 2.5919,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 11,
                "progressive_carries": 0,
                "shots_off_target": 1,
                "duel_xg_multiplier": 1.1797,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.4,
                "crosses_attempted": 3.1,
                "duel_win_rate": 0.542,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "RWB vs LWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Carlos Romero",
                "opponent_faced": "Carlos Romero",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 1.1314
              },
              "params": {
                "team_lambda": 3.538,
                "squad_xg_sum": 1.8684,
                "squad_xa_sum": 1.2396,
                "team_expected_assists": 2.3473,
                "team_xa_to_xg_ratio": 0.6635,
                "bench_appearance_weighted": true,
                "xg_scale": 1.8936,
                "xa_scale": 1.8936,
                "opponent_lambda": 1.348,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.1317,
                  "after": 0.2494
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0512,
                  "after": 0.097
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 10 by projected rating, fifa_overall 84.0; not used by the projection)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.097,
                "assist_rate": 0.0645,
                "assists": 0,
                "expected_goals": 0.2494,
                "goal_rate": 0.088,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.8582,
                "minutes": 59,
                "total_pass": 35,
                "accurate_pass": 33,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 16,
                "accurate_own_half_passes": 15,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 19,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 43,
                "possession_lost": 2.5919,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 11,
                "progressive_carries": 0,
                "shots_off_target": 1,
                "duel_xg_multiplier": 1.1797,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.4,
                "crosses_attempted": 3.1,
                "duel_win_rate": 0.542,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "RWB vs LWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Carlos Romero",
                "opponent_faced": "Carlos Romero",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 1.1314,
                "fifa_overall": 84.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": 300,
                "fifa_rank": 228.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 84.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.097,
                "assist_rate": 0.0645,
                "assists": 0,
                "expected_goals": 0.2494,
                "goal_rate": 0.088,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.8582,
                "minutes": 59,
                "total_pass": 35,
                "accurate_pass": 33,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 16,
                "accurate_own_half_passes": 15,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 19,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 43,
                "possession_lost": 2.5919,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 11,
                "progressive_carries": 0,
                "shots_off_target": 1,
                "duel_xg_multiplier": 1.1797,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.4,
                "crosses_attempted": 3.1,
                "duel_win_rate": 0.542,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "RWB vs LWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Carlos Romero",
                "opponent_faced": "Carlos Romero",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.2207,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 1.1314,
                "fifa_overall": 84.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 0,
                "goal_probability": 0.2207,
                "scorer_weight": 0.1995,
                "squad_weight_total": 3.5857,
                "weight_share": 0.0556,
                "finishing_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 6,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Kylian Mbappé",
                    "weight": 1.2537,
                    "already": 0,
                    "effective_weight": 1.2537,
                    "runner_up": "Jude Bellingham",
                    "runner_up_effective_weight": 0.5657
                  },
                  {
                    "n": 2,
                    "player": "Jude Bellingham",
                    "weight": 0.5657,
                    "already": 0,
                    "effective_weight": 0.5657,
                    "runner_up": "Vinícius Júnior",
                    "runner_up_effective_weight": 0.5343
                  },
                  {
                    "n": 3,
                    "player": "Vinícius Júnior",
                    "weight": 0.5343,
                    "already": 0,
                    "effective_weight": 0.5343,
                    "runner_up": "Kylian Mbappé",
                    "runner_up_effective_weight": 0.5335
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.097,
                "assist_rate": 0.0645,
                "assists": 0,
                "expected_goals": 0.2494,
                "goal_rate": 0.088,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.8582,
                "minutes": 59,
                "total_pass": 35,
                "accurate_pass": 33,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 16,
                "accurate_own_half_passes": 15,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 19,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 43,
                "possession_lost": 2.5919,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 1,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 11,
                "progressive_carries": 0,
                "shots_off_target": 1,
                "duel_xg_multiplier": 1.1797,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.4,
                "crosses_attempted": 3.1,
                "duel_win_rate": 0.542,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "RWB vs LWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Carlos Romero",
                "opponent_faced": "Carlos Romero",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.2207,
                "projected_assists": 0,
                "assist_probability": 0.0924,
                "finishing_factor": 0.8,
                "creation_factor": 1.1314,
                "fifa_overall": 84.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 2,
                "assists_allocated": 0,
                "assist_probability": 0.0924,
                "provider_weight": 0.1097,
                "squad_weight_total": 2.5484,
                "weight_share": 0.0431,
                "creation_factor": 1.1314,
                "appearance_weight": 1.0,
                "weight_rank": 8,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Trent Alexander-Arnold",
                    "weight": 0.524,
                    "already": 0,
                    "effective_weight": 0.524,
                    "runner_up": "Kylian Mbappé",
                    "runner_up_effective_weight": 0.4996
                  },
                  {
                    "n": 2,
                    "player": "Kylian Mbappé",
                    "weight": 0.4996,
                    "already": 0,
                    "effective_weight": 0.4996,
                    "runner_up": "Arda Güler",
                    "runner_up_effective_weight": 0.3574
                  }
                ]
              }
            }
          ]
        },
        "Kylian Mbappé": {
          "player_id": 826643,
          "position": "F",
          "position_depth": "F",
          "is_starter": true,
          "shirt_number": 10,
          "height": 180,
          "market_value": 212000000,
          "stats": {
            "expected_goals": 1.003,
            "goal_rate": 0.6797,
            "goals": 1,
            "shots_on_target": 2,
            "total_shots": 4,
            "expected_assists": 0.3997,
            "key_pass": 1,
            "rating": 7.3677,
            "minutes": 90,
            "total_pass": 39,
            "accurate_pass": 34,
            "duels_won": 6,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 31,
            "accurate_opp_half_passes": 27,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 63,
            "possession_lost": 14.4031,
            "dispossessed": 0.0,
            "duels_lost": 5,
            "aerial_lost": 0,
            "total_contest": 7,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assist_rate": 0.3072,
            "assists": 1,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "offsides": 0,
            "ball_carries": 25,
            "total_progression": 153,
            "progressive_carries": 6,
            "shots_off_target": 2,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 58.3,
            "shotConversion": 0.17,
            "minutesPct": 100.0,
            "pointsPerMatch": 3.0,
            "netGoalDifferencePer90": 2.67,
            "duel_xg_multiplier": 1.066,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.4,
            "aerial_won": 2,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.245,
            "pressing_faced": "MEDIUM",
            "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "numerical_situation": "1v2",
            "opponent_defenders": "Renato Veiga, Santiago Mouriño",
            "opponent_faced": "Renato Veiga, Santiago Mouriño",
            "antagonist_source": "attacking_duel",
            "projected_goals": 1,
            "goal_probability": 0.6332,
            "projected_assists": 1,
            "assist_probability": 0.3295,
            "finishing_factor": 1.25,
            "creation_factor": 1.25,
            "fifa_overall": 91.0
          },
          "latest_10_games": [
            {
              "match_id": 16416339.0,
              "match_date": "2026-09-20",
              "home_team": "Atlético Madrid",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0154,
                "expected_assists": 0.0138,
                "total_shots": 1,
                "total_pass": 25,
                "accurate_pass": 21,
                "duels_won": 5,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416342.0,
              "match_date": "2026-09-15",
              "home_team": "Elche",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Elche",
              "stats": {
                "minutes": 90,
                "rating": 8.5,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.7396,
                "expected_assists": 0.9228,
                "total_shots": 4,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 39,
                "accurate_pass": 33,
                "key_pass": 3,
                "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": 16416331.0,
              "match_date": "2026-09-12",
              "home_team": "Real Madrid",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 90,
                "rating": 9.5,
                "goal_rate": 2.0,
                "goals": 2,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 1.1245,
                "expected_assists": 0.316,
                "total_shots": 5,
                "shots_on_target": 3,
                "shots_off_target": 2,
                "total_pass": 31,
                "accurate_pass": 29,
                "key_pass": 4,
                "tackles": 2,
                "tackles_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"
            },
            {
              "match_id": 16416315.0,
              "match_date": "2026-09-04",
              "home_team": "Real Betis",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 90,
                "rating": 6.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 1.779,
                "expected_assists": 0.3907,
                "total_shots": 7,
                "shots_on_target": 4,
                "shots_off_target": 2,
                "total_pass": 35,
                "accurate_pass": 29,
                "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": 16416312.0,
              "match_date": "2026-08-30",
              "home_team": "Real Madrid",
              "away_team": "Málaga CF",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 90,
                "rating": 9.1,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 1.0136,
                "expected_assists": 0.2003,
                "total_shots": 6,
                "shots_on_target": 4,
                "total_pass": 33,
                "accurate_pass": 30,
                "duels_won": 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": 16421051.0,
              "match_date": "2026-08-26",
              "home_team": "Real Madrid",
              "away_team": "Real Sociedad",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 90,
                "rating": 10.0,
                "goal_rate": 3.0,
                "goals": 3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 1.6713,
                "expected_assists": 0.1673,
                "total_shots": 8,
                "shots_on_target": 7,
                "total_pass": 39,
                "accurate_pass": 36,
                "key_pass": 3,
                "interceptions": 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": 16416306.0,
              "match_date": "2026-08-22",
              "home_team": "Espanyol",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 1.5287,
                "expected_assists": 0.0369,
                "total_shots": 10,
                "shots_on_target": 3,
                "shots_off_target": 4,
                "total_pass": 39,
                "accurate_pass": 32,
                "key_pass": 1,
                "duels_won": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 2,
            "combined_rank_score": 5.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 10.0,
            "sofascore_rating": 8.5,
            "sofascore_appearances": 3.0,
            "fifa_rank": 1.0,
            "fifa_overall": 91.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 2,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 7.3677,
            "source_file": "data/player_rankings.csv",
            "player_name": "Kylian Mbappé",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Lamine Yamal",
                  "ranking": 1
                }
              ],
              "lower": [
                {
                  "player_name": "Erling Haaland",
                  "ranking": 3
                },
                {
                  "player_name": "Mariano Díaz",
                  "ranking": 4
                },
                {
                  "player_name": "Jude Bellingham",
                  "ranking": 5
                },
                {
                  "player_name": "Pedri",
                  "ranking": 6
                },
                {
                  "player_name": "Ryu Won-Woo",
                  "ranking": 7
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.718,
          "history_matches": 7,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "F_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "onTargetScoringAttempt",
              "shotOffTarget",
              "bigChanceMissed",
              "expectedAssists",
              "keyPass",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "touches",
              "dispossessed",
              "wasFouled",
              "topSpeed",
              "numberOfSprints",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "shot_accuracy",
              "xg_per_shot",
              "touches_p90",
              "totalShots_p90",
              "duelWon_p90",
              "ballCarriesCount_p90",
              "big_chance_conversion",
              "shot_waste_rate",
              "aerial_dominance",
              "press_resistance_fwd",
              "speed_threat",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 7,
            "data_confidence": 0.718,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.12,
            "fbref_prior_metrics": {
              "squad": "Real Madrid",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "minutes": 270.0,
              "goals_per90": 1.3333333333333333,
              "assists_per90": 0.0,
              "shots_per90": 8.0,
              "shots_on_target_pct": 58.3,
              "prior_reliability": 0.2
            },
            "rationale": "XGBoost regressor (F_service) evaluated 7 historical appearances across 7 target models; FBref 2026-2027 prior blended (La Liga, Real Madrid, rel: 0.20, gls/90: 1.3333333333333333, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.4437,
                "goal_rate": 0.5338,
                "goals": 1,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.1885,
                "key_pass": 1,
                "rating": 7.3677,
                "minutes": 90,
                "total_pass": 34,
                "accurate_pass": 30,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 28,
                "accurate_opp_half_passes": 24,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 56,
                "possession_lost": 12.86,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 0,
                "total_contest": 6,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.29,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 22,
                "total_progression": 136,
                "progressive_carries": 6,
                "shots_off_target": 2
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:02:15.441175+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 325,
                    "rows": 6303
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Atlético Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2208,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-09-15",
                    "opponent": "Elche",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1877,
                    "rating": 8.5
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Rayo Vallecano",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1595,
                    "rating": 9.5
                  },
                  {
                    "match_date": "2026-09-04",
                    "opponent": "Real Betis",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1356,
                    "rating": 6.0
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Málaga CF",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1152,
                    "rating": 9.1
                  },
                  {
                    "match_date": "2026-08-26",
                    "opponent": "Real Sociedad",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.098,
                    "rating": 10.0
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Espanyol",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0833,
                    "rating": 6.4
                  }
                ],
                "feature_row": {
                  "history_matches": 7.0,
                  "is_starting_11": 1.0,
                  "onTargetScoringAttempt": 2.605,
                  "totalShots": 5.0259,
                  "minutesPlayed": 90.0,
                  "shotValueNormalized": 0.1727,
                  "accuratePass": 29.0352,
                  "expectedAssists": 0.3221
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.44367098808288574,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0826
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0724
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.048
                      },
                      {
                        "name": "touches_p90",
                        "importance": 0.0379
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0352
                      }
                    ],
                    "decomposition": {
                      "base": 0.3626,
                      "items": [
                        {
                          "name": "xg_per_shot",
                          "contribution": 0.0805
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0572
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0564
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0231
                        },
                        {
                          "name": "topSpeed",
                          "contribution": -0.0144
                        }
                      ],
                      "others": -0.0089,
                      "total": 0.4437,
                      "log_link": true,
                      "margin_base": -1.014464,
                      "item_margins": [
                        {
                          "name": "xg_per_shot",
                          "margin": 0.200575
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.121447
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.119563
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": 0.050641
                        },
                        {
                          "name": "topSpeed",
                          "margin": -0.031256
                        }
                      ],
                      "others_margin": -0.020052
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.5337664484977722,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1258
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0801
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "bigChanceMissed",
                        "importance": 0.0323
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0265
                      }
                    ],
                    "decomposition": {
                      "base": 0.2866,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.0839
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.1035
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0295
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0259
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0214
                        }
                      ],
                      "others": 0.0938,
                      "total": 0.5338,
                      "log_link": true,
                      "margin_base": -1.249595,
                      "item_margins": [
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": 0.256657
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.246258
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.064274
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.059925
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": 0.049941
                        }
                      ],
                      "others_margin": 0.19314
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 1.154518485069275,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1486
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0633
                      },
                      {
                        "name": "shot_accuracy",
                        "importance": 0.0618
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0343
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 0.5888,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.2425
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.1839
                        },
                        {
                          "name": "shot_accuracy",
                          "contribution": 0.1544
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0999
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0485
                        }
                      ],
                      "others": 0.0363,
                      "total": 1.1545,
                      "log_link": true,
                      "margin_base": -0.52966,
                      "item_margins": [
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": 0.344857
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.199857
                        },
                        {
                          "name": "shot_accuracy",
                          "margin": 0.141582
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.089327
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.044363
                        }
                      ],
                      "others_margin": 0.032011
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 2.928018485069275,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.1122
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0872
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0825
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.074
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0566
                      }
                    ],
                    "decomposition": {
                      "base": 1.4352,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.9135
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.2959
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.2065
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.1566
                        },
                        {
                          "name": "speed_threat",
                          "contribution": -0.1537
                        }
                      ],
                      "others": 0.3872,
                      "total": 2.928,
                      "log_link": false,
                      "margin_base": 1.435195,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.91349
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": 0.295912
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": 0.206497
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.156573
                        },
                        {
                          "name": "speed_threat",
                          "margin": -0.153746
                        }
                      ],
                      "others_margin": 0.387218
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.1884525567293167,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.1197
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0571
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0459
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0451
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0369
                      }
                    ],
                    "decomposition": {
                      "base": 0.06,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0385
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0092
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0096
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0103
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0111
                        }
                      ],
                      "others": 0.0498,
                      "total": 0.1885,
                      "log_link": true,
                      "margin_base": -2.812623,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": 0.49532
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.089513
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": 0.085503
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.083744
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.083531
                        }
                      ],
                      "others_margin": 0.306104
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 1.2632768154144287,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "accuratePass",
                        "importance": 0.1105
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0916
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0476
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0444
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0409
                      }
                    ],
                    "decomposition": {
                      "base": 0.6782,
                      "items": [
                        {
                          "name": "keyPass",
                          "contribution": 0.1256
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.1413
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0807
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.0711
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0487
                        }
                      ],
                      "others": 0.2151,
                      "total": 1.2633,
                      "log_link": true,
                      "margin_base": -0.388283,
                      "item_margins": [
                        {
                          "name": "keyPass",
                          "margin": 0.169941
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": 0.161908
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.081897
                        },
                        {
                          "name": "totalPass",
                          "margin": 0.066973
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.045463
                        }
                      ],
                      "others_margin": 0.186736
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 7.367666244506836,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0847
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0724
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0628
                      },
                      {
                        "name": "dispossessed",
                        "importance": 0.0551
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0438
                      }
                    ],
                    "decomposition": {
                      "base": 6.815,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.2077
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.165
                        },
                        {
                          "name": "aerial_dominance",
                          "contribution": -0.0678
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0486
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0468
                        }
                      ],
                      "others": 0.1524,
                      "total": 7.3677,
                      "log_link": false,
                      "margin_base": 6.814961,
                      "item_margins": [
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": 0.207727
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.165034
                        },
                        {
                          "name": "aerial_dominance",
                          "margin": -0.067787
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.048576
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.046762
                        }
                      ],
                      "others_margin": 0.152394
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.1200, quality 0.900)",
              "stats": {
                "expected_goals": 0.4969,
                "goal_rate": 0.5978,
                "goals": 1,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.2111,
                "key_pass": 1,
                "rating": 7.3677,
                "minutes": 90,
                "total_pass": 39,
                "accurate_pass": 34,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 31,
                "accurate_opp_half_passes": 27,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 63,
                "possession_lost": 14.4031,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 0,
                "total_contest": 7,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.3248,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 25,
                "total_progression": 153,
                "progressive_carries": 6,
                "shots_off_target": 2
              },
              "params": {
                "market_value_eur": 212000000,
                "quality_factor": 0.9,
                "boost_factor": 1.12
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0542)",
              "stats": {
                "expected_goals": 0.4969,
                "goal_rate": 0.6376,
                "goals": 1,
                "shots_on_target": 1,
                "total_shots": 4,
                "expected_assists": 0.2111,
                "key_pass": 1,
                "rating": 7.3677,
                "minutes": 90,
                "total_pass": 39,
                "accurate_pass": 34,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 31,
                "accurate_opp_half_passes": 27,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 63,
                "possession_lost": 14.4031,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 0,
                "total_contest": 7,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.3072,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 25,
                "total_progression": 153,
                "progressive_carries": 6,
                "shots_off_target": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 58.3,
                "shotConversion": 0.17,
                "minutesPct": 100.0,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.67
              },
              "params": {
                "blend_weight": 0.0542,
                "history_matches": 7,
                "prior_reliability": 0.2,
                "competition": "La Liga",
                "squad": "Real Madrid"
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 3.2794,
                  "after": 3.5351
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 1.2931,
                  "after": 1.476
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0542
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0542
                },
                {
                  "stat": "goals",
                  "before": 0.5978,
                  "after": 0.6376
                },
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.0361
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.0,
                  "after": 0.0181
                },
                {
                  "stat": "totalOffside",
                  "before": 0.0,
                  "after": 0.0181
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.4969,
                "goal_rate": 0.6376,
                "goals": 1,
                "shots_on_target": 1,
                "total_shots": 4,
                "expected_assists": 0.2111,
                "key_pass": 1,
                "rating": 7.3677,
                "minutes": 90,
                "total_pass": 39,
                "accurate_pass": 34,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 31,
                "accurate_opp_half_passes": 27,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 63,
                "possession_lost": 14.4031,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 0,
                "total_contest": 7,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.3072,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 25,
                "total_progression": 153,
                "progressive_carries": 6,
                "shots_off_target": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 58.3,
                "shotConversion": 0.17,
                "minutesPct": 100.0,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.67
              },
              "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.5297,
                "goal_rate": 0.6797,
                "goals": 1,
                "shots_on_target": 2,
                "total_shots": 4,
                "expected_assists": 0.2111,
                "key_pass": 1,
                "rating": 7.3677,
                "minutes": 90,
                "total_pass": 39,
                "accurate_pass": 34,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 31,
                "accurate_opp_half_passes": 27,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 63,
                "possession_lost": 14.4031,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 0,
                "total_contest": 7,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.3072,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 25,
                "total_progression": 153,
                "progressive_carries": 6,
                "shots_off_target": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 58.3,
                "shotConversion": 0.17,
                "minutesPct": 100.0,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.67,
                "duel_xg_multiplier": 1.066,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.4,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.245,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Renato Veiga, Santiago Mouriño",
                "opponent_faced": "Renato Veiga, Santiago Mouriño",
                "antagonist_source": "attacking_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Renato Veiga, Santiago Mouriño",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                  "duel_win_rate": 0.245,
                  "pressing_faced": "MEDIUM",
                  "numerical_situation": "1v2",
                  "xg_multiplier": 1.066,
                  "skill_edge": 0.0769,
                  "height_edge": -0.032,
                  "attacker_skill": 0.9,
                  "defender_skill": 0.7292,
                  "xg_override": 0.5297
                }
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 3.5351,
                  "after": 3.7684
                },
                {
                  "stat": "shotOffTarget",
                  "before": 1.9863,
                  "after": 2.1174
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 1.476,
                  "after": 1.5734
                },
                {
                  "stat": "goals",
                  "before": 0.6376,
                  "after": 0.6797
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.4969,
                  "after": 0.5297
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.54 (squad xG sum 1.8684, xG scale 1.8936, xA scale 1.8936, team xA 2.35 = 0.66 x lambda)",
              "stats": {
                "expected_goals": 1.003,
                "goal_rate": 0.6797,
                "goals": 0,
                "shots_on_target": 2,
                "total_shots": 4,
                "expected_assists": 0.3997,
                "key_pass": 1,
                "rating": 7.3677,
                "minutes": 90,
                "total_pass": 39,
                "accurate_pass": 34,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 31,
                "accurate_opp_half_passes": 27,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 63,
                "possession_lost": 14.4031,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 0,
                "total_contest": 7,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.3072,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 25,
                "total_progression": 153,
                "progressive_carries": 6,
                "shots_off_target": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 58.3,
                "shotConversion": 0.17,
                "minutesPct": 100.0,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.67,
                "duel_xg_multiplier": 1.066,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.4,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.245,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Renato Veiga, Santiago Mouriño",
                "opponent_faced": "Renato Veiga, Santiago Mouriño",
                "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": 3.538,
                "squad_xg_sum": 1.8684,
                "squad_xa_sum": 1.2396,
                "team_expected_assists": 2.3473,
                "team_xa_to_xg_ratio": 0.6635,
                "bench_appearance_weighted": true,
                "xg_scale": 1.8936,
                "xa_scale": 1.8936,
                "opponent_lambda": 1.348,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.5297,
                  "after": 1.003
                },
                {
                  "stat": "expected_assists",
                  "before": 0.2111,
                  "after": 0.3997
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 2 by projected rating, fifa_overall 91.0; not used by the projection)",
              "stats": {
                "expected_goals": 1.003,
                "goal_rate": 0.6797,
                "goals": 0,
                "shots_on_target": 2,
                "total_shots": 4,
                "expected_assists": 0.3997,
                "key_pass": 1,
                "rating": 7.3677,
                "minutes": 90,
                "total_pass": 39,
                "accurate_pass": 34,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 31,
                "accurate_opp_half_passes": 27,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 63,
                "possession_lost": 14.4031,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 0,
                "total_contest": 7,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.3072,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 25,
                "total_progression": 153,
                "progressive_carries": 6,
                "shots_off_target": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 58.3,
                "shotConversion": 0.17,
                "minutesPct": 100.0,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.67,
                "duel_xg_multiplier": 1.066,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.4,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.245,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Renato Veiga, Santiago Mouriño",
                "opponent_faced": "Renato Veiga, Santiago Mouriño",
                "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": 91.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": 2,
                "fifa_rank": 1.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 91.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "expected_goals": 1.003,
                "goal_rate": 0.6797,
                "goals": 1,
                "shots_on_target": 2,
                "total_shots": 4,
                "expected_assists": 0.3997,
                "key_pass": 1,
                "rating": 7.3677,
                "minutes": 90,
                "total_pass": 39,
                "accurate_pass": 34,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 31,
                "accurate_opp_half_passes": 27,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 63,
                "possession_lost": 14.4031,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 0,
                "total_contest": 7,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.3072,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 25,
                "total_progression": 153,
                "progressive_carries": 6,
                "shots_off_target": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 58.3,
                "shotConversion": 0.17,
                "minutesPct": 100.0,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.67,
                "duel_xg_multiplier": 1.066,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.4,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.245,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Renato Veiga, Santiago Mouriño",
                "opponent_faced": "Renato Veiga, Santiago Mouriño",
                "antagonist_source": "attacking_duel",
                "projected_goals": 1,
                "goal_probability": 0.6332,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 1.25,
                "fifa_overall": 91.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 1,
                "goal_probability": 0.6332,
                "scorer_weight": 1.2537,
                "squad_weight_total": 3.5857,
                "weight_share": 0.3497,
                "finishing_factor": 1.25,
                "appearance_weight": 1.0,
                "weight_rank": 1,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Kylian Mbappé",
                    "weight": 1.2537,
                    "already": 0,
                    "effective_weight": 1.2537,
                    "runner_up": "Jude Bellingham",
                    "runner_up_effective_weight": 0.5657
                  },
                  {
                    "n": 2,
                    "player": "Jude Bellingham",
                    "weight": 0.5657,
                    "already": 0,
                    "effective_weight": 0.5657,
                    "runner_up": "Vinícius Júnior",
                    "runner_up_effective_weight": 0.5343
                  },
                  {
                    "n": 3,
                    "player": "Vinícius Júnior",
                    "weight": 0.5343,
                    "already": 0,
                    "effective_weight": 0.5343,
                    "runner_up": "Kylian Mbappé",
                    "runner_up_effective_weight": 0.5335
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "expected_goals": 1.003,
                "goal_rate": 0.6797,
                "goals": 1,
                "shots_on_target": 2,
                "total_shots": 4,
                "expected_assists": 0.3997,
                "key_pass": 1,
                "rating": 7.3677,
                "minutes": 90,
                "total_pass": 39,
                "accurate_pass": 34,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 31,
                "accurate_opp_half_passes": 27,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 63,
                "possession_lost": 14.4031,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 0,
                "total_contest": 7,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.3072,
                "assists": 1,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 25,
                "total_progression": 153,
                "progressive_carries": 6,
                "shots_off_target": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 58.3,
                "shotConversion": 0.17,
                "minutesPct": 100.0,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.67,
                "duel_xg_multiplier": 1.066,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.4,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.245,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Renato Veiga, Santiago Mouriño",
                "opponent_faced": "Renato Veiga, Santiago Mouriño",
                "antagonist_source": "attacking_duel",
                "projected_goals": 1,
                "goal_probability": 0.6332,
                "projected_assists": 1,
                "assist_probability": 0.3295,
                "finishing_factor": 1.25,
                "creation_factor": 1.25,
                "fifa_overall": 91.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 2,
                "assists_allocated": 1,
                "assist_probability": 0.3295,
                "provider_weight": 0.4996,
                "squad_weight_total": 2.5484,
                "weight_share": 0.1961,
                "creation_factor": 1.25,
                "appearance_weight": 1.0,
                "weight_rank": 2,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Trent Alexander-Arnold",
                    "weight": 0.524,
                    "already": 0,
                    "effective_weight": 0.524,
                    "runner_up": "Kylian Mbappé",
                    "runner_up_effective_weight": 0.4996
                  },
                  {
                    "n": 2,
                    "player": "Kylian Mbappé",
                    "weight": 0.4996,
                    "already": 0,
                    "effective_weight": 0.4996,
                    "runner_up": "Arda Güler",
                    "runner_up_effective_weight": 0.3574
                  }
                ]
              }
            }
          ]
        },
        "Vinícius Júnior": {
          "player_id": 868812,
          "position": "F",
          "position_depth": "F",
          "is_starter": true,
          "shirt_number": 7,
          "height": 176,
          "market_value": 146000000,
          "stats": {
            "expected_goals": 0.6289,
            "goal_rate": 0.2746,
            "goals": 1,
            "shots_on_target": 1,
            "total_shots": 3,
            "expected_assists": 0.1918,
            "key_pass": 1,
            "rating": 6.9187,
            "minutes": 81,
            "total_pass": 29,
            "accurate_pass": 23,
            "duels_won": 7,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 24,
            "accurate_opp_half_passes": 18,
            "crosses_total": 3,
            "crosses_accurate": 0,
            "touches": 49,
            "possession_lost": 14.5574,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 0,
            "total_contest": 4,
            "won_contest": 0,
            "ball_recovery": 3,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 4,
            "assist_rate": 0.4924,
            "assists": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "offsides": 0,
            "ball_carries": 23,
            "total_progression": 141,
            "progressive_carries": 8,
            "shots_off_target": 2,
            "yellowCards": 0.3448,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 28.6,
            "shotConversion": 0.14,
            "minutesPct": 97.4,
            "pointsPerMatch": 3.0,
            "netGoalDifferencePer90": 2.74,
            "duel_xg_multiplier": 1.0008,
            "dribbles_attempted": 3,
            "dribbles_successful": 1.2,
            "aerial_won": 1,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.451,
            "pressing_faced": "MEDIUM",
            "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
            "numerical_situation": "1v1",
            "opponent_defenders": "Renato Veiga",
            "opponent_faced": "Renato Veiga",
            "antagonist_source": "attacking_duel",
            "projected_goals": 1,
            "goal_probability": 0.4668,
            "projected_assists": 0,
            "assist_probability": 0.1745,
            "finishing_factor": 0.8495,
            "creation_factor": 1.25,
            "fifa_overall": 86.0
          },
          "latest_10_games": [
            {
              "match_id": 16416339.0,
              "match_date": "2026-09-20",
              "home_team": "Atlético Madrid",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 54,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0641,
                "expected_assists": 0.0051,
                "total_shots": 2,
                "shots_off_target": 2,
                "total_pass": 11,
                "accurate_pass": 8,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416342.0,
              "match_date": "2026-09-15",
              "home_team": "Elche",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Elche",
              "stats": {
                "minutes": 68,
                "rating": 5.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.652,
                "expected_assists": 0.0302,
                "total_shots": 5,
                "shots_on_target": 1,
                "shots_off_target": 4,
                "total_pass": 17,
                "accurate_pass": 13,
                "key_pass": 1,
                "tackles": 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": 16416331.0,
              "match_date": "2026-09-12",
              "home_team": "Real Madrid",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 89,
                "rating": 7.8,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.1475,
                "expected_assists": 0.3526,
                "total_shots": 4,
                "shots_on_target": 2,
                "shots_off_target": 1,
                "total_pass": 37,
                "accurate_pass": 33,
                "key_pass": 2,
                "tackles": 3,
                "tackles_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": 16416315.0,
              "match_date": "2026-09-04",
              "home_team": "Real Betis",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.9875,
                "expected_assists": 0.2576,
                "total_shots": 4,
                "shots_on_target": 1,
                "shots_off_target": 2,
                "total_pass": 39,
                "accurate_pass": 30,
                "key_pass": 4,
                "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": 16416312.0,
              "match_date": "2026-08-30",
              "home_team": "Real Madrid",
              "away_team": "Málaga CF",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 90,
                "rating": 7.4,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.0377,
                "expected_assists": 0.7194,
                "total_shots": 2,
                "total_pass": 32,
                "accurate_pass": 26,
                "key_pass": 4,
                "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": "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": "home",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 84,
                "rating": 7.8,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 1.0849,
                "expected_assists": 0.3469,
                "total_shots": 4,
                "shots_on_target": 2,
                "shots_off_target": 1,
                "total_pass": 31,
                "accurate_pass": 24,
                "key_pass": 2,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416306.0,
              "match_date": "2026-08-22",
              "home_team": "Espanyol",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0373,
                "expected_assists": 0.0273,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 13,
                "accurate_pass": 9,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 12,
                "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": 89,
            "combined_rank_score": 90.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 91.0,
            "sofascore_rating": 7.5,
            "sofascore_appearances": 36.0,
            "fifa_rank": 90.0,
            "fifa_overall": 86.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 6,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.9187,
            "source_file": "data/player_rankings.csv",
            "player_name": "Vinícius Júnior",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Bremer",
                  "ranking": 84
                },
                {
                  "player_name": "Nico Schlotterbeck",
                  "ranking": 85
                },
                {
                  "player_name": "Arturo Vidal",
                  "ranking": 86
                },
                {
                  "player_name": "Ousmane Dembélé",
                  "ranking": 87
                },
                {
                  "player_name": "Diogo Costa",
                  "ranking": 88
                }
              ],
              "lower": [
                {
                  "player_name": "Khozhiakbar Alizhonov",
                  "ranking": 90
                },
                {
                  "player_name": "Abduvokhid Nematov",
                  "ranking": 91
                },
                {
                  "player_name": "Ignacio Suárez",
                  "ranking": 92
                },
                {
                  "player_name": "Carlos Dotor",
                  "ranking": 93
                },
                {
                  "player_name": "Cristhian Martínez",
                  "ranking": 94
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.716,
          "history_matches": 7,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "F_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "onTargetScoringAttempt",
              "shotOffTarget",
              "bigChanceMissed",
              "expectedAssists",
              "keyPass",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "touches",
              "dispossessed",
              "wasFouled",
              "topSpeed",
              "numberOfSprints",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "shot_accuracy",
              "xg_per_shot",
              "touches_p90",
              "totalShots_p90",
              "duelWon_p90",
              "ballCarriesCount_p90",
              "big_chance_conversion",
              "shot_waste_rate",
              "aerial_dominance",
              "press_resistance_fwd",
              "speed_threat",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 7,
            "data_confidence": 0.716,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.1198,
            "fbref_prior_metrics": {
              "squad": "Real Madrid",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "minutes": 263.0,
              "goals_per90": 0.3448275862068966,
              "assists_per90": 0.6896551724137931,
              "shots_per90": 2.4,
              "shots_on_target_pct": 28.6,
              "prior_reliability": 0.1933
            },
            "rationale": "XGBoost regressor (F_service) evaluated 7 historical appearances across 7 target models; FBref 2026-2027 prior blended (La Liga, Real Madrid, rel: 0.19, gls/90: 0.3448275862068966, ast/90: 0.6896551724137931)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.2963,
                "goal_rate": 0.2416,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.0904,
                "key_pass": 1,
                "rating": 6.9187,
                "minutes": 81,
                "total_pass": 26,
                "accurate_pass": 20,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 21,
                "accurate_opp_half_passes": 16,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 44,
                "possession_lost": 13.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 4,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 3,
                "assist_rate": 0.43,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 21,
                "total_progression": 126,
                "progressive_carries": 7,
                "shots_off_target": 2
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:02:15.441175+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 325,
                    "rows": 6303
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Atlético Madrid",
                    "minutes": 54.0,
                    "is_starting": true,
                    "weight": 0.2208,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-09-15",
                    "opponent": "Elche",
                    "minutes": 68.0,
                    "is_starting": true,
                    "weight": 0.1877,
                    "rating": 5.7
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Rayo Vallecano",
                    "minutes": 89.0,
                    "is_starting": true,
                    "weight": 0.1595,
                    "rating": 7.8
                  },
                  {
                    "match_date": "2026-09-04",
                    "opponent": "Real Betis",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1356,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Málaga CF",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1152,
                    "rating": 7.4
                  },
                  {
                    "match_date": "2026-08-26",
                    "opponent": "Real Sociedad",
                    "minutes": 84.0,
                    "is_starting": true,
                    "weight": 0.098,
                    "rating": 7.8
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Espanyol",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0833,
                    "rating": 7.0
                  }
                ],
                "feature_row": {
                  "history_matches": 7.0,
                  "is_starting_11": 1.0,
                  "onTargetScoringAttempt": 0.8382,
                  "totalShots": 3.2658,
                  "minutesPlayed": 77.1763,
                  "shotValueNormalized": -0.351,
                  "accuratePass": 19.6339,
                  "expectedAssists": 0.2171
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.2963305115699768,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0826
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0724
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.048
                      },
                      {
                        "name": "touches_p90",
                        "importance": 0.0379
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0352
                      }
                    ],
                    "decomposition": {
                      "base": 0.3626,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0301
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": -0.0209
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0157
                        },
                        {
                          "name": "shot_accuracy",
                          "contribution": -0.0134
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0128
                        }
                      ],
                      "others": -0.0336,
                      "total": 0.2963,
                      "log_link": true,
                      "margin_base": -1.014464,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.079621
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": -0.054597
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.043013
                        },
                        {
                          "name": "shot_accuracy",
                          "margin": -0.038401
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.038115
                        }
                      ],
                      "others_margin": -0.107311
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.24155715107917786,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1258
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0801
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "bigChanceMissed",
                        "importance": 0.0323
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0265
                      }
                    ],
                    "decomposition": {
                      "base": 0.2866,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0517
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0393
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0304
                        },
                        {
                          "name": "shot_accuracy",
                          "contribution": -0.0158
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0133
                        }
                      ],
                      "others": -0.0245,
                      "total": 0.2416,
                      "log_link": true,
                      "margin_base": -1.249595,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.165785
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.123608
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.107243
                        },
                        {
                          "name": "shot_accuracy",
                          "margin": -0.060708
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.051329
                        }
                      ],
                      "others_margin": -0.096611
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.6333467960357666,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1486
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0633
                      },
                      {
                        "name": "shot_accuracy",
                        "importance": 0.0618
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0343
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 0.5888,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.1324
                        },
                        {
                          "name": "shot_accuracy",
                          "contribution": 0.0664
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0609
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0231
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": 0.0231
                        }
                      ],
                      "others": 0.0034,
                      "total": 0.6333,
                      "log_link": true,
                      "margin_base": -0.52966,
                      "item_margins": [
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.254635
                        },
                        {
                          "name": "shot_accuracy",
                          "margin": 0.135864
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.110115
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": 0.038741
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": 0.037418
                        }
                      ],
                      "others_margin": 0.005421
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 2.653879165649414,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.1122
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0872
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0825
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.074
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0566
                      }
                    ],
                    "decomposition": {
                      "base": 1.4352,
                      "items": [
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": 0.5023
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.4648
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.3071
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.1001
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": 0.0538
                        }
                      ],
                      "others": -0.0092,
                      "total": 2.6539,
                      "log_link": false,
                      "margin_base": 1.435195,
                      "item_margins": [
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": 0.50233
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.464828
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": 0.307113
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.100076
                        },
                        {
                          "name": "totalShots_p90",
                          "margin": 0.053829
                        }
                      ],
                      "others_margin": -0.009339
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.09043097496032715,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.1197
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0571
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0459
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0451
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0369
                      }
                    ],
                    "decomposition": {
                      "base": 0.06,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.025
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0083
                        },
                        {
                          "name": "shot_waste_rate",
                          "contribution": -0.0073
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.0055
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0054
                        }
                      ],
                      "others": 0.0043,
                      "total": 0.0904,
                      "log_link": true,
                      "margin_base": -2.812623,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": 0.34862
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.092981
                        },
                        {
                          "name": "shot_waste_rate",
                          "margin": -0.081917
                        },
                        {
                          "name": "totalPass",
                          "margin": 0.062441
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.061205
                        }
                      ],
                      "others_margin": 0.048535
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 1.1279559135437012,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "accuratePass",
                        "importance": 0.1105
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0916
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0476
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0444
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0409
                      }
                    ],
                    "decomposition": {
                      "base": 0.6782,
                      "items": [
                        {
                          "name": "keyPass",
                          "contribution": 0.1495
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.1313
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0692
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.0549
                        },
                        {
                          "name": "shot_waste_rate",
                          "contribution": -0.0319
                        }
                      ],
                      "others": 0.0768,
                      "total": 1.128,
                      "log_link": true,
                      "margin_base": -0.388283,
                      "item_margins": [
                        {
                          "name": "keyPass",
                          "margin": 0.199177
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": 0.14722
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.069721
                        },
                        {
                          "name": "totalPass",
                          "margin": 0.051997
                        },
                        {
                          "name": "shot_waste_rate",
                          "margin": -0.029863
                        }
                      ],
                      "others_margin": 0.070438
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.918702125549316,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0847
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0724
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0628
                      },
                      {
                        "name": "dispossessed",
                        "importance": 0.0551
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0438
                      }
                    ],
                    "decomposition": {
                      "base": 6.815,
                      "items": [
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.124
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.048
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0304
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0206
                        },
                        {
                          "name": "topSpeed",
                          "contribution": -0.0165
                        }
                      ],
                      "others": 0.0344,
                      "total": 6.9187,
                      "log_link": false,
                      "margin_base": 6.814961,
                      "item_margins": [
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.123984
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.048007
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.030382
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.020554
                        },
                        {
                          "name": "topSpeed",
                          "margin": -0.016532
                        }
                      ],
                      "others_margin": 0.034466
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.1198, quality 0.899)",
              "stats": {
                "expected_goals": 0.3318,
                "goal_rate": 0.2705,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.1013,
                "key_pass": 1,
                "rating": 6.9187,
                "minutes": 81,
                "total_pass": 29,
                "accurate_pass": 23,
                "duels_won": 7,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 24,
                "accurate_opp_half_passes": 18,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 49,
                "possession_lost": 14.5574,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 4,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 4,
                "assist_rate": 0.4815,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 23,
                "total_progression": 141,
                "progressive_carries": 8,
                "shots_off_target": 2
              },
              "params": {
                "market_value_eur": 146000000,
                "quality_factor": 0.8993,
                "boost_factor": 1.1198
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0524)",
              "stats": {
                "expected_goals": 0.3318,
                "goal_rate": 0.2744,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.1013,
                "key_pass": 1,
                "rating": 6.9187,
                "minutes": 81,
                "total_pass": 29,
                "accurate_pass": 23,
                "duels_won": 7,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 24,
                "accurate_opp_half_passes": 18,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 49,
                "possession_lost": 14.5574,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 4,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 4,
                "assist_rate": 0.4924,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 23,
                "total_progression": 141,
                "progressive_carries": 8,
                "shots_off_target": 2,
                "yellowCards": 0.3448,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 28.6,
                "shotConversion": 0.14,
                "minutesPct": 97.4,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.74
              },
              "params": {
                "blend_weight": 0.0524,
                "history_matches": 7,
                "prior_reliability": 0.1933,
                "competition": "La Liga",
                "squad": "Real Madrid"
              },
              "changes": [
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0542
                },
                {
                  "stat": "wasFouled",
                  "before": 3.6841,
                  "after": 3.7259
                },
                {
                  "stat": "totalShots",
                  "before": 2.9718,
                  "after": 2.9419
                },
                {
                  "stat": "totalCross",
                  "before": 2.8779,
                  "after": 2.8536
                },
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0181
                },
                {
                  "stat": "goalAssist",
                  "before": 0.4815,
                  "after": 0.4924
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.3318,
                "goal_rate": 0.2744,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.1013,
                "key_pass": 1,
                "rating": 6.9187,
                "minutes": 81,
                "total_pass": 29,
                "accurate_pass": 23,
                "duels_won": 7,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 24,
                "accurate_opp_half_passes": 18,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 49,
                "possession_lost": 14.5574,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 4,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 4,
                "assist_rate": 0.4924,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 23,
                "total_progression": 141,
                "progressive_carries": 8,
                "shots_off_target": 2,
                "yellowCards": 0.3448,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 28.6,
                "shotConversion": 0.14,
                "minutesPct": 97.4,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.74
              },
              "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.3321,
                "goal_rate": 0.2746,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.1013,
                "key_pass": 1,
                "rating": 6.9187,
                "minutes": 81,
                "total_pass": 29,
                "accurate_pass": 23,
                "duels_won": 7,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 24,
                "accurate_opp_half_passes": 18,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 49,
                "possession_lost": 14.5574,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 4,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 4,
                "assist_rate": 0.4924,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 23,
                "total_progression": 141,
                "progressive_carries": 8,
                "shots_off_target": 2,
                "yellowCards": 0.3448,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 28.6,
                "shotConversion": 0.14,
                "minutesPct": 97.4,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.74,
                "duel_xg_multiplier": 1.0008,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.2,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.451,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "numerical_situation": "1v1",
                "opponent_defenders": "Renato Veiga",
                "opponent_faced": "Renato Veiga",
                "antagonist_source": "attacking_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Renato Veiga",
                  "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                  "duel_win_rate": 0.451,
                  "pressing_faced": "MEDIUM",
                  "numerical_situation": "1v1",
                  "xg_multiplier": 1.0008,
                  "skill_edge": 0.0566,
                  "height_edge": -0.056,
                  "attacker_skill": 0.8993,
                  "defender_skill": 0.7736,
                  "xg_override": 0.3321
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.54 (squad xG sum 1.8684, xG scale 1.8936, xA scale 1.8936, team xA 2.35 = 0.66 x lambda)",
              "stats": {
                "expected_goals": 0.6289,
                "goal_rate": 0.2746,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.1918,
                "key_pass": 1,
                "rating": 6.9187,
                "minutes": 81,
                "total_pass": 29,
                "accurate_pass": 23,
                "duels_won": 7,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 24,
                "accurate_opp_half_passes": 18,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 49,
                "possession_lost": 14.5574,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 4,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 4,
                "assist_rate": 0.4924,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 23,
                "total_progression": 141,
                "progressive_carries": 8,
                "shots_off_target": 2,
                "yellowCards": 0.3448,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 28.6,
                "shotConversion": 0.14,
                "minutesPct": 97.4,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.74,
                "duel_xg_multiplier": 1.0008,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.2,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.451,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "numerical_situation": "1v1",
                "opponent_defenders": "Renato Veiga",
                "opponent_faced": "Renato Veiga",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8495,
                "creation_factor": 1.25
              },
              "params": {
                "team_lambda": 3.538,
                "squad_xg_sum": 1.8684,
                "squad_xa_sum": 1.2396,
                "team_expected_assists": 2.3473,
                "team_xa_to_xg_ratio": 0.6635,
                "bench_appearance_weighted": true,
                "xg_scale": 1.8936,
                "xa_scale": 1.8936,
                "opponent_lambda": 1.348,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.3321,
                  "after": 0.6289
                },
                {
                  "stat": "expected_assists",
                  "before": 0.1013,
                  "after": 0.1918
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 6 by projected rating, fifa_overall 86.0; not used by the projection)",
              "stats": {
                "expected_goals": 0.6289,
                "goal_rate": 0.2746,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.1918,
                "key_pass": 1,
                "rating": 6.9187,
                "minutes": 81,
                "total_pass": 29,
                "accurate_pass": 23,
                "duels_won": 7,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 24,
                "accurate_opp_half_passes": 18,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 49,
                "possession_lost": 14.5574,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 4,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 4,
                "assist_rate": 0.4924,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 23,
                "total_progression": 141,
                "progressive_carries": 8,
                "shots_off_target": 2,
                "yellowCards": 0.3448,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 28.6,
                "shotConversion": 0.14,
                "minutesPct": 97.4,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.74,
                "duel_xg_multiplier": 1.0008,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.2,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.451,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "numerical_situation": "1v1",
                "opponent_defenders": "Renato Veiga",
                "opponent_faced": "Renato Veiga",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8495,
                "creation_factor": 1.25,
                "fifa_overall": 86.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": 89,
                "fifa_rank": 90.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 86.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "expected_goals": 0.6289,
                "goal_rate": 0.2746,
                "goals": 1,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.1918,
                "key_pass": 1,
                "rating": 6.9187,
                "minutes": 81,
                "total_pass": 29,
                "accurate_pass": 23,
                "duels_won": 7,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 24,
                "accurate_opp_half_passes": 18,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 49,
                "possession_lost": 14.5574,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 4,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 4,
                "assist_rate": 0.4924,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 23,
                "total_progression": 141,
                "progressive_carries": 8,
                "shots_off_target": 2,
                "yellowCards": 0.3448,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 28.6,
                "shotConversion": 0.14,
                "minutesPct": 97.4,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.74,
                "duel_xg_multiplier": 1.0008,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.2,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.451,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "numerical_situation": "1v1",
                "opponent_defenders": "Renato Veiga",
                "opponent_faced": "Renato Veiga",
                "antagonist_source": "attacking_duel",
                "projected_goals": 1,
                "goal_probability": 0.4668,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8495,
                "creation_factor": 1.25,
                "fifa_overall": 86.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 1,
                "goal_probability": 0.4668,
                "scorer_weight": 0.5343,
                "squad_weight_total": 3.5857,
                "weight_share": 0.149,
                "finishing_factor": 0.8495,
                "appearance_weight": 1.0,
                "weight_rank": 3,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Kylian Mbappé",
                    "weight": 1.2537,
                    "already": 0,
                    "effective_weight": 1.2537,
                    "runner_up": "Jude Bellingham",
                    "runner_up_effective_weight": 0.5657
                  },
                  {
                    "n": 2,
                    "player": "Jude Bellingham",
                    "weight": 0.5657,
                    "already": 0,
                    "effective_weight": 0.5657,
                    "runner_up": "Vinícius Júnior",
                    "runner_up_effective_weight": 0.5343
                  },
                  {
                    "n": 3,
                    "player": "Vinícius Júnior",
                    "weight": 0.5343,
                    "already": 0,
                    "effective_weight": 0.5343,
                    "runner_up": "Kylian Mbappé",
                    "runner_up_effective_weight": 0.5335
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "expected_goals": 0.6289,
                "goal_rate": 0.2746,
                "goals": 1,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.1918,
                "key_pass": 1,
                "rating": 6.9187,
                "minutes": 81,
                "total_pass": 29,
                "accurate_pass": 23,
                "duels_won": 7,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 24,
                "accurate_opp_half_passes": 18,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 49,
                "possession_lost": 14.5574,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 4,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 4,
                "assist_rate": 0.4924,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 23,
                "total_progression": 141,
                "progressive_carries": 8,
                "shots_off_target": 2,
                "yellowCards": 0.3448,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 28.6,
                "shotConversion": 0.14,
                "minutesPct": 97.4,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.74,
                "duel_xg_multiplier": 1.0008,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.2,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.451,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "numerical_situation": "1v1",
                "opponent_defenders": "Renato Veiga",
                "opponent_faced": "Renato Veiga",
                "antagonist_source": "attacking_duel",
                "projected_goals": 1,
                "goal_probability": 0.4668,
                "projected_assists": 0,
                "assist_probability": 0.1745,
                "finishing_factor": 0.8495,
                "creation_factor": 1.25,
                "fifa_overall": 86.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 2,
                "assists_allocated": 0,
                "assist_probability": 0.1745,
                "provider_weight": 0.2397,
                "squad_weight_total": 2.5484,
                "weight_share": 0.0941,
                "creation_factor": 1.25,
                "appearance_weight": 1.0,
                "weight_rank": 5,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Trent Alexander-Arnold",
                    "weight": 0.524,
                    "already": 0,
                    "effective_weight": 0.524,
                    "runner_up": "Kylian Mbappé",
                    "runner_up_effective_weight": 0.4996
                  },
                  {
                    "n": 2,
                    "player": "Kylian Mbappé",
                    "weight": 0.4996,
                    "already": 0,
                    "effective_weight": 0.4996,
                    "runner_up": "Arda Güler",
                    "runner_up_effective_weight": 0.3574
                  }
                ]
              }
            }
          ]
        },
        "Yan Diomande": {
          "player_id": 2087085,
          "position": "F",
          "position_depth": "F",
          "is_starter": true,
          "shirt_number": 25,
          "height": 180,
          "market_value": 99000000,
          "stats": {
            "expected_goals": 0.3109,
            "goal_rate": 0.1738,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "expected_assists": 0.1791,
            "key_pass": 1,
            "rating": 6.8045,
            "minutes": 41,
            "total_pass": 17,
            "accurate_pass": 14,
            "duels_won": 6,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 13,
            "accurate_opp_half_passes": 10,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 31,
            "possession_lost": 7.6687,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 0,
            "total_contest": 4,
            "won_contest": 3,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assist_rate": 0.1545,
            "assists": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "offsides": 0,
            "ball_carries": 14,
            "total_progression": 88,
            "progressive_carries": 3,
            "shots_off_target": 1,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "minutesPct": 22.2,
            "pointsPerMatch": 3.0,
            "netGoalDifferencePer90": 3.0,
            "duel_xg_multiplier": 1.0201,
            "dribbles_attempted": 3,
            "dribbles_successful": 1.2,
            "aerial_won": 1,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.464,
            "pressing_faced": "MEDIUM",
            "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
            "numerical_situation": "1v1",
            "opponent_defenders": "Renato Veiga",
            "opponent_faced": "Renato Veiga",
            "antagonist_source": "attacking_duel",
            "projected_goals": 0,
            "goal_probability": 0.2672,
            "projected_assists": 0,
            "assist_probability": 0.164,
            "finishing_factor": 1.0448,
            "creation_factor": 1.25,
            "fifa_overall": 84.0
          },
          "latest_10_games": [
            {
              "match_id": 16416339.0,
              "match_date": "2026-09-20",
              "home_team": "Atlético Madrid",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 36,
                "rating": 7.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0706,
                "expected_assists": 0.0114,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 10,
                "accurate_pass": 9,
                "duels_won": 9
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416342.0,
              "match_date": "2026-09-15",
              "home_team": "Elche",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Elche",
              "stats": {
                "minutes": 89,
                "rating": 7.3,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.0985,
                "expected_assists": 0.3043,
                "total_shots": 1,
                "total_pass": 29,
                "accurate_pass": 20,
                "key_pass": 3,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 1,
                "clearances": 1,
                "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": 16416331.0,
              "match_date": "2026-09-12",
              "home_team": "Real Madrid",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 72,
                "rating": 7.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0388,
                "expected_assists": 0.091,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 26,
                "accurate_pass": 24,
                "key_pass": 2,
                "tackles": 3,
                "tackles_won": 3,
                "interceptions": 2,
                "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": 16416315.0,
              "match_date": "2026-09-04",
              "home_team": "Real Betis",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Madrid",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 26,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.011,
                "total_shots": 0,
                "total_pass": 10,
                "accurate_pass": 8,
                "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": 16416312.0,
              "match_date": "2026-08-30",
              "home_team": "Real Madrid",
              "away_team": "Málaga CF",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Madrid",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 25,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0513,
                "total_shots": 0,
                "total_pass": 14,
                "accurate_pass": 13,
                "key_pass": 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": 16421051.0,
              "match_date": "2026-08-26",
              "home_team": "Real Madrid",
              "away_team": "Real Sociedad",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Madrid",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 10,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0006,
                "total_shots": 0,
                "total_pass": 6,
                "accurate_pass": 3,
                "aerial_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": 16416306.0,
              "match_date": "2026-08-22",
              "home_team": "Espanyol",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Madrid",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 26,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0538,
                "total_shots": 0,
                "total_pass": 11,
                "accurate_pass": 10,
                "key_pass": 1,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 1021,
            "combined_rank_score": 454.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 698.0,
            "sofascore_rating": 6.7,
            "sofascore_appearances": 3.0,
            "fifa_rank": 210.0,
            "fifa_overall": 84.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 14,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.8045,
            "source_file": "data/player_rankings.csv",
            "player_name": "Yan Diomande",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Giovanni Di Lorenzo",
                  "ranking": 1016
                },
                {
                  "player_name": "Min-hyeok Kim",
                  "ranking": 1017
                },
                {
                  "player_name": "Tim Hartzell",
                  "ranking": 1018
                },
                {
                  "player_name": "Dae-kwang Lee",
                  "ranking": 1019
                },
                {
                  "player_name": "Stanislav Iljutcenko",
                  "ranking": 1020
                }
              ],
              "lower": [
                {
                  "player_name": "Robin Roefs",
                  "ranking": 1022
                },
                {
                  "player_name": "Andrea Cambiaso",
                  "ranking": 1023
                },
                {
                  "player_name": "Clarismario",
                  "ranking": 1024
                },
                {
                  "player_name": "Milan Obradović",
                  "ranking": 1025
                },
                {
                  "player_name": "Álvaro Carreras",
                  "ranking": 1026
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.695,
          "history_matches": 7,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "F_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "onTargetScoringAttempt",
              "shotOffTarget",
              "bigChanceMissed",
              "expectedAssists",
              "keyPass",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "touches",
              "dispossessed",
              "wasFouled",
              "topSpeed",
              "numberOfSprints",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "shot_accuracy",
              "xg_per_shot",
              "touches_p90",
              "totalShots_p90",
              "duelWon_p90",
              "ballCarriesCount_p90",
              "big_chance_conversion",
              "shot_waste_rate",
              "aerial_dominance",
              "press_resistance_fwd",
              "speed_threat",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 7,
            "data_confidence": 0.695,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.1179,
            "fbref_prior_metrics": {
              "squad": "Real Madrid",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 0.0,
              "minutes": 60.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.0,
              "prior_reliability": 0.0467
            },
            "rationale": "XGBoost regressor (F_service) evaluated 7 historical appearances across 7 target models; FBref 2026-2027 prior blended (La Liga, Real Madrid, rel: 0.05, 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.144,
                "goal_rate": 0.1544,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0846,
                "key_pass": 1,
                "rating": 6.8045,
                "minutes": 41,
                "total_pass": 15,
                "accurate_pass": 12,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 9,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 27,
                "possession_lost": 6.86,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 4,
                "won_contest": 3,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.14,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 12,
                "total_progression": 79,
                "progressive_carries": 3,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:02:15.441175+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 325,
                    "rows": 6303
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Atlético Madrid",
                    "minutes": 36.0,
                    "is_starting": true,
                    "weight": 0.2208,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-09-15",
                    "opponent": "Elche",
                    "minutes": 89.0,
                    "is_starting": true,
                    "weight": 0.1877,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Rayo Vallecano",
                    "minutes": 72.0,
                    "is_starting": true,
                    "weight": 0.1595,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-09-04",
                    "opponent": "Real Betis",
                    "minutes": 26.0,
                    "is_starting": false,
                    "weight": 0.1356,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Málaga CF",
                    "minutes": 25.0,
                    "is_starting": false,
                    "weight": 0.1152,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-08-26",
                    "opponent": "Real Sociedad",
                    "minutes": 10.0,
                    "is_starting": false,
                    "weight": 0.098,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Espanyol",
                    "minutes": 26.0,
                    "is_starting": false,
                    "weight": 0.0833,
                    "rating": 6.5
                  }
                ],
                "feature_row": {
                  "history_matches": 7.0,
                  "is_starting_11": 1.0,
                  "onTargetScoringAttempt": 0.2208,
                  "totalShots": 0.5679,
                  "minutesPlayed": 45.6852,
                  "shotValueNormalized": -0.0761,
                  "accuratePass": 13.2778,
                  "expectedAssists": 0.0861
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.14398439228534698,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0826
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0724
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.048
                      },
                      {
                        "name": "touches_p90",
                        "importance": 0.0379
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0352
                      }
                    ],
                    "decomposition": {
                      "base": 0.3626,
                      "items": [
                        {
                          "name": "xg_per_shot",
                          "contribution": -0.0964
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0302
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.024
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0137
                        },
                        {
                          "name": "topSpeed",
                          "contribution": -0.0123
                        }
                      ],
                      "others": -0.042,
                      "total": 0.144,
                      "log_link": true,
                      "margin_base": -1.014464,
                      "item_margins": [
                        {
                          "name": "xg_per_shot",
                          "margin": -0.309086
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.120394
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.107311
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.066571
                        },
                        {
                          "name": "topSpeed",
                          "margin": -0.063864
                        }
                      ],
                      "others_margin": -0.256361
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.15441696345806122,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1258
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0801
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "bigChanceMissed",
                        "importance": 0.0323
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0265
                      }
                    ],
                    "decomposition": {
                      "base": 0.2866,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.041
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0285
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0226
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0093
                        },
                        {
                          "name": "big_chance_conversion",
                          "contribution": -0.0076
                        }
                      ],
                      "others": -0.0232,
                      "total": 0.1544,
                      "log_link": true,
                      "margin_base": -1.249595,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.154201
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.123285
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.110142
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.048729
                        },
                        {
                          "name": "big_chance_conversion",
                          "margin": -0.041976
                        }
                      ],
                      "others_margin": -0.14017
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.43230706453323364,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1486
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0633
                      },
                      {
                        "name": "shot_accuracy",
                        "importance": 0.0618
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0343
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 0.5888,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.1331
                        },
                        {
                          "name": "shot_accuracy",
                          "contribution": 0.0604
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0595
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0213
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": -0.0183
                        }
                      ],
                      "others": -0.0273,
                      "total": 0.4323,
                      "log_link": true,
                      "margin_base": -0.52966,
                      "item_margins": [
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.256216
                        },
                        {
                          "name": "shot_accuracy",
                          "margin": 0.124412
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.122399
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": 0.045583
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": -0.039076
                        }
                      ],
                      "others_margin": -0.061263
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.2244070645332337,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.1122
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0872
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0825
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.074
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0566
                      }
                    ],
                    "decomposition": {
                      "base": 1.4352,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.1882
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": 0.0773
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0589
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0565
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0534
                        }
                      ],
                      "others": -0.0441,
                      "total": 1.2244,
                      "log_link": false,
                      "margin_base": 1.435195,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.188244
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": 0.077264
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.058925
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.056465
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.053373
                        }
                      ],
                      "others_margin": -0.043993
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.08464600145816803,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.1197
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0571
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0459
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0451
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0369
                      }
                    ],
                    "decomposition": {
                      "base": 0.06,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.028
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": 0.0041
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0039
                        },
                        {
                          "name": "wasFouled",
                          "contribution": -0.0036
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0033
                        }
                      ],
                      "others": 0.0033,
                      "total": 0.0846,
                      "log_link": true,
                      "margin_base": -2.812623,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": 0.383289
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": 0.045414
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.043282
                        },
                        {
                          "name": "wasFouled",
                          "margin": -0.041336
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.039418
                        }
                      ],
                      "others_margin": 0.038679
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.9941867589950562,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "accuratePass",
                        "importance": 0.1105
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0916
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0476
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0444
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0409
                      }
                    ],
                    "decomposition": {
                      "base": 0.6782,
                      "items": [
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.1384
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.0839
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0606
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0532
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.033
                        }
                      ],
                      "others": 0.0129,
                      "total": 0.9942,
                      "log_link": true,
                      "margin_base": -0.388283,
                      "item_margins": [
                        {
                          "name": "ballCarriesCount",
                          "margin": 0.185646
                        },
                        {
                          "name": "keyPass",
                          "margin": 0.097802
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.065158
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.053857
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.033037
                        }
                      ],
                      "others_margin": 0.013028
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.804492473602295,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0847
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0724
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0628
                      },
                      {
                        "name": "dispossessed",
                        "importance": 0.0551
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0438
                      }
                    ],
                    "decomposition": {
                      "base": 6.815,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0426
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0364
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0228
                        },
                        {
                          "name": "duelWon",
                          "contribution": 0.0145
                        },
                        {
                          "name": "totalProgression",
                          "contribution": 0.0117
                        }
                      ],
                      "others": -0.0201,
                      "total": 6.8045,
                      "log_link": false,
                      "margin_base": 6.814961,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": 0.042623
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.036361
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.022804
                        },
                        {
                          "name": "duelWon",
                          "margin": 0.014527
                        },
                        {
                          "name": "totalProgression",
                          "margin": 0.011689
                        }
                      ],
                      "others_margin": -0.020144
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.1179, quality 0.893)",
              "stats": {
                "expected_goals": 0.161,
                "goal_rate": 0.1726,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0946,
                "key_pass": 1,
                "rating": 6.8045,
                "minutes": 41,
                "total_pass": 17,
                "accurate_pass": 14,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 10,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 31,
                "possession_lost": 7.6687,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 4,
                "won_contest": 3,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.1565,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 14,
                "total_progression": 88,
                "progressive_carries": 3,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 99000000,
                "quality_factor": 0.893,
                "boost_factor": 1.1179
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0126)",
              "stats": {
                "expected_goals": 0.161,
                "goal_rate": 0.1704,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0946,
                "key_pass": 1,
                "rating": 6.8045,
                "minutes": 41,
                "total_pass": 17,
                "accurate_pass": 14,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 10,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 31,
                "possession_lost": 7.6687,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 4,
                "won_contest": 3,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.1545,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 14,
                "total_progression": 88,
                "progressive_carries": 3,
                "shots_off_target": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 22.2,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 3.0
              },
              "params": {
                "blend_weight": 0.0126,
                "history_matches": 7,
                "prior_reliability": 0.0467,
                "competition": "La Liga",
                "squad": "Real Madrid"
              },
              "changes": [
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.0723
                },
                {
                  "stat": "totalShots",
                  "before": 1.3688,
                  "after": 1.3515
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.4833,
                  "after": 0.4772
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.161,
                "goal_rate": 0.1704,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0946,
                "key_pass": 1,
                "rating": 6.8045,
                "minutes": 41,
                "total_pass": 17,
                "accurate_pass": 14,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 10,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 31,
                "possession_lost": 7.6687,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 4,
                "won_contest": 3,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.1545,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 14,
                "total_progression": 88,
                "progressive_carries": 3,
                "shots_off_target": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 22.2,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 3.0
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "expected_goals": 0.1642,
                "goal_rate": 0.1738,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0946,
                "key_pass": 1,
                "rating": 6.8045,
                "minutes": 41,
                "total_pass": 17,
                "accurate_pass": 14,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 10,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 31,
                "possession_lost": 7.6687,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 4,
                "won_contest": 3,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.1545,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 14,
                "total_progression": 88,
                "progressive_carries": 3,
                "shots_off_target": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 22.2,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 3.0,
                "duel_xg_multiplier": 1.0201,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.2,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.464,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "numerical_situation": "1v1",
                "opponent_defenders": "Renato Veiga",
                "opponent_faced": "Renato Veiga",
                "antagonist_source": "attacking_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Renato Veiga",
                  "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                  "duel_win_rate": 0.464,
                  "pressing_faced": "MEDIUM",
                  "numerical_situation": "1v1",
                  "xg_multiplier": 1.0201,
                  "skill_edge": 0.0537,
                  "height_edge": -0.04,
                  "attacker_skill": 0.893,
                  "defender_skill": 0.7736,
                  "xg_override": 0.1642
                }
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 1.3627,
                  "after": 1.3901
                },
                {
                  "stat": "shotOffTarget",
                  "before": 0.8855,
                  "after": 0.9033
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.4772,
                  "after": 0.4868
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.54 (squad xG sum 1.8684, xG scale 1.8936, xA scale 1.8936, team xA 2.35 = 0.66 x lambda)",
              "stats": {
                "expected_goals": 0.3109,
                "goal_rate": 0.1738,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.1791,
                "key_pass": 1,
                "rating": 6.8045,
                "minutes": 41,
                "total_pass": 17,
                "accurate_pass": 14,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 10,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 31,
                "possession_lost": 7.6687,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 4,
                "won_contest": 3,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.1545,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 14,
                "total_progression": 88,
                "progressive_carries": 3,
                "shots_off_target": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 22.2,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 3.0,
                "duel_xg_multiplier": 1.0201,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.2,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.464,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "numerical_situation": "1v1",
                "opponent_defenders": "Renato Veiga",
                "opponent_faced": "Renato Veiga",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0448,
                "creation_factor": 1.25
              },
              "params": {
                "team_lambda": 3.538,
                "squad_xg_sum": 1.8684,
                "squad_xa_sum": 1.2396,
                "team_expected_assists": 2.3473,
                "team_xa_to_xg_ratio": 0.6635,
                "bench_appearance_weighted": true,
                "xg_scale": 1.8936,
                "xa_scale": 1.8936,
                "opponent_lambda": 1.348,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.1642,
                  "after": 0.3109
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0946,
                  "after": 0.1791
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 14 by projected rating, fifa_overall 84.0; not used by the projection)",
              "stats": {
                "expected_goals": 0.3109,
                "goal_rate": 0.1738,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.1791,
                "key_pass": 1,
                "rating": 6.8045,
                "minutes": 41,
                "total_pass": 17,
                "accurate_pass": 14,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 10,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 31,
                "possession_lost": 7.6687,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 4,
                "won_contest": 3,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.1545,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 14,
                "total_progression": 88,
                "progressive_carries": 3,
                "shots_off_target": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 22.2,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 3.0,
                "duel_xg_multiplier": 1.0201,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.2,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.464,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "numerical_situation": "1v1",
                "opponent_defenders": "Renato Veiga",
                "opponent_faced": "Renato Veiga",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0448,
                "creation_factor": 1.25,
                "fifa_overall": 84.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": 1021,
                "fifa_rank": 210.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 84.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "expected_goals": 0.3109,
                "goal_rate": 0.1738,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.1791,
                "key_pass": 1,
                "rating": 6.8045,
                "minutes": 41,
                "total_pass": 17,
                "accurate_pass": 14,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 10,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 31,
                "possession_lost": 7.6687,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 4,
                "won_contest": 3,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.1545,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 14,
                "total_progression": 88,
                "progressive_carries": 3,
                "shots_off_target": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 22.2,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 3.0,
                "duel_xg_multiplier": 1.0201,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.2,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.464,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "numerical_situation": "1v1",
                "opponent_defenders": "Renato Veiga",
                "opponent_faced": "Renato Veiga",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.2672,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0448,
                "creation_factor": 1.25,
                "fifa_overall": 84.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 0,
                "goal_probability": 0.2672,
                "scorer_weight": 0.3248,
                "squad_weight_total": 3.5857,
                "weight_share": 0.0906,
                "finishing_factor": 1.0448,
                "appearance_weight": 1.0,
                "weight_rank": 5,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Kylian Mbappé",
                    "weight": 1.2537,
                    "already": 0,
                    "effective_weight": 1.2537,
                    "runner_up": "Jude Bellingham",
                    "runner_up_effective_weight": 0.5657
                  },
                  {
                    "n": 2,
                    "player": "Jude Bellingham",
                    "weight": 0.5657,
                    "already": 0,
                    "effective_weight": 0.5657,
                    "runner_up": "Vinícius Júnior",
                    "runner_up_effective_weight": 0.5343
                  },
                  {
                    "n": 3,
                    "player": "Vinícius Júnior",
                    "weight": 0.5343,
                    "already": 0,
                    "effective_weight": 0.5343,
                    "runner_up": "Kylian Mbappé",
                    "runner_up_effective_weight": 0.5335
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "expected_goals": 0.3109,
                "goal_rate": 0.1738,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.1791,
                "key_pass": 1,
                "rating": 6.8045,
                "minutes": 41,
                "total_pass": 17,
                "accurate_pass": 14,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 10,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 31,
                "possession_lost": 7.6687,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 4,
                "won_contest": 3,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.1545,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 14,
                "total_progression": 88,
                "progressive_carries": 3,
                "shots_off_target": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 22.2,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 3.0,
                "duel_xg_multiplier": 1.0201,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.2,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.464,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "numerical_situation": "1v1",
                "opponent_defenders": "Renato Veiga",
                "opponent_faced": "Renato Veiga",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.2672,
                "projected_assists": 0,
                "assist_probability": 0.164,
                "finishing_factor": 1.0448,
                "creation_factor": 1.25,
                "fifa_overall": 84.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 2,
                "assists_allocated": 0,
                "assist_probability": 0.164,
                "provider_weight": 0.2239,
                "squad_weight_total": 2.5484,
                "weight_share": 0.0878,
                "creation_factor": 1.25,
                "appearance_weight": 1.0,
                "weight_rank": 6,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Trent Alexander-Arnold",
                    "weight": 0.524,
                    "already": 0,
                    "effective_weight": 0.524,
                    "runner_up": "Kylian Mbappé",
                    "runner_up_effective_weight": 0.4996
                  },
                  {
                    "n": 2,
                    "player": "Kylian Mbappé",
                    "weight": 0.4996,
                    "already": 0,
                    "effective_weight": 0.4996,
                    "runner_up": "Arda Güler",
                    "runner_up_effective_weight": 0.3574
                  }
                ]
              }
            }
          ]
        }
      },
      "bench_players": {
        "Andriy Lunin": {
          "player_id": 857574,
          "position": "G",
          "position_depth": "G_BENCH",
          "is_starter": false,
          "shirt_number": 13,
          "height": 191,
          "market_value": 11300000,
          "stats": {
            "saves": 0,
            "goals_prevented": 0.0282,
            "rating": 6.9,
            "minutes": 5,
            "total_pass": 1,
            "accurate_pass": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "touches": 2,
            "clearances": 0,
            "ball_recovery": 0,
            "high_claims": 0,
            "punches": 0.0213,
            "aerial_won": 0,
            "sweeper_actions": 0,
            "sweeper_accurate": 0,
            "saves_inside_box": 0,
            "possession_lost": 0.1383,
            "duels_won": 0,
            "duels_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "total_own_half_passes": 1,
            "accurate_own_half_passes": 1,
            "bench_appearance_probability": 0.127,
            "bench_expected_minutes": 4.79,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.618,
            "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": 80.0
          },
          "latest_10_games": [],
          "ranking": {
            "global_player_rank": 1161,
            "combined_rank_score": 513.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 267.0,
            "sofascore_rating": 7.0833,
            "sofascore_appearances": 6.0,
            "fifa_rank": 760.0,
            "fifa_overall": 80.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 9,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.9,
            "source_file": "data/player_rankings.csv",
            "player_name": "Andriy Lunin",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Emil Krafth",
                  "ranking": 1156
                },
                {
                  "player_name": "Sidny Lopes Cabral",
                  "ranking": 1157
                },
                {
                  "player_name": "Andreas Christensen",
                  "ranking": 1158
                },
                {
                  "player_name": "Nathan Collins",
                  "ranking": 1159
                },
                {
                  "player_name": "Chris Richards",
                  "ranking": 1160
                }
              ],
              "lower": [
                {
                  "player_name": "Lee Joon-Ho",
                  "ranking": 1162
                },
                {
                  "player_name": "Seung-beom Ko",
                  "ranking": 1163
                },
                {
                  "player_name": "Seung-hyeon Cha",
                  "ranking": 1164
                },
                {
                  "player_name": "Mats Wieffer",
                  "ranking": 1165
                },
                {
                  "player_name": "Noah Sadiki",
                  "ranking": 1166
                }
              ]
            }
          },
          "data_sources": [
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.25,
          "history_matches": 0,
          "xgboost_reasoning": {
            "model_source": "market_value_prior",
            "position_service": "G_service",
            "features_evaluated": [],
            "targets_predicted": [],
            "history_matches": 0,
            "data_confidence": 0.25,
            "data_sources": [
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 4.788930264382824,
            "bench_appearance_prob": 0.12676955747194651,
            "market_value_adjustment": 0.5376,
            "fbref_prior_metrics": {
              "squad": "Real Madrid",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 0.0,
              "starts": 0.0,
              "sub_appearances": 0.0,
              "prior_reliability": 0.0
            },
            "rationale": "Bench projection from market-value prior (€11,300,000) scaled to 4.8 expected mins; FBref playing time empirical prior: 0.0 sub appearances, 0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "market_value_prior",
              "description": "Market-value baseline for position G (quality 0.54)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.53,
                "rating": 6.9,
                "minutes": 90,
                "total_pass": 28,
                "accurate_pass": 21,
                "total_long_balls": 9,
                "accurate_long_balls": 5,
                "touches": 33,
                "clearances": 1,
                "ball_recovery": 1,
                "high_claims": 1,
                "punches": 0.4,
                "aerial_won": 1,
                "sweeper_actions": 1,
                "sweeper_accurate": 1,
                "saves_inside_box": 1,
                "possession_lost": 2.6,
                "duels_won": 0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 22,
                "accurate_own_half_passes": 17
              },
              "params": {
                "market_value_eur": 11300000,
                "quality_factor": 0.5376
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0000)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.53,
                "rating": 6.9,
                "minutes": 90,
                "total_pass": 28,
                "accurate_pass": 21,
                "total_long_balls": 9,
                "accurate_long_balls": 5,
                "touches": 33,
                "clearances": 1,
                "ball_recovery": 1,
                "high_claims": 1,
                "punches": 0.4,
                "aerial_won": 1,
                "sweeper_actions": 1,
                "sweeper_accurate": 1,
                "saves_inside_box": 1,
                "possession_lost": 2.6,
                "duels_won": 0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 22,
                "accurate_own_half_passes": 17
              },
              "params": {
                "blend_weight": 0.0,
                "history_matches": 0,
                "prior_reliability": 0.0,
                "competition": "La Liga",
                "squad": "Real Madrid"
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 4.8 expected minutes (appearance prob 0.13)",
              "stats": {
                "saves": 0,
                "goals_prevented": 0.0282,
                "rating": 6.9,
                "minutes": 5,
                "total_pass": 1,
                "accurate_pass": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "touches": 2,
                "clearances": 0,
                "ball_recovery": 0,
                "high_claims": 0,
                "punches": 0.0213,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 0.1383,
                "duels_won": 0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 1,
                "accurate_own_half_passes": 1,
                "bench_appearance_probability": 0.127,
                "bench_expected_minutes": 4.79
              },
              "params": {
                "expected_minutes": 4.79,
                "appearance_probability": 0.127
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "saves": 0,
                "goals_prevented": 0.0282,
                "rating": 6.9,
                "minutes": 5,
                "total_pass": 1,
                "accurate_pass": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "touches": 2,
                "clearances": 0,
                "ball_recovery": 0,
                "high_claims": 0,
                "punches": 0.0213,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 0.1383,
                "duels_won": 0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 1,
                "accurate_own_half_passes": 1,
                "bench_appearance_probability": 0.127,
                "bench_expected_minutes": 4.79
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 9 by projected rating, fifa_overall 80.0; not used by the projection)",
              "stats": {
                "saves": 0,
                "goals_prevented": 0.0282,
                "rating": 6.9,
                "minutes": 5,
                "total_pass": 1,
                "accurate_pass": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "touches": 2,
                "clearances": 0,
                "ball_recovery": 0,
                "high_claims": 0,
                "punches": 0.0213,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 0.1383,
                "duels_won": 0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 1,
                "accurate_own_half_passes": 1,
                "bench_appearance_probability": 0.127,
                "bench_expected_minutes": 4.79,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.618,
                "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": 80.0
              },
              "params": {
                "match_squad_rank": 9,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 1161,
                "fifa_rank": 760.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 80.0
              }
            }
          ]
        },
        "Álvaro Carreras": {
          "player_id": 1085081,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 18,
          "height": 186,
          "market_value": 53000000,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 0,
            "aerial_won": 0,
            "total_shots": 0,
            "rating": 6.8385,
            "minutes": 15,
            "total_pass": 6,
            "accurate_pass": 6,
            "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": 3,
            "accurate_opp_half_passes": 3,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 9,
            "possession_lost": 0.0,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assist_rate": 0.0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0111,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 2,
            "total_progression": 5,
            "progressive_carries": 0,
            "key_pass": 0,
            "shots_off_target": 0,
            "offsides": 0,
            "yellowCards": 0.8333,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "minutesPct": 40.0,
            "pointsPerMatch": 3.0,
            "netGoalDifferencePer90": 0.0,
            "bench_appearance_probability": 0.249,
            "bench_expected_minutes": 15.14,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.618,
            "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": 81.0
          },
          "latest_10_games": [
            {
              "match_id": 16416331.0,
              "match_date": "2026-09-12",
              "home_team": "Real Madrid",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 90,
                "rating": 8.7,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1908,
                "expected_assists": 0.1822,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 63,
                "accurate_pass": 55,
                "key_pass": 3,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 3,
                "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": 16416315.0,
              "match_date": "2026-09-04",
              "home_team": "Real Betis",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Madrid",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 11,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0014,
                "total_shots": 0,
                "total_pass": 6,
                "accurate_pass": 6,
                "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": "home",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 45,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.026,
                "total_shots": 0,
                "total_pass": 35,
                "accurate_pass": 32,
                "interceptions": 1,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416306.0,
              "match_date": "2026-08-22",
              "home_team": "Espanyol",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 64,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0109,
                "total_shots": 0,
                "total_pass": 34,
                "accurate_pass": 32,
                "key_pass": 2,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 1,
                "duels_won": 4,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 1026,
            "combined_rank_score": 456.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 331.0,
            "sofascore_rating": 7.0111,
            "sofascore_appearances": 28.0,
            "fifa_rank": 582.0,
            "fifa_overall": 81.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 12,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.8385,
            "source_file": "data/player_rankings.csv",
            "player_name": "Álvaro Carreras",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Yan Diomande",
                  "ranking": 1021
                },
                {
                  "player_name": "Robin Roefs",
                  "ranking": 1022
                },
                {
                  "player_name": "Andrea Cambiaso",
                  "ranking": 1023
                },
                {
                  "player_name": "Clarismario",
                  "ranking": 1024
                },
                {
                  "player_name": "Milan Obradović",
                  "ranking": 1025
                }
              ],
              "lower": [
                {
                  "player_name": "Mamadou Sangare",
                  "ranking": 1027
                },
                {
                  "player_name": "Azizbek  Pirmukhamedov",
                  "ranking": 1028
                },
                {
                  "player_name": "Jonas Urbig",
                  "ranking": 1029
                },
                {
                  "player_name": "James Donachie",
                  "ranking": 1030
                },
                {
                  "player_name": "Felipe Campos",
                  "ranking": 1031
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.512,
          "history_matches": 4,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "D_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "totalOppositionHalfPasses",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "ballRecovery",
              "touches",
              "totalClearance",
              "wonTackle",
              "interceptionWon",
              "dispossessed",
              "challengeLost",
              "errorLeadToAShot",
              "errorLeadToAGoal",
              "possessionLostCtrl",
              "passValueNormalized",
              "defensiveValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "totalShots",
              "rating"
            ],
            "history_matches": 4,
            "data_confidence": 0.512,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 15.142683522414773,
            "bench_appearance_prob": 0.249,
            "market_value_adjustment": 1.1002,
            "fbref_prior_metrics": {
              "squad": "Real Madrid",
              "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.08
            },
            "rationale": "Bench projection scaled from XGBoost D_service (4 historical appearances) to 15.1 expected mins (appearance prob 0.25); FBref playing time empirical prior: 0.0 sub appearances, 0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 7 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.8385,
                "minutes": 52,
                "total_pass": 34,
                "accurate_pass": 31,
                "duels_won": 3,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 16,
                "accurate_own_half_passes": 15,
                "total_opp_half_passes": 18,
                "accurate_opp_half_passes": 16,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 47,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.06,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 29,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:01:55.523250+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 402,
                    "rows": 11400
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Rayo Vallecano",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3138,
                    "rating": 8.7
                  },
                  {
                    "match_date": "2026-09-04",
                    "opponent": "Real Betis",
                    "minutes": 11.0,
                    "is_starting": false,
                    "weight": 0.2667,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-08-26",
                    "opponent": "Real Sociedad",
                    "minutes": 45.0,
                    "is_starting": true,
                    "weight": 0.2267,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Espanyol",
                    "minutes": 64.0,
                    "is_starting": true,
                    "weight": 0.1927,
                    "rating": 6.8
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 0.0,
                  "totalClearance": 1.1342,
                  "defensive_actions": 1.2398,
                  "wonTackle": 1.0131,
                  "totalTackle_p90": 1.1696,
                  "totalClearance_p90": 1.2124,
                  "aerialWon": 0.2267
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.6620105504989624,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "interceptionWon",
                        "importance": 0.0903
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0858
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.052
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0447
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0364
                      }
                    ],
                    "decomposition": {
                      "base": 0.9034,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1119
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0859
                        },
                        {
                          "name": "interceptionWon_p90",
                          "contribution": -0.0462
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0226
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0214
                        }
                      ],
                      "others": -0.0414,
                      "total": 0.662,
                      "log_link": true,
                      "margin_base": -0.101631,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.13225
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.114817
                        },
                        {
                          "name": "interceptionWon_p90",
                          "margin": -0.067762
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.033677
                        },
                        {
                          "name": "duelLost",
                          "margin": 0.030871
                        }
                      ],
                      "others_margin": -0.060562
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.1672190427780151,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "defensive_actions",
                        "importance": 0.1044
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0863
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0629
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.045
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0342
                      }
                    ],
                    "decomposition": {
                      "base": 1.3313,
                      "items": [
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0835
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": -0.0591
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0315
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0151
                        },
                        {
                          "name": "wonTackle",
                          "contribution": -0.0147
                        }
                      ],
                      "others": 0.0096,
                      "total": 1.1672,
                      "log_link": true,
                      "margin_base": 0.286166,
                      "item_margins": [
                        {
                          "name": "defensive_actions",
                          "margin": -0.064771
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": -0.048501
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.026865
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.013004
                        },
                        {
                          "name": "wonTackle",
                          "margin": -0.012622
                        }
                      ],
                      "others_margin": 0.008212
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.7414126396179199,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "wonTackle",
                        "importance": 0.1003
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0586
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0501
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0492
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0386
                      }
                    ],
                    "decomposition": {
                      "base": 0.8256,
                      "items": [
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0305
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0284
                        },
                        {
                          "name": "wonTackle",
                          "contribution": -0.0166
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.0138
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0104
                        }
                      ],
                      "others": -0.0053,
                      "total": 0.7414,
                      "log_link": true,
                      "margin_base": -0.191612,
                      "item_margins": [
                        {
                          "name": "defensive_actions",
                          "margin": -0.037647
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.036379
                        },
                        {
                          "name": "wonTackle",
                          "margin": -0.021949
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": -0.018584
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": 0.014065
                        }
                      ],
                      "others_margin": -0.007093
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 1.7904613018035889,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalClearance",
                        "importance": 0.138
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0733
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.034
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 3.3876,
                      "items": [
                        {
                          "name": "totalClearance",
                          "contribution": -0.6462
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.486
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.2419
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.1383
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.052
                        }
                      ],
                      "others": -0.0327,
                      "total": 1.7905,
                      "log_link": true,
                      "margin_base": 1.220122,
                      "item_margins": [
                        {
                          "name": "totalClearance",
                          "margin": -0.211658
                        },
                        {
                          "name": "is_starting_11",
                          "margin": -0.195156
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.113462
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.071176
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.028138
                        }
                      ],
                      "others_margin": -0.018058
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.4605497717857361,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "aerialWon",
                        "importance": 0.1155
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0659
                      },
                      {
                        "name": "aerial_dominance",
                        "importance": 0.0345
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0335
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0332
                      }
                    ],
                    "decomposition": {
                      "base": 1.2696,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": -0.5362
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1743
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0438
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0239
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0227
                        }
                      ],
                      "others": -0.0082,
                      "total": 0.4605,
                      "log_link": true,
                      "margin_base": 0.238719,
                      "item_margins": [
                        {
                          "name": "aerialWon",
                          "margin": -0.548754
                        },
                        {
                          "name": "is_starting_11",
                          "margin": -0.271386
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.081561
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.047532
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.047398
                        }
                      ],
                      "others_margin": -0.017422
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.3241077959537506,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0373
                      },
                      {
                        "name": "long_ball_accuracy",
                        "importance": 0.0337
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0333
                      },
                      {
                        "name": "errorLeadToAGoal",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0306
                      }
                    ],
                    "decomposition": {
                      "base": 0.476,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.055
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.042
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": -0.0227
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0215
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": -0.0148
                        }
                      ],
                      "others": -0.0389,
                      "total": 0.3241,
                      "log_link": false,
                      "margin_base": 0.476045,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.055034
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.042004
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": -0.022715
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.021523
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": -0.014795
                        }
                      ],
                      "others_margin": -0.038912
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.838479995727539,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0639
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0627
                      },
                      {
                        "name": "defensiveValueNormalized",
                        "importance": 0.0466
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0352
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 6.7578,
                      "items": [
                        {
                          "name": "duel_win_rate",
                          "contribution": 0.0563
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0335
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0194
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0175
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": 0.0128
                        }
                      ],
                      "others": -0.02,
                      "total": 6.8385,
                      "log_link": false,
                      "margin_base": 6.757789,
                      "item_margins": [
                        {
                          "name": "duel_win_rate",
                          "margin": 0.056251
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.033515
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.019362
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": 0.017499
                        },
                        {
                          "name": "duelWon_p90",
                          "margin": 0.012812
                        }
                      ],
                      "others_margin": -0.020024
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.1002, quality 0.834)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.8385,
                "minutes": 52,
                "total_pass": 38,
                "accurate_pass": 34,
                "duels_won": 3,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 17,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 18,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 51,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.066,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 32,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0
              },
              "params": {
                "market_value_eur": 53000000,
                "quality_factor": 0.834,
                "boost_factor": 1.1002
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0289)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.8385,
                "minutes": 52,
                "total_pass": 38,
                "accurate_pass": 34,
                "duels_won": 3,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 17,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 18,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 51,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.066,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 32,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.8333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 40.0,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "blend_weight": 0.0289,
                "history_matches": 4,
                "prior_reliability": 0.08,
                "competition": "La Liga",
                "squad": "Real Madrid"
              },
              "changes": [
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.0481
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.7283,
                  "after": 0.7554
                },
                {
                  "stat": "wonTackle",
                  "before": 0.8157,
                  "after": 0.8403
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0241
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0241
                },
                {
                  "stat": "totalShots",
                  "before": 0.3566,
                  "after": 0.3463
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 15.1 expected minutes (appearance prob 0.25)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.8385,
                "minutes": 15,
                "total_pass": 6,
                "accurate_pass": 6,
                "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": 3,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 9,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0111,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 2,
                "total_progression": 5,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.8333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 40.0,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.249,
                "bench_expected_minutes": 15.14
              },
              "params": {
                "expected_minutes": 15.14,
                "appearance_probability": 0.249
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.8385,
                "minutes": 15,
                "total_pass": 6,
                "accurate_pass": 6,
                "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": 3,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 9,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0111,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 2,
                "total_progression": 5,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.8333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 40.0,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.249,
                "bench_expected_minutes": 15.14
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 12 by projected rating, fifa_overall 81.0; not used by the projection)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.8385,
                "minutes": 15,
                "total_pass": 6,
                "accurate_pass": 6,
                "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": 3,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 9,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0111,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 2,
                "total_progression": 5,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.8333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 40.0,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.249,
                "bench_expected_minutes": 15.14,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.618,
                "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": 81.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": 1026,
                "fifa_rank": 582.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 81.0
              }
            }
          ]
        },
        "Ibrahima Konaté": {
          "player_id": 826215,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 16,
          "height": 195,
          "market_value": 46000000,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 0,
            "aerial_won": 0,
            "total_shots": 0,
            "rating": 6.7434,
            "minutes": 15,
            "total_pass": 11,
            "accurate_pass": 10,
            "duels_won": 1,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "total_own_half_passes": 7,
            "accurate_own_half_passes": 7,
            "total_opp_half_passes": 4,
            "accurate_opp_half_passes": 3,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 13,
            "possession_lost": 0.8821,
            "dispossessed": 0.0,
            "duels_lost": 1,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 1,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assist_rate": 0.0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0018,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 3,
            "total_progression": 14,
            "progressive_carries": 0,
            "key_pass": 0,
            "shots_off_target": 0,
            "offsides": 0,
            "yellowCards": 0.5,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 100.0,
            "shotConversion": 0.0,
            "minutesPct": 66.7,
            "pointsPerMatch": 3.0,
            "netGoalDifferencePer90": 2.0,
            "bench_appearance_probability": 0.247,
            "bench_expected_minutes": 15.04,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.618,
            "projected_substitution_game_state_adjustment": -1,
            "substitution_usage": "available_bench_not_projected_used",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 84.0
          },
          "latest_10_games": [
            {
              "match_id": 16416339.0,
              "match_date": "2026-09-20",
              "home_team": "Atlético Madrid",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 90,
                "rating": 7.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0033,
                "total_shots": 0,
                "total_pass": 47,
                "accurate_pass": 41,
                "interceptions": 2,
                "clearances": 3,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416342.0,
              "match_date": "2026-09-15",
              "home_team": "Elche",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Elche",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0438,
                "expected_assists": 0.0246,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 56,
                "accurate_pass": 52,
                "clearances": 2,
                "aerial_won": 4,
                "duels_won": 6,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416331.0,
              "match_date": "2026-09-12",
              "home_team": "Real Madrid",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.302,
                "expected_assists": 0.0043,
                "total_shots": 2,
                "shots_off_target": 2,
                "total_pass": 41,
                "accurate_pass": 39,
                "key_pass": 1,
                "tackles": 1,
                "clearances": 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": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416315.0,
              "match_date": "2026-09-04",
              "home_team": "Real Betis",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 90,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0076,
                "total_shots": 0,
                "total_pass": 77,
                "accurate_pass": 72,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 9
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421051.0,
              "match_date": "2026-08-26",
              "home_team": "Real Madrid",
              "away_team": "Real Sociedad",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 90,
                "rating": 7.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0091,
                "total_shots": 0,
                "total_pass": 54,
                "accurate_pass": 52,
                "key_pass": 1,
                "clearances": 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": 16416306.0,
              "match_date": "2026-08-22",
              "home_team": "Espanyol",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 90,
                "rating": 7.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0208,
                "expected_assists": 0.0089,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 75,
                "accurate_pass": 73,
                "tackles": 3,
                "tackles_won": 2,
                "interceptions": 1,
                "clearances": 5,
                "aerial_won": 4,
                "duels_won": 8,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 268,
            "combined_rank_score": 198.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 172.0,
            "sofascore_rating": 7.25,
            "sofascore_appearances": 2.0,
            "fifa_rank": 225.0,
            "fifa_overall": 84.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 15,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.7434,
            "source_file": "data/player_rankings.csv",
            "player_name": "Ibrahima Konaté",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Aleksandar Pavlović",
                  "ranking": 263
                },
                {
                  "player_name": "Marcos Llorente",
                  "ranking": 264
                },
                {
                  "player_name": "Alexander Sørloth",
                  "ranking": 265
                },
                {
                  "player_name": "Edgar Silva",
                  "ranking": 266
                },
                {
                  "player_name": "Antonio Rüdiger",
                  "ranking": 267
                }
              ],
              "lower": [
                {
                  "player_name": "Jorge Henríquez",
                  "ranking": 269
                },
                {
                  "player_name": "Seong-min Hwang",
                  "ranking": 270
                },
                {
                  "player_name": "Anzur Ismoilov",
                  "ranking": 271
                },
                {
                  "player_name": "Juan Cruz Gonzalez",
                  "ranking": 272
                },
                {
                  "player_name": "Matheus Bidu",
                  "ranking": 273
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.645,
          "history_matches": 6,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "D_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "totalOppositionHalfPasses",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "ballRecovery",
              "touches",
              "totalClearance",
              "wonTackle",
              "interceptionWon",
              "dispossessed",
              "challengeLost",
              "errorLeadToAShot",
              "errorLeadToAGoal",
              "possessionLostCtrl",
              "passValueNormalized",
              "defensiveValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "totalShots",
              "rating"
            ],
            "history_matches": 6,
            "data_confidence": 0.645,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 15.04315307438117,
            "bench_appearance_prob": 0.247,
            "market_value_adjustment": 1.0927,
            "fbref_prior_metrics": {
              "squad": "Real Madrid",
              "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.1333
            },
            "rationale": "Bench projection scaled from XGBoost D_service (6 historical appearances) to 15.0 expected mins (appearance prob 0.25); FBref playing time empirical prior: 0.0 sub appearances, 0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 7 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.7434,
                "minutes": 90,
                "total_pass": 58,
                "accurate_pass": 55,
                "duels_won": 4,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 38,
                "accurate_own_half_passes": 37,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 18,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 69,
                "possession_lost": 4.83,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.01,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 19,
                "total_progression": 78,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:01:55.523250+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 402,
                    "rows": 11400
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Atlético Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2408,
                    "rating": 7.5
                  },
                  {
                    "match_date": "2026-09-15",
                    "opponent": "Elche",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2047,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Rayo Vallecano",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.174,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-09-04",
                    "opponent": "Real Betis",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1479,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-26",
                    "opponent": "Real Sociedad",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1257,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Espanyol",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1069,
                    "rating": 7.2
                  }
                ],
                "feature_row": {
                  "history_matches": 6.0,
                  "is_starting_11": 0.0,
                  "totalClearance": 2.9568,
                  "defensive_actions": 1.231,
                  "wonTackle": 0.3616,
                  "totalTackle_p90": 0.6425,
                  "totalClearance_p90": 2.9568,
                  "aerialWon": 1.809
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.7399972677230835,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "interceptionWon",
                        "importance": 0.0903
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0858
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.052
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0447
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0364
                      }
                    ],
                    "decomposition": {
                      "base": 0.9034,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1223
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.083
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0346
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0265
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0132
                        }
                      ],
                      "others": -0.006,
                      "total": 0.74,
                      "log_link": true,
                      "margin_base": -0.101631,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.145426
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.112306
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.048394
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.035484
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.017508
                        }
                      ],
                      "others_margin": -0.008116
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.1657066345214844,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "defensive_actions",
                        "importance": 0.1044
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0863
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0629
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.045
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0342
                      }
                    ],
                    "decomposition": {
                      "base": 1.3313,
                      "items": [
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0803
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": -0.072
                        },
                        {
                          "name": "wonTackle",
                          "contribution": -0.0477
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0282
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0274
                        }
                      ],
                      "others": 0.0336,
                      "total": 1.1657,
                      "log_link": true,
                      "margin_base": 0.286166,
                      "item_margins": [
                        {
                          "name": "defensive_actions",
                          "margin": -0.062243
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": -0.059308
                        },
                        {
                          "name": "wonTackle",
                          "margin": -0.04129
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": 0.024607
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.023948
                        }
                      ],
                      "others_margin": 0.029344
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.6777763366699219,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "wonTackle",
                        "importance": 0.1003
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0586
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0501
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0492
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0386
                      }
                    ],
                    "decomposition": {
                      "base": 0.8256,
                      "items": [
                        {
                          "name": "wonTackle",
                          "contribution": -0.1594
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0294
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0252
                        },
                        {
                          "name": "tackle_success_rate",
                          "contribution": 0.0235
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0229
                        }
                      ],
                      "others": -0.0306,
                      "total": 0.6778,
                      "log_link": true,
                      "margin_base": -0.191612,
                      "item_margins": [
                        {
                          "name": "wonTackle",
                          "margin": -0.214566
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.045082
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.038834
                        },
                        {
                          "name": "tackle_success_rate",
                          "margin": 0.0349
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": 0.032801
                        }
                      ],
                      "others_margin": -0.044213
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 2.6236188411712646,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalClearance",
                        "importance": 0.138
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0733
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.034
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 3.3876,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.9038
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.274
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.1929
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0583
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0471
                        }
                      ],
                      "others": 0.0699,
                      "total": 2.6236,
                      "log_link": true,
                      "margin_base": 1.220122,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.310339
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.104626
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.072533
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.022977
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.018603
                        }
                      ],
                      "others_margin": 0.027052
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.9107277989387512,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "aerialWon",
                        "importance": 0.1155
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0659
                      },
                      {
                        "name": "aerial_dominance",
                        "importance": 0.0345
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0335
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0332
                      }
                    ],
                    "decomposition": {
                      "base": 1.2696,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.468
                        },
                        {
                          "name": "aerialWon",
                          "contribution": 0.164
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0751
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0386
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0323
                        }
                      ],
                      "others": 0.0139,
                      "total": 0.9107,
                      "log_link": true,
                      "margin_base": 0.238719,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.459862
                        },
                        {
                          "name": "aerialWon",
                          "margin": 0.186159
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.081015
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": 0.042458
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.035334
                        }
                      ],
                      "others_margin": 0.015364
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.4792,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0373
                      },
                      {
                        "name": "long_ball_accuracy",
                        "importance": 0.0337
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0333
                      },
                      {
                        "name": "errorLeadToAGoal",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0306
                      }
                    ],
                    "decomposition": {
                      "base": 0.476,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0512
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.032
                        },
                        {
                          "name": "tackle_success_rate",
                          "contribution": 0.0303
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0186
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": 0.0174
                        }
                      ],
                      "others": -0.0439,
                      "total": 0.4792,
                      "log_link": false,
                      "margin_base": 0.476045,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.051187
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.032037
                        },
                        {
                          "name": "tackle_success_rate",
                          "margin": 0.030299
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": 0.018608
                        },
                        {
                          "name": "progressive_carries_p90",
                          "margin": 0.017353
                        }
                      ],
                      "others_margin": -0.043994
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.743372917175293,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0639
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0627
                      },
                      {
                        "name": "defensiveValueNormalized",
                        "importance": 0.0466
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0352
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 6.7578,
                      "items": [
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0522
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": -0.0227
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0171
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": -0.0154
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": 0.0129
                        }
                      ],
                      "others": -0.0243,
                      "total": 6.7434,
                      "log_link": false,
                      "margin_base": 6.757789,
                      "item_margins": [
                        {
                          "name": "defensiveValueNormalized",
                          "margin": 0.052157
                        },
                        {
                          "name": "duel_win_rate",
                          "margin": -0.02273
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.017111
                        },
                        {
                          "name": "duelWon_p90",
                          "margin": -0.015423
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": 0.012908
                        }
                      ],
                      "others_margin": -0.024217
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0927, quality 0.809)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.7434,
                "minutes": 90,
                "total_pass": 64,
                "accurate_pass": 60,
                "duels_won": 4,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 42,
                "accurate_own_half_passes": 41,
                "total_opp_half_passes": 22,
                "accurate_opp_half_passes": 19,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 75,
                "possession_lost": 5.2776,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 5,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0109,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 21,
                "total_progression": 86,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 46000000,
                "quality_factor": 0.8089,
                "boost_factor": 1.0927
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0394)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.7434,
                "minutes": 90,
                "total_pass": 64,
                "accurate_pass": 60,
                "duels_won": 4,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 42,
                "accurate_own_half_passes": 41,
                "total_opp_half_passes": 22,
                "accurate_opp_half_passes": 19,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 75,
                "possession_lost": 5.2776,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 5,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0109,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 21,
                "total_progression": 86,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.5,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 66.7,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.0
              },
              "params": {
                "blend_weight": 0.0394,
                "history_matches": 6,
                "prior_reliability": 0.1333,
                "competition": "La Liga",
                "squad": "Real Madrid"
              },
              "changes": [
                {
                  "stat": "wonTackle",
                  "before": 0.7406,
                  "after": 0.7902
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0197
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0197
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.0,
                  "after": 0.0197
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.8086,
                  "after": 0.7964
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 15.0 expected minutes (appearance prob 0.25)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.7434,
                "minutes": 15,
                "total_pass": 11,
                "accurate_pass": 10,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 0.8821,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0018,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 3,
                "total_progression": 14,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.5,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 66.7,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.0,
                "bench_appearance_probability": 0.247,
                "bench_expected_minutes": 15.04
              },
              "params": {
                "expected_minutes": 15.04,
                "appearance_probability": 0.247
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.7434,
                "minutes": 15,
                "total_pass": 11,
                "accurate_pass": 10,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 0.8821,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0018,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 3,
                "total_progression": 14,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.5,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 66.7,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.0,
                "bench_appearance_probability": 0.247,
                "bench_expected_minutes": 15.04
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 15 by projected rating, fifa_overall 84.0; not used by the projection)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.7434,
                "minutes": 15,
                "total_pass": 11,
                "accurate_pass": 10,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 0.8821,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0018,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 3,
                "total_progression": 14,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.5,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 66.7,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 2.0,
                "bench_appearance_probability": 0.247,
                "bench_expected_minutes": 15.04,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.618,
                "projected_substitution_game_state_adjustment": -1,
                "substitution_usage": "available_bench_not_projected_used",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 84.0
              },
              "params": {
                "match_squad_rank": 15,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 268,
                "fifa_rank": 225.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 84.0
              }
            }
          ]
        },
        "Eduardo Camavinga": {
          "player_id": 973887,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 6,
          "height": 182,
          "market_value": 48000000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0085,
            "assist_rate": 0.0111,
            "assists": 0,
            "expected_goals": 0.0206,
            "goal_rate": 0.0117,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 0,
            "rating": 6.8354,
            "minutes": 17,
            "total_pass": 6,
            "accurate_pass": 6,
            "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": 3,
            "accurate_opp_half_passes": 3,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 8,
            "possession_lost": 0.0,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_won": 0,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 2,
            "total_progression": 9,
            "progressive_carries": 0,
            "shots_off_target": 0,
            "offsides": 0,
            "yellowCards": 0.7692,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "minutesPct": 42.2,
            "pointsPerMatch": 3.0,
            "netGoalDifferencePer90": 4.74,
            "bench_appearance_probability": 0.594,
            "bench_expected_minutes": 17.16,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.618,
            "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": 81.0
          },
          "latest_10_games": [
            {
              "match_id": 16416339.0,
              "match_date": "2026-09-20",
              "home_team": "Atlético Madrid",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 19,
                "rating": 7.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0077,
                "total_shots": 0,
                "total_pass": 15,
                "accurate_pass": 15,
                "tackles": 4,
                "tackles_won": 2,
                "interceptions": 1,
                "duels_won": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_type": "played",
              "match_id": "16416342.0",
              "match_date": "2026-09-15 19:30:00 UTC",
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27",
              "home_team": "Elche",
              "away_team": "Real Madrid",
              "home_score_current": 2.0,
              "away_score_current": 3.0,
              "team_side": "away",
              "status_code": "100",
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": "True",
              "team": "Real Madrid",
              "opponent": "Elche",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16416331.0,
              "match_date": "2026-09-12",
              "home_team": "Real Madrid",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 45,
                "rating": 7.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.021,
                "total_shots": 0,
                "total_pass": 28,
                "accurate_pass": 25,
                "tackles": 1,
                "clearances": 2,
                "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": 16416315.0,
              "match_date": "2026-09-04",
              "home_team": "Real Betis",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 64,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0153,
                "total_shots": 0,
                "total_pass": 41,
                "accurate_pass": 40,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416312.0,
              "match_date": "2026-08-30",
              "home_team": "Real Madrid",
              "away_team": "Málaga CF",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.1095,
                "total_shots": 0,
                "total_pass": 71,
                "accurate_pass": 64,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 2,
                "aerial_won": 1,
                "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": 16421051.0,
              "match_date": "2026-08-26",
              "home_team": "Real Madrid",
              "away_team": "Real Sociedad",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Real Madrid",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 12,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0144,
                "total_shots": 0,
                "total_pass": 18,
                "accurate_pass": 17,
                "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": 16416306.0,
              "match_date": "2026-08-22",
              "home_team": "Espanyol",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Real Madrid",
              "opponent": "Espanyol",
              "stats": {
                "minutes": 10,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0032,
                "total_shots": 0,
                "total_pass": 13,
                "accurate_pass": 13,
                "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": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 956,
            "combined_rank_score": 442.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 307.0,
            "sofascore_rating": 7.0364,
            "sofascore_appearances": 11.0,
            "fifa_rank": 578.0,
            "fifa_overall": 81.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 13,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.8354,
            "source_file": "data/player_rankings.csv",
            "player_name": "Eduardo Camavinga",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Pedro Bigas",
                  "ranking": 951
                },
                {
                  "player_name": "Seung-jae Lee",
                  "ranking": 952
                },
                {
                  "player_name": "Hyun-Jun Suk",
                  "ranking": 953
                },
                {
                  "player_name": "Theo Hernández",
                  "ranking": 954
                },
                {
                  "player_name": "Moussa Diaby",
                  "ranking": 955
                }
              ],
              "lower": [
                {
                  "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
                },
                {
                  "player_name": "Gonçalo Guedes",
                  "ranking": 961
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.638,
          "history_matches": 6,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 6,
            "data_confidence": 0.638,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 17.16,
            "bench_appearance_prob": 0.594,
            "market_value_adjustment": 1.095,
            "fbref_prior_metrics": {
              "squad": "Real Madrid",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 1.0,
              "sub_appearances": 2.0,
              "minutes_per_sub": 12.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "prior_reliability": 0.0867
            },
            "rationale": "Bench projection scaled from XGBoost M_service (6 historical appearances) to 17.2 expected mins (appearance prob 0.59); FBref playing time empirical prior: 2.0 sub appearances, 12.0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0406,
                "assist_rate": 0.0546,
                "assists": 0,
                "expected_goals": 0.0984,
                "goal_rate": 0.0576,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.8354,
                "minutes": 40,
                "total_pass": 31,
                "accurate_pass": 29,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 14,
                "total_opp_half_passes": 16,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 39,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 42,
                "progressive_carries": 1,
                "shots_off_target": 0
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 6,
                  "trained_at": "2026-09-29T10:02:07.046807+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 550,
                    "rows": 13779
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Atlético Madrid",
                    "minutes": 19.0,
                    "is_starting": true,
                    "weight": 0.2408,
                    "rating": 7.5
                  },
                  {
                    "match_date": "2026-09-12",
                    "opponent": "Rayo Vallecano",
                    "minutes": 45.0,
                    "is_starting": true,
                    "weight": 0.2047,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-09-04",
                    "opponent": "Real Betis",
                    "minutes": 64.0,
                    "is_starting": true,
                    "weight": 0.174,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Málaga CF",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1479,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-08-26",
                    "opponent": "Real Sociedad",
                    "minutes": 12.0,
                    "is_starting": false,
                    "weight": 0.1257,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Espanyol",
                    "minutes": 10.0,
                    "is_starting": false,
                    "weight": 0.1069,
                    "rating": 6.6
                  }
                ],
                "feature_row": {
                  "history_matches": 6.0,
                  "is_starting_11": 0.0,
                  "totalShots": 0.0,
                  "expectedAssists": 0.0272,
                  "creative_index": 0.0163,
                  "creative_efficiency": 0.0,
                  "shotValueNormalized": 0.0,
                  "dribbleValueNormalized": 0.1106
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.532630443572998,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.12
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0959
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0798
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0429
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0425
                      }
                    ],
                    "decomposition": {
                      "base": 0.9267,
                      "items": [
                        {
                          "name": "creative_index",
                          "contribution": -0.1635
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.1078
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": -0.0435
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0332
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": -0.0248
                        }
                      ],
                      "others": -0.0213,
                      "total": 0.5326,
                      "log_link": true,
                      "margin_base": -0.076148,
                      "item_margins": [
                        {
                          "name": "creative_index",
                          "margin": -0.194068
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.152304
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": -0.068635
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.055813
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": -0.043755
                        }
                      ],
                      "others_margin": -0.039205
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.04056151583790779,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.118
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0768
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0579
                      },
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0397
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0318
                      }
                    ],
                    "decomposition": {
                      "base": 0.0872,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0246
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0065
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0029
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": -0.0023
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0018
                        }
                      ],
                      "others": -0.0085,
                      "total": 0.0406,
                      "log_link": true,
                      "margin_base": -2.439192,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": -0.331101
                        },
                        {
                          "name": "cross_creative_contribution",
                          "margin": -0.109083
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.053434
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": -0.04496
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.037015
                        }
                      ],
                      "others_margin": -0.19015
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.05457668378949165,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0669
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0574
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0465
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0404
                      },
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0277
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "creative_efficiency",
                          "contribution": -0.0129
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.0036
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0031
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0023
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.002
                        }
                      ],
                      "others": -0.0066,
                      "total": 0.0546,
                      "log_link": true,
                      "margin_base": -2.463441,
                      "item_margins": [
                        {
                          "name": "creative_efficiency",
                          "margin": -0.164932
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.051087
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.046657
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.035816
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.031666
                        }
                      ],
                      "others_margin": -0.114549
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.09843600541353226,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.082
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0374
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0365
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.035
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0344
                      }
                    ],
                    "decomposition": {
                      "base": 0.1826,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0286
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0111
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0068
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": -0.0062
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0048
                        }
                      ],
                      "others": -0.0267,
                      "total": 0.0984,
                      "log_link": true,
                      "margin_base": -1.700309,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.170427
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.074701
                        },
                        {
                          "name": "intensity_index",
                          "margin": -0.048915
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": -0.04645
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.037328
                        }
                      ],
                      "others_margin": -0.24022
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.0575873889029026,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0879
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0676
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0367
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.031
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0294
                      }
                    ],
                    "decomposition": {
                      "base": 0.1479,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0375
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0225
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0074
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0057
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0023
                        }
                      ],
                      "others": -0.0149,
                      "total": 0.0576,
                      "log_link": true,
                      "margin_base": -1.911166,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.292411
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.22794
                        },
                        {
                          "name": "intensity_index",
                          "margin": -0.087332
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.073918
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.030921
                        }
                      ],
                      "others_margin": -0.230763
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.14089320600032806,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1114
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0574
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0383
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0333
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.033
                      }
                    ],
                    "decomposition": {
                      "base": 0.3374,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.124
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0165
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0144
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0082
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0064
                        }
                      ],
                      "others": -0.027,
                      "total": 0.1409,
                      "log_link": true,
                      "margin_base": -1.086396,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.457827
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.080377
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.075653
                        },
                        {
                          "name": "intensity_index",
                          "margin": -0.046077
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": -0.037397
                        }
                      ],
                      "others_margin": -0.176025
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.4366333484649658,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1236
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0751
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0663
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0364
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 1.0381,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.3296
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0365
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0338
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0315
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0262
                        }
                      ],
                      "others": -0.1439,
                      "total": 0.4366,
                      "log_link": false,
                      "margin_base": 1.038069,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.329625
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.036514
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.033825
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.031549
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.026195
                        }
                      ],
                      "others_margin": -0.143728
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.835440158843994,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0666
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "touches",
                        "importance": 0.041
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0305
                      }
                    ],
                    "decomposition": {
                      "base": 6.8598,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0294
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0294
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0253
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": -0.0137
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.012
                        }
                      ],
                      "others": -0.024,
                      "total": 6.8354,
                      "log_link": false,
                      "margin_base": 6.859756,
                      "item_margins": [
                        {
                          "name": "passValueNormalized",
                          "margin": 0.029432
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.029396
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": 0.025282
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": -0.013672
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.012014
                        }
                      ],
                      "others_margin": -0.023948
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0950, quality 0.817)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0444,
                "assist_rate": 0.0598,
                "assists": 0,
                "expected_goals": 0.1078,
                "goal_rate": 0.0631,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.8354,
                "minutes": 40,
                "total_pass": 34,
                "accurate_pass": 32,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 16,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 18,
                "accurate_opp_half_passes": 16,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 43,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 9,
                "total_progression": 46,
                "progressive_carries": 1,
                "shots_off_target": 0
              },
              "params": {
                "market_value_eur": 48000000,
                "quality_factor": 0.8168,
                "boost_factor": 1.095
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0256)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0444,
                "assist_rate": 0.0583,
                "assists": 0,
                "expected_goals": 0.1078,
                "goal_rate": 0.0615,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.8354,
                "minutes": 40,
                "total_pass": 34,
                "accurate_pass": 32,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 16,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 18,
                "accurate_opp_half_passes": 16,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 43,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 9,
                "total_progression": 46,
                "progressive_carries": 1,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.7692,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 42.2,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 4.74
              },
              "params": {
                "blend_weight": 0.0256,
                "history_matches": 6,
                "prior_reliability": 0.0867,
                "competition": "La Liga",
                "squad": "Real Madrid"
              },
              "changes": [
                {
                  "stat": "interceptionWon",
                  "before": 0.0,
                  "after": 0.0591
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0591
                },
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0394
                },
                {
                  "stat": "totalShots",
                  "before": 0.4781,
                  "after": 0.4659
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 17.2 expected minutes (appearance prob 0.59)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0085,
                "assist_rate": 0.0111,
                "assists": 0,
                "expected_goals": 0.0206,
                "goal_rate": 0.0117,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.8354,
                "minutes": 17,
                "total_pass": 6,
                "accurate_pass": 6,
                "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": 3,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 8,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 2,
                "total_progression": 9,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.7692,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 42.2,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 4.74,
                "bench_appearance_probability": 0.594,
                "bench_expected_minutes": 17.16
              },
              "params": {
                "expected_minutes": 17.16,
                "appearance_probability": 0.594
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0085,
                "assist_rate": 0.0111,
                "assists": 0,
                "expected_goals": 0.0206,
                "goal_rate": 0.0117,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.8354,
                "minutes": 17,
                "total_pass": 6,
                "accurate_pass": 6,
                "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": 3,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 8,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 2,
                "total_progression": 9,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.7692,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 42.2,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 4.74,
                "bench_appearance_probability": 0.594,
                "bench_expected_minutes": 17.16
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 13 by projected rating, fifa_overall 81.0; not used by the projection)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0085,
                "assist_rate": 0.0111,
                "assists": 0,
                "expected_goals": 0.0206,
                "goal_rate": 0.0117,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.8354,
                "minutes": 17,
                "total_pass": 6,
                "accurate_pass": 6,
                "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": 3,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 8,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 2,
                "total_progression": 9,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.7692,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 42.2,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 4.74,
                "bench_appearance_probability": 0.594,
                "bench_expected_minutes": 17.16,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.618,
                "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": 81.0
              },
              "params": {
                "match_squad_rank": 13,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 956,
                "fifa_rank": 578.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 81.0
              }
            }
          ]
        },
        "Brahim Díaz": {
          "player_id": 835485,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 21,
          "height": 170,
          "market_value": 37000000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0097,
            "assist_rate": 0.0189,
            "assists": 0,
            "expected_goals": 0.0214,
            "goal_rate": 0.0126,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 0,
            "rating": 6.7178,
            "minutes": 18,
            "total_pass": 3,
            "accurate_pass": 3,
            "duels_won": 0,
            "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": 5,
            "possession_lost": 0.7036,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_won": 0,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 1,
            "total_progression": 9,
            "progressive_carries": 0,
            "shots_off_target": 0,
            "offsides": 1,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 0.0,
            "shotConversion": 0.0,
            "minutesPct": 28.5,
            "pointsPerMatch": 3.0,
            "netGoalDifferencePer90": 4.68,
            "bench_appearance_probability": 0.526,
            "bench_expected_minutes": 17.62,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.618,
            "projected_substitution_game_state_adjustment": -1,
            "substitution_usage": "available_bench_not_projected_used",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 79.0
          },
          "latest_10_games": [
            {
              "match_id": 16416342.0,
              "match_date": "2026-09-15",
              "home_team": "Elche",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Elche",
              "stats": {
                "minutes": 22,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.022,
                "total_shots": 0,
                "total_pass": 8,
                "accurate_pass": 8,
                "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": 16416312.0,
              "match_date": "2026-08-30",
              "home_team": "Real Madrid",
              "away_team": "Málaga CF",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 65,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0468,
                "expected_assists": 0.0544,
                "total_shots": 1,
                "total_pass": 27,
                "accurate_pass": 27,
                "key_pass": 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": "home",
              "is_starting_11": 0,
              "team": "Real Madrid",
              "opponent": "Real Sociedad",
              "stats": {
                "minutes": 12,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0035,
                "total_shots": 0,
                "total_pass": 12,
                "accurate_pass": 12,
                "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": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 1490,
            "combined_rank_score": 756.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 616.0,
            "sofascore_rating": 6.7727,
            "sofascore_appearances": 12.0,
            "fifa_rank": 896.0,
            "fifa_overall": 79.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 16,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.7178,
            "source_file": "data/player_rankings.csv",
            "player_name": "Brahim Díaz",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Florian Lejeune",
                  "ranking": 1485
                },
                {
                  "player_name": "Dimitrios Valkanis",
                  "ranking": 1486
                },
                {
                  "player_name": "Patrick Dorgu",
                  "ranking": 1487
                },
                {
                  "player_name": "Quinten Timber",
                  "ranking": 1488
                },
                {
                  "player_name": "Jon Pacheco",
                  "ranking": 1489
                }
              ],
              "lower": [
                {
                  "player_name": "Lucas Assadi",
                  "ranking": 1491
                },
                {
                  "player_name": "Bryan Cristante",
                  "ranking": 1492
                },
                {
                  "player_name": "Lucas Hernández",
                  "ranking": 1493
                },
                {
                  "player_name": "Yerco Oyanedel",
                  "ranking": 1494
                },
                {
                  "player_name": "Bekhruz Karimov",
                  "ranking": 1495
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.447,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.447,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 17.62,
            "bench_appearance_prob": 0.526,
            "market_value_adjustment": 1.0792,
            "fbref_prior_metrics": {
              "squad": "Real Madrid",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 1.0,
              "sub_appearances": 1.0,
              "minutes_per_sub": 13.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "prior_reliability": 0.06
            },
            "rationale": "Bench projection scaled from XGBoost M_service (3 historical appearances) to 17.6 expected mins (appearance prob 0.53); FBref playing time empirical prior: 1.0 sub appearances, 13.0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0461,
                "assist_rate": 0.0914,
                "assists": 0,
                "expected_goals": 0.1011,
                "goal_rate": 0.0611,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.7178,
                "minutes": 33,
                "total_pass": 16,
                "accurate_pass": 16,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 22,
                "possession_lost": 3.33,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 7,
                "total_progression": 43,
                "progressive_carries": 2,
                "shots_off_target": 0
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 6,
                  "trained_at": "2026-09-29T10:02:07.046807+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 550,
                    "rows": 13779
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-15",
                    "opponent": "Elche",
                    "minutes": 22.0,
                    "is_starting": true,
                    "weight": 0.3887,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Málaga CF",
                    "minutes": 65.0,
                    "is_starting": true,
                    "weight": 0.3304,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-08-26",
                    "opponent": "Real Sociedad",
                    "minutes": 12.0,
                    "is_starting": false,
                    "weight": 0.2809,
                    "rating": 6.6
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 0.0,
                  "totalShots": 0.3304,
                  "expectedAssists": 0.0275,
                  "creative_index": 0.4165,
                  "creative_efficiency": 0.0275,
                  "shotValueNormalized": -0.043,
                  "dribbleValueNormalized": 0.172
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.8768584132194519,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.12
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0959
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0798
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0429
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0425
                      }
                    ],
                    "decomposition": {
                      "base": 0.9267,
                      "items": [
                        {
                          "name": "keyPass",
                          "contribution": -0.0982
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0482
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.0433
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0387
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0382
                        }
                      ],
                      "others": 0.0538,
                      "total": 0.8769,
                      "log_link": true,
                      "margin_base": -0.076148,
                      "item_margins": [
                        {
                          "name": "keyPass",
                          "margin": -0.112072
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.059882
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": 0.054067
                        },
                        {
                          "name": "is_starting_11",
                          "margin": -0.048092
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.047482
                        }
                      ],
                      "others_margin": 0.063235
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.04607224091887474,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.118
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0768
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0579
                      },
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0397
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0318
                      }
                    ],
                    "decomposition": {
                      "base": 0.0872,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0241
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.004
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0036
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0022
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.002
                        }
                      ],
                      "others": -0.0052,
                      "total": 0.0461,
                      "log_link": true,
                      "margin_base": -2.439192,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": -0.323633
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.065205
                        },
                        {
                          "name": "cross_creative_contribution",
                          "margin": -0.062269
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.040775
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": -0.037533
                        }
                      ],
                      "others_margin": -0.108937
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.09142060577869415,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0669
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0574
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0465
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0404
                      },
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0277
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0124
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0053
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.0052
                        },
                        {
                          "name": "duelWon",
                          "contribution": 0.005
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.0048
                        }
                      ],
                      "others": -0.0062,
                      "total": 0.0914,
                      "log_link": true,
                      "margin_base": -2.463441,
                      "item_margins": [
                        {
                          "name": "creative_efficiency",
                          "margin": 0.136316
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.055312
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": 0.054472
                        },
                        {
                          "name": "duelWon",
                          "margin": 0.050375
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.048398
                        }
                      ],
                      "others_margin": -0.066295
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.10109244287014008,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.082
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0374
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0365
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.035
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0344
                      }
                    ],
                    "decomposition": {
                      "base": 0.1826,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0327
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0119
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0083
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": -0.0072
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.0041
                        }
                      ],
                      "others": -0.0255,
                      "total": 0.1011,
                      "log_link": true,
                      "margin_base": -1.700309,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.196988
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.082497
                        },
                        {
                          "name": "intensity_index",
                          "margin": -0.062068
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": -0.057014
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": 0.032543
                        }
                      ],
                      "others_margin": -0.225387
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.061065975576639175,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0879
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0676
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0367
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.031
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0294
                      }
                    ],
                    "decomposition": {
                      "base": 0.1479,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0341
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0232
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0116
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0069
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": 0.0025
                        }
                      ],
                      "others": -0.0135,
                      "total": 0.0611,
                      "log_link": true,
                      "margin_base": -1.911166,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.261969
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.227838
                        },
                        {
                          "name": "intensity_index",
                          "margin": -0.137256
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.091174
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "margin": 0.033798
                        }
                      ],
                      "others_margin": -0.200195
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.16699166595935822,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1114
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0574
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0383
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0333
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.033
                      }
                    ],
                    "decomposition": {
                      "base": 0.3374,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.1178
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.012
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0101
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0086
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": -0.0054
                        }
                      ],
                      "others": -0.0165,
                      "total": 0.167,
                      "log_link": true,
                      "margin_base": -1.086396,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.42924
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.056109
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.04986
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": -0.04433
                        },
                        {
                          "name": "ballRecovery_p90",
                          "margin": -0.029007
                        }
                      ],
                      "others_margin": -0.09487
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.5924402475357056,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1236
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0751
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0663
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0364
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 1.0381,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.2673
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0436
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0397
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0308
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0181
                        }
                      ],
                      "others": -0.0824,
                      "total": 0.5924,
                      "log_link": false,
                      "margin_base": 1.038069,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.267266
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.043611
                        },
                        {
                          "name": "is_starting_11",
                          "margin": -0.039669
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.030795
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.018123
                        }
                      ],
                      "others_margin": -0.082411
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.717790126800537,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0666
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "touches",
                        "importance": 0.041
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0305
                      }
                    ],
                    "decomposition": {
                      "base": 6.8598,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0514
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.036
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0274
                        },
                        {
                          "name": "touches",
                          "contribution": -0.02
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0125
                        }
                      ],
                      "others": -0.0495,
                      "total": 6.7178,
                      "log_link": false,
                      "margin_base": 6.859756,
                      "item_margins": [
                        {
                          "name": "passValueNormalized",
                          "margin": -0.051374
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.035991
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": 0.027429
                        },
                        {
                          "name": "touches",
                          "margin": -0.019998
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.012498
                        }
                      ],
                      "others_margin": -0.049533
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0792, quality 0.764)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0497,
                "assist_rate": 0.0987,
                "assists": 0,
                "expected_goals": 0.1091,
                "goal_rate": 0.0659,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.7178,
                "minutes": 33,
                "total_pass": 17,
                "accurate_pass": 17,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 12,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 23,
                "possession_lost": 3.5939,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 7,
                "total_progression": 47,
                "progressive_carries": 2,
                "shots_off_target": 0
              },
              "params": {
                "market_value_eur": 37000000,
                "quality_factor": 0.7641,
                "boost_factor": 1.0792
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0244)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0497,
                "assist_rate": 0.0963,
                "assists": 0,
                "expected_goals": 0.1091,
                "goal_rate": 0.0643,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.7178,
                "minutes": 33,
                "total_pass": 17,
                "accurate_pass": 17,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 12,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 23,
                "possession_lost": 3.5939,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 7,
                "total_progression": 47,
                "progressive_carries": 2,
                "shots_off_target": 0,
                "offsides": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 28.5,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 4.68
              },
              "params": {
                "blend_weight": 0.0244,
                "history_matches": 3,
                "prior_reliability": 0.06,
                "competition": "La Liga",
                "squad": "Real Madrid"
              },
              "changes": [
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.0271
                },
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0271
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0271
                },
                {
                  "stat": "totalShots",
                  "before": 0.6394,
                  "after": 0.6523
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 17.6 expected minutes (appearance prob 0.53)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0097,
                "assist_rate": 0.0189,
                "assists": 0,
                "expected_goals": 0.0214,
                "goal_rate": 0.0126,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.7178,
                "minutes": 18,
                "total_pass": 3,
                "accurate_pass": 3,
                "duels_won": 0,
                "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": 5,
                "possession_lost": 0.7036,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 1,
                "total_progression": 9,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "offsides": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 28.5,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 4.68,
                "bench_appearance_probability": 0.526,
                "bench_expected_minutes": 17.62
              },
              "params": {
                "expected_minutes": 17.62,
                "appearance_probability": 0.526
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0097,
                "assist_rate": 0.0189,
                "assists": 0,
                "expected_goals": 0.0214,
                "goal_rate": 0.0126,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.7178,
                "minutes": 18,
                "total_pass": 3,
                "accurate_pass": 3,
                "duels_won": 0,
                "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": 5,
                "possession_lost": 0.7036,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 1,
                "total_progression": 9,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "offsides": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 28.5,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 4.68,
                "bench_appearance_probability": 0.526,
                "bench_expected_minutes": 17.62
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 16 by projected rating, fifa_overall 79.0; not used by the projection)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0097,
                "assist_rate": 0.0189,
                "assists": 0,
                "expected_goals": 0.0214,
                "goal_rate": 0.0126,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.7178,
                "minutes": 18,
                "total_pass": 3,
                "accurate_pass": 3,
                "duels_won": 0,
                "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": 5,
                "possession_lost": 0.7036,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 1,
                "total_progression": 9,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "offsides": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 28.5,
                "pointsPerMatch": 3.0,
                "netGoalDifferencePer90": 4.68,
                "bench_appearance_probability": 0.526,
                "bench_expected_minutes": 17.62,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.618,
                "projected_substitution_game_state_adjustment": -1,
                "substitution_usage": "available_bench_not_projected_used",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 79.0
              },
              "params": {
                "match_squad_rank": 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": 1490,
                "fifa_rank": 896.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 79.0
              }
            }
          ]
        },
        "Rodrygo": {
          "player_id": 910536,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 11,
          "height": 174,
          "market_value": 48000000,
          "stats": {
            "expected_goals": 0.2087,
            "goal_rate": 0.0715,
            "goals": 0,
            "total_shots": 1,
            "shots_on_target": 1,
            "expected_assists": 0.0756,
            "duels_won": 2,
            "aerial_won": 1,
            "rating": 7.4,
            "minutes": 27,
            "total_pass": 11,
            "accurate_pass": 8,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 6,
            "accurate_opp_half_passes": 4,
            "crosses_total": 1,
            "crosses_accurate": 0,
            "touches": 15,
            "possession_lost": 3.1856,
            "dispossessed": 1.5,
            "duels_lost": 2,
            "aerial_lost": 2,
            "total_contest": 2,
            "won_contest": 1,
            "ball_recovery": 1,
            "challenges_lost": 2,
            "fouls": 1,
            "fouls_drawn": 1,
            "assist_rate": 0.0357,
            "assists": 0,
            "shots_off_target": 0,
            "key_pass": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.1606,
            "offsides": 1,
            "ball_carries": 8,
            "total_progression": 20,
            "progressive_carries": 2,
            "bench_appearance_probability": 0.627,
            "bench_expected_minutes": 26.79,
            "projected_substitution_order": 1,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.618,
            "projected_substitution_game_state_adjustment": -1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.1181,
            "projected_assists": 0,
            "assist_probability": 0.0457,
            "finishing_factor": 0.8,
            "creation_factor": 0.9533,
            "fifa_overall": 84.0
          },
          "latest_10_games": [],
          "ranking": {
            "global_player_rank": 303,
            "combined_rank_score": 209.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 189.0,
            "sofascore_rating": 7.22,
            "sofascore_appearances": 5.0,
            "fifa_rank": 229.0,
            "fifa_overall": 84.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 1,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 7.4,
            "source_file": "data/player_rankings.csv",
            "player_name": "Rodrygo",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Zubimendi",
                  "ranking": 298
                },
                {
                  "player_name": "Kim Min-Seung",
                  "ranking": 299
                },
                {
                  "player_name": "Aurélien Tchouaméni",
                  "ranking": 300
                },
                {
                  "player_name": "Robert Lewandowski",
                  "ranking": 301
                },
                {
                  "player_name": "Matthijs de Ligt",
                  "ranking": 302
                }
              ],
              "lower": [
                {
                  "player_name": "Aleksandar Šušnjar",
                  "ranking": 304
                },
                {
                  "player_name": "Brian Fariñas",
                  "ranking": 305
                },
                {
                  "player_name": "Serge Gnabry",
                  "ranking": 306
                },
                {
                  "player_name": "Kyu-baek Choi",
                  "ranking": 307
                },
                {
                  "player_name": "Lorenzo Reyes",
                  "ranking": 308
                }
              ]
            }
          },
          "data_sources": [
            "market_value"
          ],
          "data_confidence": 0.25,
          "history_matches": 0,
          "xgboost_reasoning": {
            "model_source": "market_value_prior",
            "position_service": "F_service",
            "features_evaluated": [],
            "targets_predicted": [],
            "history_matches": 0,
            "data_confidence": 0.25,
            "data_sources": [
              "market_value"
            ],
            "bench_expected_minutes": 26.794636121884068,
            "bench_appearance_prob": 0.6270289146310939,
            "market_value_adjustment": 0.8168,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection from market-value prior (€48,000,000) scaled to 26.8 expected mins."
          },
          "stat_evolution": [
            {
              "step": "market_value_prior",
              "description": "Market-value baseline for position F (quality 0.82)",
              "stats": {
                "expected_goals": 0.37,
                "goal_rate": 0.24,
                "goals": 0,
                "total_shots": 4,
                "shots_on_target": 2,
                "expected_assists": 0.134,
                "duels_won": 5,
                "aerial_won": 2,
                "rating": 7.4,
                "minutes": 90,
                "total_pass": 36,
                "accurate_pass": 27,
                "total_long_balls": 2,
                "accurate_long_balls": 1,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 15,
                "crosses_total": 2,
                "crosses_accurate": 1,
                "touches": 50,
                "possession_lost": 10.7,
                "dispossessed": 1.5,
                "duels_lost": 6,
                "aerial_lost": 2,
                "total_contest": 7,
                "won_contest": 4,
                "ball_recovery": 3,
                "challenges_lost": 2,
                "fouls": 2,
                "fouls_drawn": 2,
                "assist_rate": 0.12,
                "assists": 0,
                "shots_off_target": 1,
                "key_pass": 1,
                "interceptions": 0,
                "tackles_won": 1,
                "tackles": 1,
                "clearances": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.285,
                "offsides": 1,
                "ball_carries": 26,
                "total_progression": 66,
                "progressive_carries": 7
              },
              "params": {
                "market_value_eur": 48000000,
                "quality_factor": 0.8168
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 26.8 expected minutes (appearance prob 0.63)",
              "stats": {
                "expected_goals": 0.1102,
                "goal_rate": 0.0715,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 1,
                "expected_assists": 0.0399,
                "duels_won": 2,
                "aerial_won": 1,
                "rating": 7.4,
                "minutes": 27,
                "total_pass": 11,
                "accurate_pass": 8,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 4,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 3.1856,
                "dispossessed": 1.5,
                "duels_lost": 2,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 2,
                "fouls": 1,
                "fouls_drawn": 1,
                "assist_rate": 0.0357,
                "assists": 0,
                "shots_off_target": 0,
                "key_pass": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0848,
                "offsides": 1,
                "ball_carries": 8,
                "total_progression": 20,
                "progressive_carries": 2,
                "bench_appearance_probability": 0.627,
                "bench_expected_minutes": 26.79
              },
              "params": {
                "expected_minutes": 26.79,
                "appearance_probability": 0.627
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.1102,
                "goal_rate": 0.0715,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 1,
                "expected_assists": 0.0399,
                "duels_won": 2,
                "aerial_won": 1,
                "rating": 7.4,
                "minutes": 27,
                "total_pass": 11,
                "accurate_pass": 8,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 4,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 3.1856,
                "dispossessed": 1.5,
                "duels_lost": 2,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 2,
                "fouls": 1,
                "fouls_drawn": 1,
                "assist_rate": 0.0357,
                "assists": 0,
                "shots_off_target": 0,
                "key_pass": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0848,
                "offsides": 1,
                "ball_carries": 8,
                "total_progression": 20,
                "progressive_carries": 2,
                "bench_appearance_probability": 0.627,
                "bench_expected_minutes": 26.79
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.54 (squad xG sum 1.8684, xG scale 1.8936, xA scale 1.8936, team xA 2.35 = 0.66 x lambda)",
              "stats": {
                "expected_goals": 0.2087,
                "goal_rate": 0.0715,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 1,
                "expected_assists": 0.0756,
                "duels_won": 2,
                "aerial_won": 1,
                "rating": 7.4,
                "minutes": 27,
                "total_pass": 11,
                "accurate_pass": 8,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 4,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 3.1856,
                "dispossessed": 1.5,
                "duels_lost": 2,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 2,
                "fouls": 1,
                "fouls_drawn": 1,
                "assist_rate": 0.0357,
                "assists": 0,
                "shots_off_target": 0,
                "key_pass": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.1606,
                "offsides": 1,
                "ball_carries": 8,
                "total_progression": 20,
                "progressive_carries": 2,
                "bench_appearance_probability": 0.627,
                "bench_expected_minutes": 26.79,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.618,
                "projected_substitution_game_state_adjustment": -1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 0.9533
              },
              "params": {
                "team_lambda": 3.538,
                "squad_xg_sum": 1.8684,
                "squad_xa_sum": 1.2396,
                "team_expected_assists": 2.3473,
                "team_xa_to_xg_ratio": 0.6635,
                "bench_appearance_weighted": true,
                "xg_scale": 1.8936,
                "xa_scale": 1.8936,
                "opponent_lambda": 1.348,
                "scoreline_reset": true,
                "appearance_weight": 0.627
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.1102,
                  "after": 0.2087
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0399,
                  "after": 0.0756
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 1 by projected rating, fifa_overall 84.0; not used by the projection)",
              "stats": {
                "expected_goals": 0.2087,
                "goal_rate": 0.0715,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 1,
                "expected_assists": 0.0756,
                "duels_won": 2,
                "aerial_won": 1,
                "rating": 7.4,
                "minutes": 27,
                "total_pass": 11,
                "accurate_pass": 8,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 4,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 3.1856,
                "dispossessed": 1.5,
                "duels_lost": 2,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 2,
                "fouls": 1,
                "fouls_drawn": 1,
                "assist_rate": 0.0357,
                "assists": 0,
                "shots_off_target": 0,
                "key_pass": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.1606,
                "offsides": 1,
                "ball_carries": 8,
                "total_progression": 20,
                "progressive_carries": 2,
                "bench_appearance_probability": 0.627,
                "bench_expected_minutes": 26.79,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.618,
                "projected_substitution_game_state_adjustment": -1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 0.9533,
                "fifa_overall": 84.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": 303,
                "fifa_rank": 229.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 84.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "expected_goals": 0.2087,
                "goal_rate": 0.0715,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 1,
                "expected_assists": 0.0756,
                "duels_won": 2,
                "aerial_won": 1,
                "rating": 7.4,
                "minutes": 27,
                "total_pass": 11,
                "accurate_pass": 8,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 4,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 3.1856,
                "dispossessed": 1.5,
                "duels_lost": 2,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 2,
                "fouls": 1,
                "fouls_drawn": 1,
                "assist_rate": 0.0357,
                "assists": 0,
                "shots_off_target": 0,
                "key_pass": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.1606,
                "offsides": 1,
                "ball_carries": 8,
                "total_progression": 20,
                "progressive_carries": 2,
                "bench_appearance_probability": 0.627,
                "bench_expected_minutes": 26.79,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.618,
                "projected_substitution_game_state_adjustment": -1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.1181,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 0.9533,
                "fifa_overall": 84.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 0,
                "goal_probability": 0.1181,
                "scorer_weight": 0.1047,
                "squad_weight_total": 3.5857,
                "weight_share": 0.0292,
                "finishing_factor": 0.8,
                "appearance_weight": 0.627,
                "weight_rank": 8,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Kylian Mbappé",
                    "weight": 1.2537,
                    "already": 0,
                    "effective_weight": 1.2537,
                    "runner_up": "Jude Bellingham",
                    "runner_up_effective_weight": 0.5657
                  },
                  {
                    "n": 2,
                    "player": "Jude Bellingham",
                    "weight": 0.5657,
                    "already": 0,
                    "effective_weight": 0.5657,
                    "runner_up": "Vinícius Júnior",
                    "runner_up_effective_weight": 0.5343
                  },
                  {
                    "n": 3,
                    "player": "Vinícius Júnior",
                    "weight": 0.5343,
                    "already": 0,
                    "effective_weight": 0.5343,
                    "runner_up": "Kylian Mbappé",
                    "runner_up_effective_weight": 0.5335
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "expected_goals": 0.2087,
                "goal_rate": 0.0715,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 1,
                "expected_assists": 0.0756,
                "duels_won": 2,
                "aerial_won": 1,
                "rating": 7.4,
                "minutes": 27,
                "total_pass": 11,
                "accurate_pass": 8,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 4,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 3.1856,
                "dispossessed": 1.5,
                "duels_lost": 2,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 2,
                "fouls": 1,
                "fouls_drawn": 1,
                "assist_rate": 0.0357,
                "assists": 0,
                "shots_off_target": 0,
                "key_pass": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.1606,
                "offsides": 1,
                "ball_carries": 8,
                "total_progression": 20,
                "progressive_carries": 2,
                "bench_appearance_probability": 0.627,
                "bench_expected_minutes": 26.79,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.618,
                "projected_substitution_game_state_adjustment": -1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.1181,
                "projected_assists": 0,
                "assist_probability": 0.0457,
                "finishing_factor": 0.8,
                "creation_factor": 0.9533,
                "fifa_overall": 84.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 2,
                "assists_allocated": 0,
                "assist_probability": 0.0457,
                "provider_weight": 0.0452,
                "squad_weight_total": 2.5484,
                "weight_share": 0.0177,
                "creation_factor": 0.9533,
                "appearance_weight": 0.627,
                "weight_rank": 10,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Trent Alexander-Arnold",
                    "weight": 0.524,
                    "already": 0,
                    "effective_weight": 0.524,
                    "runner_up": "Kylian Mbappé",
                    "runner_up_effective_weight": 0.4996
                  },
                  {
                    "n": 2,
                    "player": "Kylian Mbappé",
                    "weight": 0.4996,
                    "already": 0,
                    "effective_weight": 0.4996,
                    "runner_up": "Arda Güler",
                    "runner_up_effective_weight": 0.3574
                  }
                ]
              }
            }
          ]
        },
        "Endrick": {
          "player_id": 1174937,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 9,
          "height": 173,
          "market_value": 42000000,
          "stats": {
            "expected_goals": 0.1257,
            "goal_rate": 0.0446,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 0,
            "expected_assists": 0.0116,
            "key_pass": 0,
            "rating": 6.6065,
            "minutes": 27,
            "total_pass": 0,
            "accurate_pass": 0,
            "duels_won": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 0,
            "accurate_opp_half_passes": 0,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 1,
            "possession_lost": 0.3225,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assist_rate": 0.0,
            "assists": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "offsides": 0,
            "ball_carries": 0,
            "total_progression": 0,
            "progressive_carries": 0,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.622,
            "bench_expected_minutes": 26.69,
            "projected_substitution_order": 2,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.618,
            "projected_substitution_game_state_adjustment": -1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0735,
            "projected_assists": 0,
            "assist_probability": 0.0072,
            "finishing_factor": 0.8127,
            "creation_factor": 0.8913,
            "fifa_overall": 79.0
          },
          "latest_10_games": [
            {
              "match_id": 16416342.0,
              "match_date": "2026-09-15",
              "home_team": "Elche",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Elche",
              "stats": {
                "minutes": 10,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1472,
                "total_shots": 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": 2280,
            "combined_rank_score": 833.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 698.0,
            "sofascore_rating": 6.7,
            "sofascore_appearances": 1.0,
            "fifa_rank": 968.0,
            "fifa_overall": 79.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 18,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.6065,
            "source_file": "data/player_rankings.csv",
            "player_name": "Endrick",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Shahzod Akramov",
                  "ranking": 2275
                },
                {
                  "player_name": "Yves Bissouma",
                  "ranking": 2276
                },
                {
                  "player_name": "Nuriddin  Nuriddinov",
                  "ranking": 2277
                },
                {
                  "player_name": "Kim Min-Ho",
                  "ranking": 2278
                },
                {
                  "player_name": "Manuel Ugarte",
                  "ranking": 2279
                }
              ],
              "lower": [
                {
                  "player_name": "Javi Puado",
                  "ranking": 2281
                },
                {
                  "player_name": "Bekhruz Jumatov",
                  "ranking": 2282
                },
                {
                  "player_name": "Odilon Kossounou",
                  "ranking": 2283
                },
                {
                  "player_name": "Lennart Karl",
                  "ranking": 2284
                },
                {
                  "player_name": "André",
                  "ranking": 2285
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.312,
          "history_matches": 1,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "F_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "onTargetScoringAttempt",
              "shotOffTarget",
              "bigChanceMissed",
              "expectedAssists",
              "keyPass",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "touches",
              "dispossessed",
              "wasFouled",
              "topSpeed",
              "numberOfSprints",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "shot_accuracy",
              "xg_per_shot",
              "touches_p90",
              "totalShots_p90",
              "duelWon_p90",
              "ballCarriesCount_p90",
              "big_chance_conversion",
              "shot_waste_rate",
              "aerial_dominance",
              "press_resistance_fwd",
              "speed_threat",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 1,
            "data_confidence": 0.312,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 26.691976588065373,
            "bench_appearance_prob": 0.6223625721847896,
            "market_value_adjustment": 1.0873,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost F_service (1 historical appearances) to 26.7 expected mins (appearance prob 0.62)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.2061,
                "goal_rate": 0.1382,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0189,
                "key_pass": 0,
                "rating": 6.6065,
                "minutes": 10,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 2,
                "possession_lost": 1.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:02:15.441175+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 325,
                    "rows": 6303
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-15",
                    "opponent": "Elche",
                    "minutes": 10.0,
                    "is_starting": true,
                    "weight": 1.0,
                    "rating": 6.4
                  }
                ],
                "feature_row": {
                  "history_matches": 1.0,
                  "is_starting_11": 0.0,
                  "onTargetScoringAttempt": 0.0,
                  "totalShots": 1.0,
                  "minutesPlayed": 10.0,
                  "shotValueNormalized": -0.26,
                  "accuratePass": 0.0,
                  "expectedAssists": 0.0
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.20605352520942688,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0826
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0724
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.048
                      },
                      {
                        "name": "touches_p90",
                        "importance": 0.0379
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0352
                      }
                    ],
                    "decomposition": {
                      "base": 0.3626,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0584
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": 0.0451
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0356
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0226
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0185
                        }
                      ],
                      "others": -0.0665,
                      "total": 0.2061,
                      "log_link": true,
                      "margin_base": -1.014464,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.17577
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": 0.138146
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.107628
                        },
                        {
                          "name": "is_starting_11",
                          "margin": -0.074943
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.065586
                        }
                      ],
                      "others_margin": -0.279374
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.13820607960224152,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1258
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0801
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "bigChanceMissed",
                        "importance": 0.0323
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0265
                      }
                    ],
                    "decomposition": {
                      "base": 0.2866,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0397
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0273
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0232
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0106
                        },
                        {
                          "name": "history_matches",
                          "contribution": -0.0086
                        }
                      ],
                      "others": -0.039,
                      "total": 0.1382,
                      "log_link": true,
                      "margin_base": -1.249595,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.148981
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.116935
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.111601
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.055551
                        },
                        {
                          "name": "history_matches",
                          "margin": -0.047383
                        }
                      ],
                      "others_margin": -0.248963
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.15333177149295807,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1486
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0633
                      },
                      {
                        "name": "shot_accuracy",
                        "importance": 0.0618
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0343
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 0.5888,
                      "items": [
                        {
                          "name": "shot_accuracy",
                          "contribution": -0.1992
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.1223
                        },
                        {
                          "name": "history_matches",
                          "contribution": -0.052
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0232
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.0081
                        }
                      ],
                      "others": -0.0307,
                      "total": 0.1533,
                      "log_link": true,
                      "margin_base": -0.52966,
                      "item_margins": [
                        {
                          "name": "shot_accuracy",
                          "margin": -0.412977
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.376592
                        },
                        {
                          "name": "history_matches",
                          "margin": -0.216185
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.114083
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.043172
                        }
                      ],
                      "others_margin": -0.182481
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.9582808613777161,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.1122
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0872
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0825
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.074
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0566
                      }
                    ],
                    "decomposition": {
                      "base": 1.4352,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.1752
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.1521
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": 0.0993
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": 0.0776
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0601
                        }
                      ],
                      "others": -0.2664,
                      "total": 0.9583,
                      "log_link": false,
                      "margin_base": 1.435195,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.175238
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.152051
                        },
                        {
                          "name": "totalShots_p90",
                          "margin": 0.099337
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": 0.077625
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.060108
                        }
                      ],
                      "others_margin": -0.266479
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.018887139856815338,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.1197
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0571
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0459
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0451
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0369
                      }
                    ],
                    "decomposition": {
                      "base": 0.06,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0274
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0063
                        },
                        {
                          "name": "history_matches",
                          "contribution": -0.0038
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": 0.0031
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0017
                        }
                      ],
                      "others": -0.005,
                      "total": 0.0189,
                      "log_link": true,
                      "margin_base": -2.812623,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": -0.609999
                        },
                        {
                          "name": "totalPass",
                          "margin": -0.215965
                        },
                        {
                          "name": "history_matches",
                          "margin": -0.15554
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": 0.129499
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.068021
                        }
                      ],
                      "others_margin": -0.236624
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.23895807564258575,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "accuratePass",
                        "importance": 0.1105
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0916
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0476
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0444
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0409
                      }
                    ],
                    "decomposition": {
                      "base": 0.6782,
                      "items": [
                        {
                          "name": "keyPass",
                          "contribution": -0.2944
                        },
                        {
                          "name": "history_matches",
                          "contribution": -0.0468
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0253
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0216
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0094
                        }
                      ],
                      "others": -0.0417,
                      "total": 0.239,
                      "log_link": true,
                      "margin_base": -0.388283,
                      "item_margins": [
                        {
                          "name": "keyPass",
                          "margin": -0.569387
                        },
                        {
                          "name": "history_matches",
                          "margin": -0.130146
                        },
                        {
                          "name": "is_starting_11",
                          "margin": -0.07813
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.071783
                        },
                        {
                          "name": "totalPass",
                          "margin": -0.033111
                        }
                      ],
                      "others_margin": -0.160626
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.606464385986328,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0847
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0724
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0628
                      },
                      {
                        "name": "dispossessed",
                        "importance": 0.0551
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0438
                      }
                    ],
                    "decomposition": {
                      "base": 6.815,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0445
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0388
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0289
                        },
                        {
                          "name": "shot_accuracy",
                          "contribution": -0.0163
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0111
                        }
                      ],
                      "others": -0.0689,
                      "total": 6.6065,
                      "log_link": false,
                      "margin_base": 6.814961,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.044484
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.038795
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.028947
                        },
                        {
                          "name": "shot_accuracy",
                          "margin": -0.016306
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.011062
                        }
                      ],
                      "others_margin": -0.068902
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0873, quality 0.791)",
              "stats": {
                "expected_goals": 0.224,
                "goal_rate": 0.1503,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0205,
                "key_pass": 0,
                "rating": 6.6065,
                "minutes": 10,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 2,
                "possession_lost": 1.0873,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 42000000,
                "quality_factor": 0.7909,
                "boost_factor": 1.0873
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 26.7 expected minutes (appearance prob 0.62)",
              "stats": {
                "expected_goals": 0.0664,
                "goal_rate": 0.0446,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0061,
                "key_pass": 0,
                "rating": 6.6065,
                "minutes": 27,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 1,
                "possession_lost": 0.3225,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.622,
                "bench_expected_minutes": 26.69
              },
              "params": {
                "expected_minutes": 26.69,
                "appearance_probability": 0.622
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0664,
                "goal_rate": 0.0446,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0061,
                "key_pass": 0,
                "rating": 6.6065,
                "minutes": 27,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 1,
                "possession_lost": 0.3225,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.622,
                "bench_expected_minutes": 26.69
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.54 (squad xG sum 1.8684, xG scale 1.8936, xA scale 1.8936, team xA 2.35 = 0.66 x lambda)",
              "stats": {
                "expected_goals": 0.1257,
                "goal_rate": 0.0446,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0116,
                "key_pass": 0,
                "rating": 6.6065,
                "minutes": 27,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 1,
                "possession_lost": 0.3225,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.622,
                "bench_expected_minutes": 26.69,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.618,
                "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.8127,
                "creation_factor": 0.8913
              },
              "params": {
                "team_lambda": 3.538,
                "squad_xg_sum": 1.8684,
                "squad_xa_sum": 1.2396,
                "team_expected_assists": 2.3473,
                "team_xa_to_xg_ratio": 0.6635,
                "bench_appearance_weighted": true,
                "xg_scale": 1.8936,
                "xa_scale": 1.8936,
                "opponent_lambda": 1.348,
                "scoreline_reset": true,
                "appearance_weight": 0.622
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0664,
                  "after": 0.1257
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0061,
                  "after": 0.0116
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 18 by projected rating, fifa_overall 79.0; not used by the projection)",
              "stats": {
                "expected_goals": 0.1257,
                "goal_rate": 0.0446,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0116,
                "key_pass": 0,
                "rating": 6.6065,
                "minutes": 27,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 1,
                "possession_lost": 0.3225,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.622,
                "bench_expected_minutes": 26.69,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.618,
                "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.8127,
                "creation_factor": 0.8913,
                "fifa_overall": 79.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": 2280,
                "fifa_rank": 968.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 79.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "expected_goals": 0.1257,
                "goal_rate": 0.0446,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0116,
                "key_pass": 0,
                "rating": 6.6065,
                "minutes": 27,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 1,
                "possession_lost": 0.3225,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.622,
                "bench_expected_minutes": 26.69,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.618,
                "projected_substitution_game_state_adjustment": -1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0735,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8127,
                "creation_factor": 0.8913,
                "fifa_overall": 79.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 0,
                "goal_probability": 0.0735,
                "scorer_weight": 0.0635,
                "squad_weight_total": 3.5857,
                "weight_share": 0.0177,
                "finishing_factor": 0.8127,
                "appearance_weight": 0.622,
                "weight_rank": 9,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Kylian Mbappé",
                    "weight": 1.2537,
                    "already": 0,
                    "effective_weight": 1.2537,
                    "runner_up": "Jude Bellingham",
                    "runner_up_effective_weight": 0.5657
                  },
                  {
                    "n": 2,
                    "player": "Jude Bellingham",
                    "weight": 0.5657,
                    "already": 0,
                    "effective_weight": 0.5657,
                    "runner_up": "Vinícius Júnior",
                    "runner_up_effective_weight": 0.5343
                  },
                  {
                    "n": 3,
                    "player": "Vinícius Júnior",
                    "weight": 0.5343,
                    "already": 0,
                    "effective_weight": 0.5343,
                    "runner_up": "Kylian Mbappé",
                    "runner_up_effective_weight": 0.5335
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "expected_goals": 0.1257,
                "goal_rate": 0.0446,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0116,
                "key_pass": 0,
                "rating": 6.6065,
                "minutes": 27,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 1,
                "possession_lost": 0.3225,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.622,
                "bench_expected_minutes": 26.69,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.618,
                "projected_substitution_game_state_adjustment": -1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0735,
                "projected_assists": 0,
                "assist_probability": 0.0072,
                "finishing_factor": 0.8127,
                "creation_factor": 0.8913,
                "fifa_overall": 79.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 2,
                "assists_allocated": 0,
                "assist_probability": 0.0072,
                "provider_weight": 0.0064,
                "squad_weight_total": 2.5484,
                "weight_share": 0.0025,
                "creation_factor": 0.8913,
                "appearance_weight": 0.622,
                "weight_rank": 12,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Trent Alexander-Arnold",
                    "weight": 0.524,
                    "already": 0,
                    "effective_weight": 0.524,
                    "runner_up": "Kylian Mbappé",
                    "runner_up_effective_weight": 0.4996
                  },
                  {
                    "n": 2,
                    "player": "Kylian Mbappé",
                    "weight": 0.4996,
                    "already": 0,
                    "effective_weight": 0.4996,
                    "runner_up": "Arda Güler",
                    "runner_up_effective_weight": 0.3574
                  }
                ]
              }
            }
          ]
        }
      },
      "substitutes": {
        "Rodrygo": {
          "player_id": 910536,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 11,
          "height": 174,
          "market_value": 48000000,
          "stats": {
            "expected_goals": 0.2087,
            "goal_rate": 0.0715,
            "goals": 0,
            "total_shots": 1,
            "shots_on_target": 1,
            "expected_assists": 0.0756,
            "duels_won": 2,
            "aerial_won": 1,
            "rating": 7.4,
            "minutes": 27,
            "total_pass": 11,
            "accurate_pass": 8,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 6,
            "accurate_opp_half_passes": 4,
            "crosses_total": 1,
            "crosses_accurate": 0,
            "touches": 15,
            "possession_lost": 3.1856,
            "dispossessed": 1.5,
            "duels_lost": 2,
            "aerial_lost": 2,
            "total_contest": 2,
            "won_contest": 1,
            "ball_recovery": 1,
            "challenges_lost": 2,
            "fouls": 1,
            "fouls_drawn": 1,
            "assist_rate": 0.0357,
            "assists": 0,
            "shots_off_target": 0,
            "key_pass": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.1606,
            "offsides": 1,
            "ball_carries": 8,
            "total_progression": 20,
            "progressive_carries": 2,
            "bench_appearance_probability": 0.627,
            "bench_expected_minutes": 26.79,
            "projected_substitution_order": 1,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.618,
            "projected_substitution_game_state_adjustment": -1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.1181,
            "projected_assists": 0,
            "assist_probability": 0.0457,
            "finishing_factor": 0.8,
            "creation_factor": 0.9533,
            "fifa_overall": 84.0
          },
          "latest_10_games": [],
          "ranking": {
            "global_player_rank": 303,
            "combined_rank_score": 209.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 189.0,
            "sofascore_rating": 7.22,
            "sofascore_appearances": 5.0,
            "fifa_rank": 229.0,
            "fifa_overall": 84.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 1,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 7.4,
            "source_file": "data/player_rankings.csv",
            "player_name": "Rodrygo",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Zubimendi",
                  "ranking": 298
                },
                {
                  "player_name": "Kim Min-Seung",
                  "ranking": 299
                },
                {
                  "player_name": "Aurélien Tchouaméni",
                  "ranking": 300
                },
                {
                  "player_name": "Robert Lewandowski",
                  "ranking": 301
                },
                {
                  "player_name": "Matthijs de Ligt",
                  "ranking": 302
                }
              ],
              "lower": [
                {
                  "player_name": "Aleksandar Šušnjar",
                  "ranking": 304
                },
                {
                  "player_name": "Brian Fariñas",
                  "ranking": 305
                },
                {
                  "player_name": "Serge Gnabry",
                  "ranking": 306
                },
                {
                  "player_name": "Kyu-baek Choi",
                  "ranking": 307
                },
                {
                  "player_name": "Lorenzo Reyes",
                  "ranking": 308
                }
              ]
            }
          },
          "data_sources": [
            "market_value"
          ],
          "data_confidence": 0.25,
          "history_matches": 0,
          "xgboost_reasoning": {
            "model_source": "market_value_prior",
            "position_service": "F_service",
            "features_evaluated": [],
            "targets_predicted": [],
            "history_matches": 0,
            "data_confidence": 0.25,
            "data_sources": [
              "market_value"
            ],
            "bench_expected_minutes": 26.794636121884068,
            "bench_appearance_prob": 0.6270289146310939,
            "market_value_adjustment": 0.8168,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection from market-value prior (€48,000,000) scaled to 26.8 expected mins."
          },
          "stat_evolution": [
            {
              "step": "market_value_prior",
              "description": "Market-value baseline for position F (quality 0.82)",
              "stats": {
                "expected_goals": 0.37,
                "goal_rate": 0.24,
                "goals": 0,
                "total_shots": 4,
                "shots_on_target": 2,
                "expected_assists": 0.134,
                "duels_won": 5,
                "aerial_won": 2,
                "rating": 7.4,
                "minutes": 90,
                "total_pass": 36,
                "accurate_pass": 27,
                "total_long_balls": 2,
                "accurate_long_balls": 1,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 15,
                "crosses_total": 2,
                "crosses_accurate": 1,
                "touches": 50,
                "possession_lost": 10.7,
                "dispossessed": 1.5,
                "duels_lost": 6,
                "aerial_lost": 2,
                "total_contest": 7,
                "won_contest": 4,
                "ball_recovery": 3,
                "challenges_lost": 2,
                "fouls": 2,
                "fouls_drawn": 2,
                "assist_rate": 0.12,
                "assists": 0,
                "shots_off_target": 1,
                "key_pass": 1,
                "interceptions": 0,
                "tackles_won": 1,
                "tackles": 1,
                "clearances": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.285,
                "offsides": 1,
                "ball_carries": 26,
                "total_progression": 66,
                "progressive_carries": 7
              },
              "params": {
                "market_value_eur": 48000000,
                "quality_factor": 0.8168
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 26.8 expected minutes (appearance prob 0.63)",
              "stats": {
                "expected_goals": 0.1102,
                "goal_rate": 0.0715,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 1,
                "expected_assists": 0.0399,
                "duels_won": 2,
                "aerial_won": 1,
                "rating": 7.4,
                "minutes": 27,
                "total_pass": 11,
                "accurate_pass": 8,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 4,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 3.1856,
                "dispossessed": 1.5,
                "duels_lost": 2,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 2,
                "fouls": 1,
                "fouls_drawn": 1,
                "assist_rate": 0.0357,
                "assists": 0,
                "shots_off_target": 0,
                "key_pass": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0848,
                "offsides": 1,
                "ball_carries": 8,
                "total_progression": 20,
                "progressive_carries": 2,
                "bench_appearance_probability": 0.627,
                "bench_expected_minutes": 26.79
              },
              "params": {
                "expected_minutes": 26.79,
                "appearance_probability": 0.627
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.1102,
                "goal_rate": 0.0715,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 1,
                "expected_assists": 0.0399,
                "duels_won": 2,
                "aerial_won": 1,
                "rating": 7.4,
                "minutes": 27,
                "total_pass": 11,
                "accurate_pass": 8,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 4,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 3.1856,
                "dispossessed": 1.5,
                "duels_lost": 2,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 2,
                "fouls": 1,
                "fouls_drawn": 1,
                "assist_rate": 0.0357,
                "assists": 0,
                "shots_off_target": 0,
                "key_pass": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0848,
                "offsides": 1,
                "ball_carries": 8,
                "total_progression": 20,
                "progressive_carries": 2,
                "bench_appearance_probability": 0.627,
                "bench_expected_minutes": 26.79
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.54 (squad xG sum 1.8684, xG scale 1.8936, xA scale 1.8936, team xA 2.35 = 0.66 x lambda)",
              "stats": {
                "expected_goals": 0.2087,
                "goal_rate": 0.0715,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 1,
                "expected_assists": 0.0756,
                "duels_won": 2,
                "aerial_won": 1,
                "rating": 7.4,
                "minutes": 27,
                "total_pass": 11,
                "accurate_pass": 8,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 4,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 3.1856,
                "dispossessed": 1.5,
                "duels_lost": 2,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 2,
                "fouls": 1,
                "fouls_drawn": 1,
                "assist_rate": 0.0357,
                "assists": 0,
                "shots_off_target": 0,
                "key_pass": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.1606,
                "offsides": 1,
                "ball_carries": 8,
                "total_progression": 20,
                "progressive_carries": 2,
                "bench_appearance_probability": 0.627,
                "bench_expected_minutes": 26.79,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.618,
                "projected_substitution_game_state_adjustment": -1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 0.9533
              },
              "params": {
                "team_lambda": 3.538,
                "squad_xg_sum": 1.8684,
                "squad_xa_sum": 1.2396,
                "team_expected_assists": 2.3473,
                "team_xa_to_xg_ratio": 0.6635,
                "bench_appearance_weighted": true,
                "xg_scale": 1.8936,
                "xa_scale": 1.8936,
                "opponent_lambda": 1.348,
                "scoreline_reset": true,
                "appearance_weight": 0.627
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.1102,
                  "after": 0.2087
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0399,
                  "after": 0.0756
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 1 by projected rating, fifa_overall 84.0; not used by the projection)",
              "stats": {
                "expected_goals": 0.2087,
                "goal_rate": 0.0715,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 1,
                "expected_assists": 0.0756,
                "duels_won": 2,
                "aerial_won": 1,
                "rating": 7.4,
                "minutes": 27,
                "total_pass": 11,
                "accurate_pass": 8,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 4,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 3.1856,
                "dispossessed": 1.5,
                "duels_lost": 2,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 2,
                "fouls": 1,
                "fouls_drawn": 1,
                "assist_rate": 0.0357,
                "assists": 0,
                "shots_off_target": 0,
                "key_pass": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.1606,
                "offsides": 1,
                "ball_carries": 8,
                "total_progression": 20,
                "progressive_carries": 2,
                "bench_appearance_probability": 0.627,
                "bench_expected_minutes": 26.79,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.618,
                "projected_substitution_game_state_adjustment": -1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 0.9533,
                "fifa_overall": 84.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": 303,
                "fifa_rank": 229.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 84.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "expected_goals": 0.2087,
                "goal_rate": 0.0715,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 1,
                "expected_assists": 0.0756,
                "duels_won": 2,
                "aerial_won": 1,
                "rating": 7.4,
                "minutes": 27,
                "total_pass": 11,
                "accurate_pass": 8,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 4,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 3.1856,
                "dispossessed": 1.5,
                "duels_lost": 2,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 2,
                "fouls": 1,
                "fouls_drawn": 1,
                "assist_rate": 0.0357,
                "assists": 0,
                "shots_off_target": 0,
                "key_pass": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.1606,
                "offsides": 1,
                "ball_carries": 8,
                "total_progression": 20,
                "progressive_carries": 2,
                "bench_appearance_probability": 0.627,
                "bench_expected_minutes": 26.79,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.618,
                "projected_substitution_game_state_adjustment": -1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.1181,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 0.9533,
                "fifa_overall": 84.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 0,
                "goal_probability": 0.1181,
                "scorer_weight": 0.1047,
                "squad_weight_total": 3.5857,
                "weight_share": 0.0292,
                "finishing_factor": 0.8,
                "appearance_weight": 0.627,
                "weight_rank": 8,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Kylian Mbappé",
                    "weight": 1.2537,
                    "already": 0,
                    "effective_weight": 1.2537,
                    "runner_up": "Jude Bellingham",
                    "runner_up_effective_weight": 0.5657
                  },
                  {
                    "n": 2,
                    "player": "Jude Bellingham",
                    "weight": 0.5657,
                    "already": 0,
                    "effective_weight": 0.5657,
                    "runner_up": "Vinícius Júnior",
                    "runner_up_effective_weight": 0.5343
                  },
                  {
                    "n": 3,
                    "player": "Vinícius Júnior",
                    "weight": 0.5343,
                    "already": 0,
                    "effective_weight": 0.5343,
                    "runner_up": "Kylian Mbappé",
                    "runner_up_effective_weight": 0.5335
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "expected_goals": 0.2087,
                "goal_rate": 0.0715,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 1,
                "expected_assists": 0.0756,
                "duels_won": 2,
                "aerial_won": 1,
                "rating": 7.4,
                "minutes": 27,
                "total_pass": 11,
                "accurate_pass": 8,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 4,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 3.1856,
                "dispossessed": 1.5,
                "duels_lost": 2,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 2,
                "fouls": 1,
                "fouls_drawn": 1,
                "assist_rate": 0.0357,
                "assists": 0,
                "shots_off_target": 0,
                "key_pass": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.1606,
                "offsides": 1,
                "ball_carries": 8,
                "total_progression": 20,
                "progressive_carries": 2,
                "bench_appearance_probability": 0.627,
                "bench_expected_minutes": 26.79,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.618,
                "projected_substitution_game_state_adjustment": -1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.1181,
                "projected_assists": 0,
                "assist_probability": 0.0457,
                "finishing_factor": 0.8,
                "creation_factor": 0.9533,
                "fifa_overall": 84.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 2,
                "assists_allocated": 0,
                "assist_probability": 0.0457,
                "provider_weight": 0.0452,
                "squad_weight_total": 2.5484,
                "weight_share": 0.0177,
                "creation_factor": 0.9533,
                "appearance_weight": 0.627,
                "weight_rank": 10,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Trent Alexander-Arnold",
                    "weight": 0.524,
                    "already": 0,
                    "effective_weight": 0.524,
                    "runner_up": "Kylian Mbappé",
                    "runner_up_effective_weight": 0.4996
                  },
                  {
                    "n": 2,
                    "player": "Kylian Mbappé",
                    "weight": 0.4996,
                    "already": 0,
                    "effective_weight": 0.4996,
                    "runner_up": "Arda Güler",
                    "runner_up_effective_weight": 0.3574
                  }
                ]
              }
            }
          ]
        },
        "Endrick": {
          "player_id": 1174937,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 9,
          "height": 173,
          "market_value": 42000000,
          "stats": {
            "expected_goals": 0.1257,
            "goal_rate": 0.0446,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 0,
            "expected_assists": 0.0116,
            "key_pass": 0,
            "rating": 6.6065,
            "minutes": 27,
            "total_pass": 0,
            "accurate_pass": 0,
            "duels_won": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 0,
            "accurate_opp_half_passes": 0,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 1,
            "possession_lost": 0.3225,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assist_rate": 0.0,
            "assists": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "offsides": 0,
            "ball_carries": 0,
            "total_progression": 0,
            "progressive_carries": 0,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.622,
            "bench_expected_minutes": 26.69,
            "projected_substitution_order": 2,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.618,
            "projected_substitution_game_state_adjustment": -1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0735,
            "projected_assists": 0,
            "assist_probability": 0.0072,
            "finishing_factor": 0.8127,
            "creation_factor": 0.8913,
            "fifa_overall": 79.0
          },
          "latest_10_games": [
            {
              "match_id": 16416342.0,
              "match_date": "2026-09-15",
              "home_team": "Elche",
              "away_team": "Real Madrid",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Madrid",
              "opponent": "Elche",
              "stats": {
                "minutes": 10,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1472,
                "total_shots": 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": 2280,
            "combined_rank_score": 833.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 698.0,
            "sofascore_rating": 6.7,
            "sofascore_appearances": 1.0,
            "fifa_rank": 968.0,
            "fifa_overall": 79.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 18,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.6065,
            "source_file": "data/player_rankings.csv",
            "player_name": "Endrick",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Shahzod Akramov",
                  "ranking": 2275
                },
                {
                  "player_name": "Yves Bissouma",
                  "ranking": 2276
                },
                {
                  "player_name": "Nuriddin  Nuriddinov",
                  "ranking": 2277
                },
                {
                  "player_name": "Kim Min-Ho",
                  "ranking": 2278
                },
                {
                  "player_name": "Manuel Ugarte",
                  "ranking": 2279
                }
              ],
              "lower": [
                {
                  "player_name": "Javi Puado",
                  "ranking": 2281
                },
                {
                  "player_name": "Bekhruz Jumatov",
                  "ranking": 2282
                },
                {
                  "player_name": "Odilon Kossounou",
                  "ranking": 2283
                },
                {
                  "player_name": "Lennart Karl",
                  "ranking": 2284
                },
                {
                  "player_name": "André",
                  "ranking": 2285
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.312,
          "history_matches": 1,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "F_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "onTargetScoringAttempt",
              "shotOffTarget",
              "bigChanceMissed",
              "expectedAssists",
              "keyPass",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "touches",
              "dispossessed",
              "wasFouled",
              "topSpeed",
              "numberOfSprints",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "shot_accuracy",
              "xg_per_shot",
              "touches_p90",
              "totalShots_p90",
              "duelWon_p90",
              "ballCarriesCount_p90",
              "big_chance_conversion",
              "shot_waste_rate",
              "aerial_dominance",
              "press_resistance_fwd",
              "speed_threat",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 1,
            "data_confidence": 0.312,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 26.691976588065373,
            "bench_appearance_prob": 0.6223625721847896,
            "market_value_adjustment": 1.0873,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost F_service (1 historical appearances) to 26.7 expected mins (appearance prob 0.62)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.2061,
                "goal_rate": 0.1382,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0189,
                "key_pass": 0,
                "rating": 6.6065,
                "minutes": 10,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 2,
                "possession_lost": 1.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:02:15.441175+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 325,
                    "rows": 6303
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-15",
                    "opponent": "Elche",
                    "minutes": 10.0,
                    "is_starting": true,
                    "weight": 1.0,
                    "rating": 6.4
                  }
                ],
                "feature_row": {
                  "history_matches": 1.0,
                  "is_starting_11": 0.0,
                  "onTargetScoringAttempt": 0.0,
                  "totalShots": 1.0,
                  "minutesPlayed": 10.0,
                  "shotValueNormalized": -0.26,
                  "accuratePass": 0.0,
                  "expectedAssists": 0.0
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.20605352520942688,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0826
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0724
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.048
                      },
                      {
                        "name": "touches_p90",
                        "importance": 0.0379
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0352
                      }
                    ],
                    "decomposition": {
                      "base": 0.3626,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0584
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": 0.0451
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0356
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0226
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0185
                        }
                      ],
                      "others": -0.0665,
                      "total": 0.2061,
                      "log_link": true,
                      "margin_base": -1.014464,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.17577
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": 0.138146
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.107628
                        },
                        {
                          "name": "is_starting_11",
                          "margin": -0.074943
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.065586
                        }
                      ],
                      "others_margin": -0.279374
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.13820607960224152,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1258
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0801
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "bigChanceMissed",
                        "importance": 0.0323
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0265
                      }
                    ],
                    "decomposition": {
                      "base": 0.2866,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0397
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0273
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0232
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0106
                        },
                        {
                          "name": "history_matches",
                          "contribution": -0.0086
                        }
                      ],
                      "others": -0.039,
                      "total": 0.1382,
                      "log_link": true,
                      "margin_base": -1.249595,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.148981
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.116935
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.111601
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.055551
                        },
                        {
                          "name": "history_matches",
                          "margin": -0.047383
                        }
                      ],
                      "others_margin": -0.248963
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.15333177149295807,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1486
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0633
                      },
                      {
                        "name": "shot_accuracy",
                        "importance": 0.0618
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0343
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 0.5888,
                      "items": [
                        {
                          "name": "shot_accuracy",
                          "contribution": -0.1992
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.1223
                        },
                        {
                          "name": "history_matches",
                          "contribution": -0.052
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0232
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.0081
                        }
                      ],
                      "others": -0.0307,
                      "total": 0.1533,
                      "log_link": true,
                      "margin_base": -0.52966,
                      "item_margins": [
                        {
                          "name": "shot_accuracy",
                          "margin": -0.412977
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.376592
                        },
                        {
                          "name": "history_matches",
                          "margin": -0.216185
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.114083
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.043172
                        }
                      ],
                      "others_margin": -0.182481
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.9582808613777161,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.1122
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0872
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0825
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.074
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0566
                      }
                    ],
                    "decomposition": {
                      "base": 1.4352,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.1752
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.1521
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": 0.0993
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": 0.0776
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0601
                        }
                      ],
                      "others": -0.2664,
                      "total": 0.9583,
                      "log_link": false,
                      "margin_base": 1.435195,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.175238
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.152051
                        },
                        {
                          "name": "totalShots_p90",
                          "margin": 0.099337
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": 0.077625
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.060108
                        }
                      ],
                      "others_margin": -0.266479
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.018887139856815338,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.1197
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0571
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0459
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0451
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0369
                      }
                    ],
                    "decomposition": {
                      "base": 0.06,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0274
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0063
                        },
                        {
                          "name": "history_matches",
                          "contribution": -0.0038
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": 0.0031
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0017
                        }
                      ],
                      "others": -0.005,
                      "total": 0.0189,
                      "log_link": true,
                      "margin_base": -2.812623,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": -0.609999
                        },
                        {
                          "name": "totalPass",
                          "margin": -0.215965
                        },
                        {
                          "name": "history_matches",
                          "margin": -0.15554
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": 0.129499
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.068021
                        }
                      ],
                      "others_margin": -0.236624
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.23895807564258575,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "accuratePass",
                        "importance": 0.1105
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0916
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0476
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0444
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0409
                      }
                    ],
                    "decomposition": {
                      "base": 0.6782,
                      "items": [
                        {
                          "name": "keyPass",
                          "contribution": -0.2944
                        },
                        {
                          "name": "history_matches",
                          "contribution": -0.0468
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0253
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0216
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0094
                        }
                      ],
                      "others": -0.0417,
                      "total": 0.239,
                      "log_link": true,
                      "margin_base": -0.388283,
                      "item_margins": [
                        {
                          "name": "keyPass",
                          "margin": -0.569387
                        },
                        {
                          "name": "history_matches",
                          "margin": -0.130146
                        },
                        {
                          "name": "is_starting_11",
                          "margin": -0.07813
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.071783
                        },
                        {
                          "name": "totalPass",
                          "margin": -0.033111
                        }
                      ],
                      "others_margin": -0.160626
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.606464385986328,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0847
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0724
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0628
                      },
                      {
                        "name": "dispossessed",
                        "importance": 0.0551
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0438
                      }
                    ],
                    "decomposition": {
                      "base": 6.815,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0445
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0388
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0289
                        },
                        {
                          "name": "shot_accuracy",
                          "contribution": -0.0163
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0111
                        }
                      ],
                      "others": -0.0689,
                      "total": 6.6065,
                      "log_link": false,
                      "margin_base": 6.814961,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.044484
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.038795
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.028947
                        },
                        {
                          "name": "shot_accuracy",
                          "margin": -0.016306
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.011062
                        }
                      ],
                      "others_margin": -0.068902
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0873, quality 0.791)",
              "stats": {
                "expected_goals": 0.224,
                "goal_rate": 0.1503,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0205,
                "key_pass": 0,
                "rating": 6.6065,
                "minutes": 10,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 2,
                "possession_lost": 1.0873,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 42000000,
                "quality_factor": 0.7909,
                "boost_factor": 1.0873
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 26.7 expected minutes (appearance prob 0.62)",
              "stats": {
                "expected_goals": 0.0664,
                "goal_rate": 0.0446,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0061,
                "key_pass": 0,
                "rating": 6.6065,
                "minutes": 27,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 1,
                "possession_lost": 0.3225,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.622,
                "bench_expected_minutes": 26.69
              },
              "params": {
                "expected_minutes": 26.69,
                "appearance_probability": 0.622
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0664,
                "goal_rate": 0.0446,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0061,
                "key_pass": 0,
                "rating": 6.6065,
                "minutes": 27,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 1,
                "possession_lost": 0.3225,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.622,
                "bench_expected_minutes": 26.69
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.54 (squad xG sum 1.8684, xG scale 1.8936, xA scale 1.8936, team xA 2.35 = 0.66 x lambda)",
              "stats": {
                "expected_goals": 0.1257,
                "goal_rate": 0.0446,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0116,
                "key_pass": 0,
                "rating": 6.6065,
                "minutes": 27,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 1,
                "possession_lost": 0.3225,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.622,
                "bench_expected_minutes": 26.69,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.618,
                "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.8127,
                "creation_factor": 0.8913
              },
              "params": {
                "team_lambda": 3.538,
                "squad_xg_sum": 1.8684,
                "squad_xa_sum": 1.2396,
                "team_expected_assists": 2.3473,
                "team_xa_to_xg_ratio": 0.6635,
                "bench_appearance_weighted": true,
                "xg_scale": 1.8936,
                "xa_scale": 1.8936,
                "opponent_lambda": 1.348,
                "scoreline_reset": true,
                "appearance_weight": 0.622
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0664,
                  "after": 0.1257
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0061,
                  "after": 0.0116
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 18 by projected rating, fifa_overall 79.0; not used by the projection)",
              "stats": {
                "expected_goals": 0.1257,
                "goal_rate": 0.0446,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0116,
                "key_pass": 0,
                "rating": 6.6065,
                "minutes": 27,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 1,
                "possession_lost": 0.3225,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.622,
                "bench_expected_minutes": 26.69,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.618,
                "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.8127,
                "creation_factor": 0.8913,
                "fifa_overall": 79.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": 2280,
                "fifa_rank": 968.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 79.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "expected_goals": 0.1257,
                "goal_rate": 0.0446,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0116,
                "key_pass": 0,
                "rating": 6.6065,
                "minutes": 27,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 1,
                "possession_lost": 0.3225,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.622,
                "bench_expected_minutes": 26.69,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.618,
                "projected_substitution_game_state_adjustment": -1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0735,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8127,
                "creation_factor": 0.8913,
                "fifa_overall": 79.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 0,
                "goal_probability": 0.0735,
                "scorer_weight": 0.0635,
                "squad_weight_total": 3.5857,
                "weight_share": 0.0177,
                "finishing_factor": 0.8127,
                "appearance_weight": 0.622,
                "weight_rank": 9,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Kylian Mbappé",
                    "weight": 1.2537,
                    "already": 0,
                    "effective_weight": 1.2537,
                    "runner_up": "Jude Bellingham",
                    "runner_up_effective_weight": 0.5657
                  },
                  {
                    "n": 2,
                    "player": "Jude Bellingham",
                    "weight": 0.5657,
                    "already": 0,
                    "effective_weight": 0.5657,
                    "runner_up": "Vinícius Júnior",
                    "runner_up_effective_weight": 0.5343
                  },
                  {
                    "n": 3,
                    "player": "Vinícius Júnior",
                    "weight": 0.5343,
                    "already": 0,
                    "effective_weight": 0.5343,
                    "runner_up": "Kylian Mbappé",
                    "runner_up_effective_weight": 0.5335
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "expected_goals": 0.1257,
                "goal_rate": 0.0446,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0116,
                "key_pass": 0,
                "rating": 6.6065,
                "minutes": 27,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 1,
                "possession_lost": 0.3225,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.622,
                "bench_expected_minutes": 26.69,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.618,
                "projected_substitution_game_state_adjustment": -1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0735,
                "projected_assists": 0,
                "assist_probability": 0.0072,
                "finishing_factor": 0.8127,
                "creation_factor": 0.8913,
                "fifa_overall": 79.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 2,
                "assists_allocated": 0,
                "assist_probability": 0.0072,
                "provider_weight": 0.0064,
                "squad_weight_total": 2.5484,
                "weight_share": 0.0025,
                "creation_factor": 0.8913,
                "appearance_weight": 0.622,
                "weight_rank": 12,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Trent Alexander-Arnold",
                    "weight": 0.524,
                    "already": 0,
                    "effective_weight": 0.524,
                    "runner_up": "Kylian Mbappé",
                    "runner_up_effective_weight": 0.4996
                  },
                  {
                    "n": 2,
                    "player": "Kylian Mbappé",
                    "weight": 0.4996,
                    "already": 0,
                    "effective_weight": 0.4996,
                    "runner_up": "Arda Güler",
                    "runner_up_effective_weight": 0.3574
                  }
                ]
              }
            }
          ]
        }
      },
      "team_totals": {
        "projected_goals": 3,
        "expected_goals": 3.54,
        "expected_assists": 2.35,
        "total_shots": 17,
        "shots_on_target": 5,
        "total_passes": 438,
        "interceptions": 3,
        "tackles": 5,
        "avg_rating": 6.98,
        "possession_estimated_pct": 51.6,
        "pressing_actions_per_90": 8.6
      }
    },
    "Villarreal": {
      "formation": "5-4-1",
      "players": {
        "Luiz Júnior": {
          "player_id": 1066603,
          "position": "G",
          "position_depth": "G",
          "is_starter": true,
          "shirt_number": 1,
          "height": 192,
          "market_value": 12400000,
          "stats": {
            "saves": 2,
            "goals_prevented": -0.6498,
            "rating": 6.3993,
            "minutes": 90,
            "total_pass": 21,
            "accurate_pass": 19,
            "duels_won": 0,
            "total_long_balls": 4,
            "accurate_long_balls": 0,
            "touches": 27,
            "clearances": 0,
            "ball_recovery": 6,
            "high_claims": 0,
            "punches": 0.0,
            "aerial_won": 0,
            "sweeper_actions": 2,
            "sweeper_accurate": 2,
            "saves_inside_box": 0,
            "possession_lost": 2.0301,
            "duels_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "total_own_half_passes": 20,
            "accurate_own_half_passes": 19,
            "gk_engine_opponent_lambda": 3.3692,
            "shots_faced": 33.6,
            "expected_saves": 8.22,
            "high_pressure_saves": 2.83,
            "opponent_faced": "Kylian Mbappé, Vinícius Júnior",
            "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": 78.0
          },
          "latest_10_games": [
            {
              "match_id": 16416324.0,
              "match_date": "2026-09-05",
              "home_team": "Villarreal",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 90,
                "rating": 5.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0001,
                "total_shots": 0,
                "total_pass": 19,
                "accurate_pass": 15,
                "ball_recovery": 4,
                "goals_prevented": -1.7728
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416290.0,
              "match_date": "2026-08-28",
              "home_team": "Deportivo Alavés",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0002,
                "total_shots": 0,
                "total_pass": 19,
                "accurate_pass": 18,
                "clearances": 2,
                "ball_recovery": 8,
                "saves": 1,
                "goals_prevented": -0.2317
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416302.0,
              "match_date": "2026-08-23",
              "home_team": "Atlético Madrid",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 90,
                "rating": 6.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0001,
                "total_shots": 0,
                "total_pass": 26,
                "accurate_pass": 25,
                "ball_recovery": 5,
                "saves": 2,
                "goals_prevented": -1.1323
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421061.0,
              "match_date": "2026-08-16",
              "home_team": "Real Racing Club",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 90,
                "rating": 5.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0001,
                "total_shots": 0,
                "total_pass": 20,
                "accurate_pass": 18,
                "ball_recovery": 6,
                "saves": 3,
                "goals_prevented": -0.6088
              },
              "has_player_stats": true,
              "league_name": "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": 2073,
            "combined_rank_score": 790.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 339.0,
            "sofascore_rating": 6.9929,
            "sofascore_appearances": 28.0,
            "fifa_rank": 1241.0,
            "fifa_overall": 78.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 18,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.3993,
            "source_file": "data/player_rankings.csv",
            "player_name": "Luiz Júnior",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Kim Jong-Seok",
                  "ranking": 2068
                },
                {
                  "player_name": "Ariel Cáceres",
                  "ranking": 2069
                },
                {
                  "player_name": "Lucas Zelarayán",
                  "ranking": 2070
                },
                {
                  "player_name": "Šime Gržan",
                  "ranking": 2071
                },
                {
                  "player_name": "Kaku",
                  "ranking": 2072
                }
              ],
              "lower": [
                {
                  "player_name": "Maximiliano Rodríguez",
                  "ranking": 2074
                },
                {
                  "player_name": "Abbos Gulomov",
                  "ranking": 2075
                },
                {
                  "player_name": "Chan-dong Lee",
                  "ranking": 2076
                },
                {
                  "player_name": "Leonardo Spinazzola",
                  "ranking": 2077
                },
                {
                  "player_name": "Toni Martínez",
                  "ranking": 2078
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.5,
          "history_matches": 4,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "G_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "accurateLongBalls",
              "totalOwnHalfPasses",
              "accurateOwnHalfPasses",
              "saves",
              "savedShotsFromInsideTheBox",
              "goodHighClaim",
              "punches",
              "aerialWon",
              "totalKeeperSweeper",
              "accurateKeeperSweeper",
              "totalClearance",
              "ballRecovery",
              "touches",
              "possessionLostCtrl",
              "kilometersCovered",
              "passValueNormalized",
              "defensiveValueNormalized",
              "goalkeeperValueNormalized",
              "pass_accuracy",
              "long_ball_accuracy",
              "save_contribution",
              "inside_box_save_rate",
              "sweeper_accuracy",
              "sweeper_actions_p90",
              "distribution_accuracy",
              "commanding_index",
              "gk_coverage",
              "history_matches"
            ],
            "targets_predicted": [
              "saves",
              "goalsPrevented",
              "rating"
            ],
            "history_matches": 4,
            "data_confidence": 0.5,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 1.0151,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (G_service) evaluated 4 historical appearances across 3 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost G_service raw output over 3 target models",
              "stats": {
                "saves": 2,
                "goals_prevented": -0.6402,
                "rating": 6.3993,
                "minutes": 90,
                "total_pass": 21,
                "accurate_pass": 19,
                "duels_won": 0,
                "total_long_balls": 4,
                "accurate_long_balls": 0,
                "touches": 26,
                "clearances": 0,
                "ball_recovery": 6,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 2,
                "sweeper_accurate": 2,
                "saves_inside_box": 0,
                "possession_lost": 2.0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 19,
                "accurate_own_half_passes": 19
              },
              "trace": {
                "model": {
                  "position_service": "G",
                  "schema_version": 4,
                  "trained_at": "2026-09-29T10:01:45.250339+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 135,
                    "rows": 3738
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3138,
                    "rating": 5.3
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Deportivo Alavés",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2667,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Atlético Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2267,
                    "rating": 6.1
                  },
                  {
                    "match_date": "2026-08-16",
                    "opponent": "Real Racing Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1927,
                    "rating": 5.9
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 1.0,
                  "save_contribution": 0.3062,
                  "goalkeeperValueNormalized": -0.5413,
                  "sweeper_actions_p90": 1.6522,
                  "possessionLostCtrl": 2.1342,
                  "accurateKeeperSweeper": 1.4595,
                  "accurateLongBalls": 1.4665
                },
                "per_target": [
                  {
                    "target": "saves",
                    "predicted": 1.9990650415420532,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "save_contribution",
                        "importance": 0.0645
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0523
                      },
                      {
                        "name": "saves",
                        "importance": 0.0514
                      },
                      {
                        "name": "accurateLongBalls",
                        "importance": 0.0475
                      },
                      {
                        "name": "goalkeeperValueNormalized",
                        "importance": 0.0445
                      }
                    ],
                    "decomposition": {
                      "base": 2.9861,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.6054
                        },
                        {
                          "name": "saves",
                          "contribution": -0.1648
                        },
                        {
                          "name": "save_contribution",
                          "contribution": -0.1495
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.0254
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0248
                        }
                      ],
                      "others": -0.0667,
                      "total": 1.9991,
                      "log_link": true,
                      "margin_base": 1.093963,
                      "item_margins": [
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.226567
                        },
                        {
                          "name": "saves",
                          "margin": -0.071743
                        },
                        {
                          "name": "save_contribution",
                          "margin": -0.069864
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": -0.012362
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.012089
                        }
                      ],
                      "others_margin": -0.032837
                    }
                  },
                  {
                    "target": "goalsPrevented",
                    "predicted": -0.6401532292366028,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "save_contribution",
                        "importance": 0.0582
                      },
                      {
                        "name": "punches",
                        "importance": 0.0515
                      },
                      {
                        "name": "goalkeeperValueNormalized",
                        "importance": 0.051
                      },
                      {
                        "name": "sweeper_actions_p90",
                        "importance": 0.0478
                      },
                      {
                        "name": "touches",
                        "importance": 0.043
                      }
                    ],
                    "decomposition": {
                      "base": -0.0455,
                      "items": [
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.0928
                        },
                        {
                          "name": "touches",
                          "contribution": -0.0863
                        },
                        {
                          "name": "accurateLongBalls",
                          "contribution": -0.0733
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0716
                        },
                        {
                          "name": "sweeper_actions_p90",
                          "contribution": 0.0677
                        }
                      ],
                      "others": -0.3384,
                      "total": -0.6402,
                      "log_link": false,
                      "margin_base": -0.045465,
                      "item_margins": [
                        {
                          "name": "totalLongBalls",
                          "margin": -0.092762
                        },
                        {
                          "name": "touches",
                          "margin": -0.086269
                        },
                        {
                          "name": "accurateLongBalls",
                          "margin": -0.073309
                        },
                        {
                          "name": "totalPass",
                          "margin": -0.071627
                        },
                        {
                          "name": "sweeper_actions_p90",
                          "margin": 0.067662
                        }
                      ],
                      "others_margin": -0.338382
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.399294376373291,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "save_contribution",
                        "importance": 0.075
                      },
                      {
                        "name": "sweeper_actions_p90",
                        "importance": 0.0537
                      },
                      {
                        "name": "goalkeeperValueNormalized",
                        "importance": 0.0529
                      },
                      {
                        "name": "accurateKeeperSweeper",
                        "importance": 0.0478
                      },
                      {
                        "name": "pass_accuracy",
                        "importance": 0.0409
                      }
                    ],
                    "decomposition": {
                      "base": 7.0878,
                      "items": [
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.135
                        },
                        {
                          "name": "save_contribution",
                          "contribution": -0.1224
                        },
                        {
                          "name": "goalkeeperValueNormalized",
                          "contribution": -0.1111
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.1058
                        },
                        {
                          "name": "sweeper_actions_p90",
                          "contribution": 0.0598
                        }
                      ],
                      "others": -0.274,
                      "total": 6.3993,
                      "log_link": false,
                      "margin_base": 7.087778,
                      "item_margins": [
                        {
                          "name": "totalLongBalls",
                          "margin": -0.134968
                        },
                        {
                          "name": "save_contribution",
                          "margin": -0.122394
                        },
                        {
                          "name": "goalkeeperValueNormalized",
                          "margin": -0.111052
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.105768
                        },
                        {
                          "name": "sweeper_actions_p90",
                          "margin": 0.059838
                        }
                      ],
                      "others_margin": -0.274139
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0151, quality 0.550)",
              "stats": {
                "saves": 2,
                "goals_prevented": -0.6498,
                "rating": 6.3993,
                "minutes": 90,
                "total_pass": 21,
                "accurate_pass": 19,
                "duels_won": 0,
                "total_long_balls": 4,
                "accurate_long_balls": 0,
                "touches": 27,
                "clearances": 0,
                "ball_recovery": 6,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 2,
                "sweeper_accurate": 2,
                "saves_inside_box": 0,
                "possession_lost": 2.0301,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 20,
                "accurate_own_half_passes": 19
              },
              "params": {
                "market_value_eur": 12400000,
                "quality_factor": 0.5502,
                "boost_factor": 1.0151
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "saves": 2,
                "goals_prevented": -0.6498,
                "rating": 6.3993,
                "minutes": 90,
                "total_pass": 21,
                "accurate_pass": 19,
                "duels_won": 0,
                "total_long_balls": 4,
                "accurate_long_balls": 0,
                "touches": 27,
                "clearances": 0,
                "ball_recovery": 6,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 2,
                "sweeper_accurate": 2,
                "saves_inside_box": 0,
                "possession_lost": 2.0301,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 20,
                "accurate_own_half_passes": 19
              },
              "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,
                "goals_prevented": -0.6498,
                "rating": 6.3993,
                "minutes": 90,
                "total_pass": 21,
                "accurate_pass": 19,
                "duels_won": 0,
                "total_long_balls": 4,
                "accurate_long_balls": 0,
                "touches": 27,
                "clearances": 0,
                "ball_recovery": 6,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 2,
                "sweeper_accurate": 2,
                "saves_inside_box": 0,
                "possession_lost": 2.0301,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 20,
                "accurate_own_half_passes": 19,
                "gk_engine_opponent_lambda": 3.3692,
                "shots_faced": 32.0,
                "expected_saves": 7.83,
                "high_pressure_saves": 2.7,
                "opponent_faced": "Kylian Mbappé, Vinícius Júnior",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Kylian Mbappé, Vinícius Júnior",
                  "matchup_zone": "Goalkeeper shot-stopping context",
                  "opponent_lambda": 3.3692
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.35 (squad xG sum 1.1115, xG scale 1.2128, xA scale 0.9580, team xA 1.08 = 0.80 x lambda)",
              "stats": {
                "saves": 2,
                "goals_prevented": -0.6498,
                "rating": 6.3993,
                "minutes": 90,
                "total_pass": 21,
                "accurate_pass": 19,
                "duels_won": 0,
                "total_long_balls": 4,
                "accurate_long_balls": 0,
                "touches": 27,
                "clearances": 0,
                "ball_recovery": 6,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 2,
                "sweeper_accurate": 2,
                "saves_inside_box": 0,
                "possession_lost": 2.0301,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 20,
                "accurate_own_half_passes": 19,
                "gk_engine_opponent_lambda": 3.3692,
                "shots_faced": 33.6,
                "expected_saves": 8.22,
                "high_pressure_saves": 2.83,
                "opponent_faced": "Kylian Mbappé, Vinícius Júnior",
                "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.348,
                "squad_xg_sum": 1.1115,
                "squad_xa_sum": 1.1257,
                "team_expected_assists": 1.0784,
                "team_xa_to_xg_ratio": 0.8,
                "bench_appearance_weighted": true,
                "xg_scale": 1.2128,
                "xa_scale": 0.958,
                "opponent_lambda": 3.538,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "shots_faced",
                  "before": 32.0,
                  "after": 33.6
                },
                {
                  "stat": "expected_saves",
                  "before": 7.83,
                  "after": 8.22
                },
                {
                  "stat": "high_pressure_saves",
                  "before": 2.7,
                  "after": 2.83
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 18 by projected rating, fifa_overall 78.0; not used by the projection)",
              "stats": {
                "saves": 2,
                "goals_prevented": -0.6498,
                "rating": 6.3993,
                "minutes": 90,
                "total_pass": 21,
                "accurate_pass": 19,
                "duels_won": 0,
                "total_long_balls": 4,
                "accurate_long_balls": 0,
                "touches": 27,
                "clearances": 0,
                "ball_recovery": 6,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 2,
                "sweeper_accurate": 2,
                "saves_inside_box": 0,
                "possession_lost": 2.0301,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 20,
                "accurate_own_half_passes": 19,
                "gk_engine_opponent_lambda": 3.3692,
                "shots_faced": 33.6,
                "expected_saves": 8.22,
                "high_pressure_saves": 2.83,
                "opponent_faced": "Kylian Mbappé, Vinícius Júnior",
                "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": 78.0
              },
              "params": {
                "match_squad_rank": 18,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 2073,
                "fifa_rank": 1241.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": {
                "saves": 2,
                "goals_prevented": -0.6498,
                "rating": 6.3993,
                "minutes": 90,
                "total_pass": 21,
                "accurate_pass": 19,
                "duels_won": 0,
                "total_long_balls": 4,
                "accurate_long_balls": 0,
                "touches": 27,
                "clearances": 0,
                "ball_recovery": 6,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 2,
                "sweeper_accurate": 2,
                "saves_inside_box": 0,
                "possession_lost": 2.0301,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 20,
                "accurate_own_half_passes": 19,
                "gk_engine_opponent_lambda": 3.3692,
                "shots_faced": 33.6,
                "expected_saves": 8.22,
                "high_pressure_saves": 2.83,
                "opponent_faced": "Kylian Mbappé, Vinícius Júnior",
                "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": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 0.0,
                "squad_weight_total": 1.3104,
                "weight_share": 0.0,
                "finishing_factor": 1.0,
                "appearance_weight": 1.0,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Georges Mikautadze",
                    "weight": 0.3558,
                    "already": 0,
                    "effective_weight": 0.3558,
                    "runner_up": "Alberto Moleiro",
                    "runner_up_effective_weight": 0.3304
                  }
                ]
              }
            },
            {
              "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,
                "goals_prevented": -0.6498,
                "rating": 6.3993,
                "minutes": 90,
                "total_pass": 21,
                "accurate_pass": 19,
                "duels_won": 0,
                "total_long_balls": 4,
                "accurate_long_balls": 0,
                "touches": 27,
                "clearances": 0,
                "ball_recovery": 6,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 2,
                "sweeper_accurate": 2,
                "saves_inside_box": 0,
                "possession_lost": 2.0301,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 20,
                "accurate_own_half_passes": 19,
                "gk_engine_opponent_lambda": 3.3692,
                "shots_faced": 33.6,
                "expected_saves": 8.22,
                "high_pressure_saves": 2.83,
                "opponent_faced": "Kylian Mbappé, Vinícius Júnior",
                "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": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0,
                "provider_weight": 0.0,
                "squad_weight_total": 1.0247,
                "weight_share": 0.0,
                "creation_factor": 1.0,
                "appearance_weight": 1.0,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Alberto Moleiro",
                    "weight": 0.2034,
                    "already": 0,
                    "effective_weight": 0.2034,
                    "runner_up": "Ilias Akhomach",
                    "runner_up_effective_weight": 0.1848,
                    "blocked_own_goal": [
                      "Georges Mikautadze"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Renato Veiga": {
          "player_id": 1087359,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 12,
          "height": 190,
          "market_value": 29000000,
          "stats": {
            "interceptions": 1,
            "tackles": 1,
            "tackles_won": 1,
            "clearances": 5,
            "aerial_won": 1,
            "total_shots": 1,
            "rating": 7.0736,
            "minutes": 90,
            "total_pass": 91,
            "accurate_pass": 85,
            "duels_won": 2,
            "total_long_balls": 9,
            "accurate_long_balls": 5,
            "total_own_half_passes": 52,
            "accurate_own_half_passes": 51,
            "total_opp_half_passes": 39,
            "accurate_opp_half_passes": 34,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 106,
            "possession_lost": 8.8123,
            "dispossessed": 0.0,
            "duels_lost": 3,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 4,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assist_rate": 0.1407,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.1324,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 37,
            "total_progression": 136,
            "progressive_carries": 1,
            "key_pass": 0,
            "shots_off_target": 1,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 0.0,
            "shotConversion": 0.0,
            "minutesPct": 100.0,
            "pointsPerMatch": 0.67,
            "netGoalDifferencePer90": 0.0,
            "tackles_in_zone": 2.2,
            "tackles_won_in_zone": 1.7,
            "interceptions_in_zone": 1.1,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 1.1,
            "defensive_success_rate": 0.549,
            "opponent_faced": "Vinícius Júnior",
            "pressing_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
            "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
            "antagonist_source": "defensive_duel",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.124,
            "finishing_factor": 1.0,
            "creation_factor": 1.0133,
            "fifa_overall": 78.0
          },
          "latest_10_games": [
            {
              "match_id": 16416294.0,
              "match_date": "2026-09-20",
              "home_team": "Villarreal",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 90,
                "rating": 7.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.2275,
                "total_shots": 0,
                "total_pass": 110,
                "accurate_pass": 106,
                "key_pass": 1,
                "clearances": 5,
                "duels_won": 1,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416338.0,
              "match_date": "2026-09-17",
              "home_team": "Málaga CF",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 90,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0176,
                "expected_assists": 0.0731,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 92,
                "accurate_pass": 82,
                "key_pass": 1,
                "interceptions": 1,
                "clearances": 3,
                "aerial_won": 2,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416333.0,
              "match_date": "2026-09-14",
              "home_team": "Villarreal",
              "away_team": "Real Betis",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 90,
                "rating": 7.9,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_assists": 0.3191,
                "total_shots": 0,
                "total_pass": 91,
                "accurate_pass": 84,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 5,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416324.0,
              "match_date": "2026-09-05",
              "home_team": "Villarreal",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0209,
                "total_shots": 0,
                "total_pass": 78,
                "accurate_pass": 74,
                "interceptions": 3,
                "clearances": 4,
                "aerial_won": 1,
                "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": 16416290.0,
              "match_date": "2026-08-28",
              "home_team": "Deportivo Alavés",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1297,
                "expected_assists": 0.0324,
                "total_shots": 2,
                "shots_off_target": 2,
                "total_pass": 92,
                "accurate_pass": 84,
                "tackles": 1,
                "interceptions": 1,
                "clearances": 3,
                "aerial_won": 2,
                "duels_won": 4,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416302.0,
              "match_date": "2026-08-23",
              "home_team": "Atlético Madrid",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0087,
                "total_shots": 0,
                "total_pass": 58,
                "accurate_pass": 52,
                "interceptions": 2,
                "clearances": 8,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421061.0,
              "match_date": "2026-08-16",
              "home_team": "Real Racing Club",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.2498,
                "total_shots": 0,
                "total_pass": 80,
                "accurate_pass": 76,
                "interceptions": 2,
                "clearances": 9,
                "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": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 2081,
            "combined_rank_score": 791.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 336.0,
            "sofascore_rating": 7.0,
            "sofascore_appearances": 1.0,
            "fifa_rank": 1247.0,
            "fifa_overall": 78.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 5,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 7.0736,
            "source_file": "data/player_rankings.csv",
            "player_name": "Renato Veiga",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Chan-dong Lee",
                  "ranking": 2076
                },
                {
                  "player_name": "Leonardo Spinazzola",
                  "ranking": 2077
                },
                {
                  "player_name": "Toni Martínez",
                  "ranking": 2078
                },
                {
                  "player_name": "Callum Hudson Odoi",
                  "ranking": 2079
                },
                {
                  "player_name": "Cédric Bakambu",
                  "ranking": 2080
                }
              ],
              "lower": [
                {
                  "player_name": "Shodiyor Shodiboev",
                  "ranking": 2082
                },
                {
                  "player_name": "Matija Rom",
                  "ranking": 2083
                },
                {
                  "player_name": "Franco Rami",
                  "ranking": 2084
                },
                {
                  "player_name": "Jon Aramburu",
                  "ranking": 2085
                },
                {
                  "player_name": "Nikita Haikin",
                  "ranking": 2086
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.718,
          "history_matches": 7,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "D_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "totalOppositionHalfPasses",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "ballRecovery",
              "touches",
              "totalClearance",
              "wonTackle",
              "interceptionWon",
              "dispossessed",
              "challengeLost",
              "errorLeadToAShot",
              "errorLeadToAGoal",
              "possessionLostCtrl",
              "passValueNormalized",
              "defensiveValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "totalShots",
              "rating"
            ],
            "history_matches": 7,
            "data_confidence": 0.718,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.063,
            "fbref_prior_metrics": {
              "squad": "Villarreal",
              "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.67,
              "shots_on_target_pct": 0.0,
              "prior_reliability": 0.2
            },
            "rationale": "XGBoost regressor (D_service) evaluated 7 historical appearances across 7 target models; FBref 2026-2027 prior blended (La Liga, Villarreal, rel: 0.20, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 7 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 7.0736,
                "minutes": 90,
                "total_pass": 86,
                "accurate_pass": 80,
                "duels_won": 2,
                "total_long_balls": 9,
                "accurate_long_balls": 5,
                "total_own_half_passes": 49,
                "accurate_own_half_passes": 48,
                "total_opp_half_passes": 37,
                "accurate_opp_half_passes": 32,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 100,
                "possession_lost": 8.29,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.14,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.13,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 34,
                "total_progression": 128,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:01:55.523250+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 402,
                    "rows": 11400
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Levante UD",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2208,
                    "rating": 7.8
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Málaga CF",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1877,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-09-14",
                    "opponent": "Real Betis",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1595,
                    "rating": 7.9
                  },
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1356,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Deportivo Alavés",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1152,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Atlético Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.098,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-08-16",
                    "opponent": "Real Racing Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0833,
                    "rating": 7.0
                  }
                ],
                "feature_row": {
                  "history_matches": 7.0,
                  "is_starting_11": 1.0,
                  "totalClearance": 4.8855,
                  "defensive_actions": 1.5064,
                  "wonTackle": 0.1595,
                  "totalTackle_p90": 0.2748,
                  "totalClearance_p90": 4.8855,
                  "aerialWon": 1.1654
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 1.129150629043579,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "interceptionWon",
                        "importance": 0.0903
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0858
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.052
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0447
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0364
                      }
                    ],
                    "decomposition": {
                      "base": 0.9034,
                      "items": [
                        {
                          "name": "interceptionWon_p90",
                          "contribution": 0.0937
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": 0.0514
                        },
                        {
                          "name": "totalProgression",
                          "contribution": 0.022
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0127
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0102
                        }
                      ],
                      "others": 0.0562,
                      "total": 1.1292,
                      "log_link": true,
                      "margin_base": -0.101631,
                      "item_margins": [
                        {
                          "name": "interceptionWon_p90",
                          "margin": 0.098694
                        },
                        {
                          "name": "interceptionWon",
                          "margin": 0.05023
                        },
                        {
                          "name": "totalProgression",
                          "margin": 0.020774
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": 0.011814
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.009447
                        }
                      ],
                      "others_margin": 0.051032
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.0935554504394531,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "defensive_actions",
                        "importance": 0.1044
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0863
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0629
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.045
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0342
                      }
                    ],
                    "decomposition": {
                      "base": 1.3313,
                      "items": [
                        {
                          "name": "totalTackle_p90",
                          "contribution": -0.0846
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0574
                        },
                        {
                          "name": "wonTackle",
                          "contribution": -0.0516
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0238
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0195
                        }
                      ],
                      "others": -0.0008,
                      "total": 1.0936,
                      "log_link": true,
                      "margin_base": 0.286166,
                      "item_margins": [
                        {
                          "name": "totalTackle_p90",
                          "margin": -0.065652
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.047138
                        },
                        {
                          "name": "wonTackle",
                          "margin": -0.044384
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.021143
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.017673
                        }
                      ],
                      "others_margin": -0.000743
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.6740688681602478,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "wonTackle",
                        "importance": 0.1003
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0586
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0501
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0492
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0386
                      }
                    ],
                    "decomposition": {
                      "base": 0.8256,
                      "items": [
                        {
                          "name": "wonTackle",
                          "contribution": -0.173
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0271
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0264
                        },
                        {
                          "name": "tackle_success_rate",
                          "contribution": 0.0259
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0249
                        }
                      ],
                      "others": -0.033,
                      "total": 0.6741,
                      "log_link": true,
                      "margin_base": -0.191612,
                      "item_margins": [
                        {
                          "name": "wonTackle",
                          "margin": -0.235096
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": 0.040736
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.038054
                        },
                        {
                          "name": "tackle_success_rate",
                          "margin": 0.036008
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.034619
                        }
                      ],
                      "others_margin": -0.047895
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 4.319649696350098,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalClearance",
                        "importance": 0.138
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0733
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.034
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 3.3876,
                      "items": [
                        {
                          "name": "totalClearance",
                          "contribution": 0.3506
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.174
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": 0.1075
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0915
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0593
                        }
                      ],
                      "others": 0.1492,
                      "total": 4.3197,
                      "log_link": true,
                      "margin_base": 1.220122,
                      "item_margins": [
                        {
                          "name": "totalClearance",
                          "margin": 0.098484
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.045487
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": 0.027098
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.022517
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": 0.014326
                        }
                      ],
                      "others_margin": 0.03514
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 1.3423820734024048,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "aerialWon",
                        "importance": 0.1155
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0659
                      },
                      {
                        "name": "aerial_dominance",
                        "importance": 0.0345
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0335
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0332
                      }
                    ],
                    "decomposition": {
                      "base": 1.2696,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": -0.2099
                        },
                        {
                          "name": "totalClearance",
                          "contribution": 0.1582
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0476
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0482
                        },
                        {
                          "name": "press_vulnerability",
                          "contribution": -0.0334
                        }
                      ],
                      "others": 0.0621,
                      "total": 1.3424,
                      "log_link": true,
                      "margin_base": 0.238719,
                      "item_margins": [
                        {
                          "name": "aerialWon",
                          "margin": -0.18068
                        },
                        {
                          "name": "totalClearance",
                          "margin": 0.139142
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.038309
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.037366
                        },
                        {
                          "name": "press_vulnerability",
                          "margin": -0.02577
                        }
                      ],
                      "others_margin": 0.047361
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.6985105276107788,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0373
                      },
                      {
                        "name": "long_ball_accuracy",
                        "importance": 0.0337
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0333
                      },
                      {
                        "name": "errorLeadToAGoal",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0306
                      }
                    ],
                    "decomposition": {
                      "base": 0.476,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0987
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.0399
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0308
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": 0.0251
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.02
                        }
                      ],
                      "others": 0.008,
                      "total": 0.6985,
                      "log_link": false,
                      "margin_base": 0.476045,
                      "item_margins": [
                        {
                          "name": "passValueNormalized",
                          "margin": 0.098664
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.039887
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": 0.030822
                        },
                        {
                          "name": "duelWon_p90",
                          "margin": 0.02513
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.020033
                        }
                      ],
                      "others_margin": 0.00793
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 7.073572158813477,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0639
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0627
                      },
                      {
                        "name": "defensiveValueNormalized",
                        "importance": 0.0466
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0352
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 6.7578,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.1259
                        },
                        {
                          "name": "touches",
                          "contribution": 0.0542
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0398
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0267
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": -0.024
                        }
                      ],
                      "others": 0.0932,
                      "total": 7.0736,
                      "log_link": false,
                      "margin_base": 6.757789,
                      "item_margins": [
                        {
                          "name": "passValueNormalized",
                          "margin": 0.12593
                        },
                        {
                          "name": "touches",
                          "margin": 0.054167
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.039813
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": 0.026738
                        },
                        {
                          "name": "duelWon_p90",
                          "margin": -0.024026
                        }
                      ],
                      "others_margin": 0.093162
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0630, quality 0.710)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 7.0736,
                "minutes": 90,
                "total_pass": 91,
                "accurate_pass": 85,
                "duels_won": 2,
                "total_long_balls": 9,
                "accurate_long_balls": 5,
                "total_own_half_passes": 52,
                "accurate_own_half_passes": 51,
                "total_opp_half_passes": 39,
                "accurate_opp_half_passes": 34,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 106,
                "possession_lost": 8.8123,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.1488,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.1382,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 37,
                "total_progression": 136,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 29000000,
                "quality_factor": 0.71,
                "boost_factor": 1.063
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0542)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 7.0736,
                "minutes": 90,
                "total_pass": 91,
                "accurate_pass": 85,
                "duels_won": 2,
                "total_long_balls": 9,
                "accurate_long_balls": 5,
                "total_own_half_passes": 52,
                "accurate_own_half_passes": 51,
                "total_opp_half_passes": 39,
                "accurate_opp_half_passes": 34,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 106,
                "possession_lost": 8.8123,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.1407,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.1382,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 37,
                "total_progression": 136,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": -0.33
              },
              "params": {
                "blend_weight": 0.0542,
                "history_matches": 7,
                "prior_reliability": 0.2,
                "competition": "La Liga",
                "squad": "Villarreal"
              },
              "changes": [
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0542
                },
                {
                  "stat": "wonTackle",
                  "before": 0.7165,
                  "after": 0.6777
                },
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.0181
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0181
                },
                {
                  "stat": "goalAssist",
                  "before": 0.1488,
                  "after": 0.1407
                },
                {
                  "stat": "interceptionWon",
                  "before": 1.2003,
                  "after": 1.2075
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 7.0736,
                "minutes": 90,
                "total_pass": 91,
                "accurate_pass": 85,
                "duels_won": 2,
                "total_long_balls": 9,
                "accurate_long_balls": 5,
                "total_own_half_passes": 52,
                "accurate_own_half_passes": 51,
                "total_opp_half_passes": 39,
                "accurate_opp_half_passes": 34,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 106,
                "possession_lost": 8.8123,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.1407,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.1382,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 37,
                "total_progression": 136,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 7.0736,
                "minutes": 90,
                "total_pass": 91,
                "accurate_pass": 85,
                "duels_won": 2,
                "total_long_balls": 9,
                "accurate_long_balls": 5,
                "total_own_half_passes": 52,
                "accurate_own_half_passes": 51,
                "total_opp_half_passes": 39,
                "accurate_opp_half_passes": 34,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 106,
                "possession_lost": 8.8123,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.1407,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.1382,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 37,
                "total_progression": 136,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 2.2,
                "tackles_won_in_zone": 1.7,
                "interceptions_in_zone": 1.1,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 1.1,
                "defensive_success_rate": 0.549,
                "opponent_faced": "Vinícius Júnior",
                "pressing_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "antagonist_source": "defensive_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Vinícius Júnior",
                  "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.35 (squad xG sum 1.1115, xG scale 1.2128, xA scale 0.9580, team xA 1.08 = 0.80 x lambda)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 7.0736,
                "minutes": 90,
                "total_pass": 91,
                "accurate_pass": 85,
                "duels_won": 2,
                "total_long_balls": 9,
                "accurate_long_balls": 5,
                "total_own_half_passes": 52,
                "accurate_own_half_passes": 51,
                "total_opp_half_passes": 39,
                "accurate_opp_half_passes": 34,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 106,
                "possession_lost": 8.8123,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.1407,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.1324,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 37,
                "total_progression": 136,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 2.2,
                "tackles_won_in_zone": 1.7,
                "interceptions_in_zone": 1.1,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 1.1,
                "defensive_success_rate": 0.549,
                "opponent_faced": "Vinícius Júnior",
                "pressing_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 1.0133
              },
              "params": {
                "team_lambda": 1.348,
                "squad_xg_sum": 1.1115,
                "squad_xa_sum": 1.1257,
                "team_expected_assists": 1.0784,
                "team_xa_to_xg_ratio": 0.8,
                "bench_appearance_weighted": true,
                "xg_scale": 1.2128,
                "xa_scale": 0.958,
                "opponent_lambda": 3.538,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_assists",
                  "before": 0.1382,
                  "after": 0.1324
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 5 by projected rating, fifa_overall 78.0; not used by the projection)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 7.0736,
                "minutes": 90,
                "total_pass": 91,
                "accurate_pass": 85,
                "duels_won": 2,
                "total_long_balls": 9,
                "accurate_long_balls": 5,
                "total_own_half_passes": 52,
                "accurate_own_half_passes": 51,
                "total_opp_half_passes": 39,
                "accurate_opp_half_passes": 34,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 106,
                "possession_lost": 8.8123,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.1407,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.1324,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 37,
                "total_progression": 136,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 2.2,
                "tackles_won_in_zone": 1.7,
                "interceptions_in_zone": 1.1,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 1.1,
                "defensive_success_rate": 0.549,
                "opponent_faced": "Vinícius Júnior",
                "pressing_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 1.0133,
                "fifa_overall": 78.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": 2081,
                "fifa_rank": 1247.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,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 7.0736,
                "minutes": 90,
                "total_pass": 91,
                "accurate_pass": 85,
                "duels_won": 2,
                "total_long_balls": 9,
                "accurate_long_balls": 5,
                "total_own_half_passes": 52,
                "accurate_own_half_passes": 51,
                "total_opp_half_passes": 39,
                "accurate_opp_half_passes": 34,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 106,
                "possession_lost": 8.8123,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.1407,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.1324,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 37,
                "total_progression": 136,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 2.2,
                "tackles_won_in_zone": 1.7,
                "interceptions_in_zone": 1.1,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 1.1,
                "defensive_success_rate": 0.549,
                "opponent_faced": "Vinícius Júnior",
                "pressing_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 1.0133,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 0.001,
                "squad_weight_total": 1.3104,
                "weight_share": 0.0008,
                "finishing_factor": 1.0,
                "appearance_weight": 1.0,
                "weight_rank": 10,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Georges Mikautadze",
                    "weight": 0.3558,
                    "already": 0,
                    "effective_weight": 0.3558,
                    "runner_up": "Alberto Moleiro",
                    "runner_up_effective_weight": 0.3304
                  }
                ]
              }
            },
            {
              "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,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 7.0736,
                "minutes": 90,
                "total_pass": 91,
                "accurate_pass": 85,
                "duels_won": 2,
                "total_long_balls": 9,
                "accurate_long_balls": 5,
                "total_own_half_passes": 52,
                "accurate_own_half_passes": 51,
                "total_opp_half_passes": 39,
                "accurate_opp_half_passes": 34,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 106,
                "possession_lost": 8.8123,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.1407,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.1324,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 37,
                "total_progression": 136,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 2.2,
                "tackles_won_in_zone": 1.7,
                "interceptions_in_zone": 1.1,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 1.1,
                "defensive_success_rate": 0.549,
                "opponent_faced": "Vinícius Júnior",
                "pressing_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.124,
                "finishing_factor": 1.0,
                "creation_factor": 1.0133,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.124,
                "provider_weight": 0.1342,
                "squad_weight_total": 1.0247,
                "weight_share": 0.1309,
                "creation_factor": 1.0133,
                "appearance_weight": 1.0,
                "weight_rank": 4,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Alberto Moleiro",
                    "weight": 0.2034,
                    "already": 0,
                    "effective_weight": 0.2034,
                    "runner_up": "Ilias Akhomach",
                    "runner_up_effective_weight": 0.1848,
                    "blocked_own_goal": [
                      "Georges Mikautadze"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Carlos Romero": {
          "player_id": 1396048,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 20,
          "height": 174,
          "market_value": 24000000,
          "stats": {
            "interceptions": 1,
            "tackles": 1,
            "tackles_won": 1,
            "clearances": 2,
            "aerial_won": 0,
            "total_shots": 0,
            "rating": 6.682,
            "minutes": 77,
            "total_pass": 50,
            "accurate_pass": 44,
            "duels_won": 5,
            "total_long_balls": 2,
            "accurate_long_balls": 1,
            "total_own_half_passes": 18,
            "accurate_own_half_passes": 16,
            "total_opp_half_passes": 31,
            "accurate_opp_half_passes": 28,
            "crosses_total": 2,
            "crosses_accurate": 0,
            "touches": 69,
            "possession_lost": 10.7157,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 6,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assist_rate": 0.0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0503,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 21,
            "total_progression": 90,
            "progressive_carries": 3,
            "key_pass": 0,
            "shots_off_target": 0,
            "offsides": 0,
            "yellowCards": 0.3333,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 0.0,
            "shotConversion": 0.0,
            "minutesPct": 100.0,
            "pointsPerMatch": 0.67,
            "netGoalDifferencePer90": 0.0,
            "tackles_in_zone": 2.1,
            "tackles_won_in_zone": 1.6,
            "interceptions_in_zone": 1.1,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 0.8,
            "defensive_success_rate": 0.458,
            "opponent_faced": "Aurélien Tchouaméni",
            "pressing_zone": "RWB vs LWB",
            "matchup_zone": "RWB vs LWB",
            "antagonist_source": "defensive_duel, attacking_duel",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0491,
            "finishing_factor": 1.0,
            "creation_factor": 0.8,
            "fifa_overall": 80.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": "16416294",
              "match_date": "2026-09-20 16:30:00 UTC",
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27",
              "home_team": "Villarreal",
              "away_team": "Levante",
              "home_score_current": 3.0,
              "away_score_current": 1.0,
              "team_side": "home",
              "status_code": "100",
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": "True",
              "team": "Villarreal",
              "opponent": "Levante",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16416338.0,
              "match_date": "2026-09-17",
              "home_team": "Málaga CF",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 27,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0754,
                "expected_assists": 0.0685,
                "total_shots": 1,
                "total_pass": 23,
                "accurate_pass": 19,
                "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": 16416333.0,
              "match_date": "2026-09-14",
              "home_team": "Villarreal",
              "away_team": "Real Betis",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0367,
                "expected_assists": 0.0239,
                "total_shots": 1,
                "total_pass": 60,
                "accurate_pass": 54,
                "tackles": 1,
                "interceptions": 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": 16416290.0,
              "match_date": "2026-08-28",
              "home_team": "Deportivo Alavés",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0469,
                "expected_assists": 0.053,
                "total_shots": 1,
                "total_pass": 57,
                "accurate_pass": 52,
                "key_pass": 1,
                "tackles": 1,
                "clearances": 2,
                "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": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416302.0,
              "match_date": "2026-08-23",
              "home_team": "Atlético Madrid",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 90,
                "rating": 6.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0296,
                "total_shots": 0,
                "total_pass": 43,
                "accurate_pass": 34,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 1,
                "clearances": 1,
                "duels_won": 5,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421061.0,
              "match_date": "2026-08-16",
              "home_team": "Real Racing Club",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 90,
                "rating": 7.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.016,
                "expected_assists": 0.0973,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 53,
                "accurate_pass": 50,
                "tackles": 3,
                "tackles_won": 3,
                "clearances": 3,
                "aerial_won": 1,
                "duels_won": 12,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 1032,
            "combined_rank_score": 460.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 157.0,
            "sofascore_rating": 7.3,
            "sofascore_appearances": 1.0,
            "fifa_rank": 764.0,
            "fifa_overall": 80.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 17,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.682,
            "source_file": "data/player_rankings.csv",
            "player_name": "Carlos Romero",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Mamadou Sangare",
                  "ranking": 1027
                },
                {
                  "player_name": "Azizbek  Pirmukhamedov",
                  "ranking": 1028
                },
                {
                  "player_name": "Jonas Urbig",
                  "ranking": 1029
                },
                {
                  "player_name": "James Donachie",
                  "ranking": 1030
                },
                {
                  "player_name": "Felipe Campos",
                  "ranking": 1031
                }
              ],
              "lower": [
                {
                  "player_name": "Shota Gvazava",
                  "ranking": 1033
                },
                {
                  "player_name": "Joachim Andersen",
                  "ranking": 1034
                },
                {
                  "player_name": "Alisson",
                  "ranking": 1035
                },
                {
                  "player_name": "Anthony Elanga",
                  "ranking": 1036
                },
                {
                  "player_name": "Sander Berge",
                  "ranking": 1037
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.593,
          "history_matches": 5,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "D_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "totalOppositionHalfPasses",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "ballRecovery",
              "touches",
              "totalClearance",
              "wonTackle",
              "interceptionWon",
              "dispossessed",
              "challengeLost",
              "errorLeadToAShot",
              "errorLeadToAGoal",
              "possessionLostCtrl",
              "passValueNormalized",
              "defensiveValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "totalShots",
              "rating"
            ],
            "history_matches": 5,
            "data_confidence": 0.593,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0506,
            "fbref_prior_metrics": {
              "squad": "Villarreal",
              "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.67,
              "shots_on_target_pct": 0.0,
              "prior_reliability": 0.2
            },
            "rationale": "XGBoost regressor (D_service) evaluated 5 historical appearances across 7 target models; FBref 2026-2027 prior blended (La Liga, Villarreal, rel: 0.20, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 7 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.682,
                "minutes": 77,
                "total_pass": 47,
                "accurate_pass": 42,
                "duels_won": 5,
                "total_long_balls": 2,
                "accurate_long_balls": 1,
                "total_own_half_passes": 17,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 30,
                "accurate_opp_half_passes": 26,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 66,
                "possession_lost": 10.2,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 5,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.05,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 20,
                "total_progression": 86,
                "progressive_carries": 3,
                "key_pass": 0,
                "shots_off_target": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:01:55.523250+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 402,
                    "rows": 11400
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Málaga CF",
                    "minutes": 27.0,
                    "is_starting": true,
                    "weight": 0.2696,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-14",
                    "opponent": "Real Betis",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2292,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Deportivo Alavés",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1948,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Atlético Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1656,
                    "rating": 6.1
                  },
                  {
                    "match_date": "2026-08-16",
                    "opponent": "Real Racing Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1408,
                    "rating": 7.3
                  }
                ],
                "feature_row": {
                  "history_matches": 5.0,
                  "is_starting_11": 1.0,
                  "totalClearance": 1.2067,
                  "defensive_actions": 1.5722,
                  "wonTackle": 0.7535,
                  "totalTackle_p90": 1.1775,
                  "totalClearance_p90": 1.2067,
                  "aerialWon": 0.5304
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.6790419220924377,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "interceptionWon",
                        "importance": 0.0903
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0858
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.052
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0447
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0364
                      }
                    ],
                    "decomposition": {
                      "base": 0.9034,
                      "items": [
                        {
                          "name": "interceptionWon_p90",
                          "contribution": -0.1096
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0881
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0276
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0256
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0216
                        }
                      ],
                      "others": 0.0049,
                      "total": 0.679,
                      "log_link": true,
                      "margin_base": -0.101631,
                      "item_margins": [
                        {
                          "name": "interceptionWon_p90",
                          "margin": -0.129292
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.117697
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.039894
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.038464
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.032592
                        }
                      ],
                      "others_margin": 0.007313
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.2199814319610596,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "defensive_actions",
                        "importance": 0.1044
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0863
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0629
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.045
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0342
                      }
                    ],
                    "decomposition": {
                      "base": 1.3313,
                      "items": [
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0725
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": -0.0535
                        },
                        {
                          "name": "wonTackle",
                          "contribution": -0.0427
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0236
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0153
                        }
                      ],
                      "others": 0.0185,
                      "total": 1.22,
                      "log_link": true,
                      "margin_base": 0.286166,
                      "item_margins": [
                        {
                          "name": "defensive_actions",
                          "margin": -0.055963
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": -0.04339
                        },
                        {
                          "name": "wonTackle",
                          "margin": -0.036025
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": 0.020066
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.012836
                        }
                      ],
                      "others_margin": 0.015146
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.7055524587631226,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "wonTackle",
                        "importance": 0.1003
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0586
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0501
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0492
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0386
                      }
                    ],
                    "decomposition": {
                      "base": 0.8256,
                      "items": [
                        {
                          "name": "wonTackle",
                          "contribution": -0.1473
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0279
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.022
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0184
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0151
                        }
                      ],
                      "others": -0.0003,
                      "total": 0.7056,
                      "log_link": true,
                      "margin_base": -0.191612,
                      "item_margins": [
                        {
                          "name": "wonTackle",
                          "margin": -0.196481
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.042056
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": 0.033195
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.027002
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": 0.021575
                        }
                      ],
                      "others_margin": -0.000398
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 2.193526029586792,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalClearance",
                        "importance": 0.138
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0733
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.034
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 3.3876,
                      "items": [
                        {
                          "name": "totalClearance",
                          "contribution": -0.6826
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.3763
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.1724
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0864
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0615
                        }
                      ],
                      "others": 0.1851,
                      "total": 2.1935,
                      "log_link": true,
                      "margin_base": 1.220122,
                      "item_margins": [
                        {
                          "name": "totalClearance",
                          "margin": -0.225037
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.149781
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.076902
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.040882
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.030151
                        }
                      ],
                      "others_margin": 0.088141
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.45381683111190796,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "aerialWon",
                        "importance": 0.1155
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0659
                      },
                      {
                        "name": "aerial_dominance",
                        "importance": 0.0345
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0335
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0332
                      }
                    ],
                    "decomposition": {
                      "base": 1.2696,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": -0.6323
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0666
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0412
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0228
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0209
                        }
                      ],
                      "others": -0.032,
                      "total": 0.4538,
                      "log_link": true,
                      "margin_base": 0.238719,
                      "item_margins": [
                        {
                          "name": "aerialWon",
                          "margin": -0.689165
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.110284
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.074905
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.044089
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.042124
                        }
                      ],
                      "others_margin": -0.068214
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.41004425287246704,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0373
                      },
                      {
                        "name": "long_ball_accuracy",
                        "importance": 0.0337
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0333
                      },
                      {
                        "name": "errorLeadToAGoal",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0306
                      }
                    ],
                    "decomposition": {
                      "base": 0.476,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0306
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.02
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0195
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0177
                        },
                        {
                          "name": "aerialLost",
                          "contribution": -0.0158
                        }
                      ],
                      "others": -0.0368,
                      "total": 0.41,
                      "log_link": false,
                      "margin_base": 0.476045,
                      "item_margins": [
                        {
                          "name": "passValueNormalized",
                          "margin": -0.030586
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.019964
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": 0.019465
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.017652
                        },
                        {
                          "name": "aerialLost",
                          "margin": -0.015837
                        }
                      ],
                      "others_margin": -0.03673
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.682023525238037,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0639
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0627
                      },
                      {
                        "name": "defensiveValueNormalized",
                        "importance": 0.0466
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0352
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 6.7578,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0431
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0316
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0155
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.015
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0144
                        }
                      ],
                      "others": -0.015,
                      "total": 6.682,
                      "log_link": false,
                      "margin_base": 6.757789,
                      "item_margins": [
                        {
                          "name": "passValueNormalized",
                          "margin": -0.043103
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": -0.031579
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.015546
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.015028
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.014445
                        }
                      ],
                      "others_margin": -0.01501
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0506, quality 0.669)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.682,
                "minutes": 77,
                "total_pass": 50,
                "accurate_pass": 44,
                "duels_won": 5,
                "total_long_balls": 2,
                "accurate_long_balls": 1,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 31,
                "accurate_opp_half_passes": 28,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 69,
                "possession_lost": 10.7157,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 6,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0525,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 21,
                "total_progression": 90,
                "progressive_carries": 3,
                "key_pass": 0,
                "shots_off_target": 0
              },
              "params": {
                "market_value_eur": 24000000,
                "quality_factor": 0.6685,
                "boost_factor": 1.0506
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0650)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.682,
                "minutes": 77,
                "total_pass": 50,
                "accurate_pass": 44,
                "duels_won": 5,
                "total_long_balls": 2,
                "accurate_long_balls": 1,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 31,
                "accurate_opp_half_passes": 28,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 69,
                "possession_lost": 10.7157,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 6,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0525,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 21,
                "total_progression": 90,
                "progressive_carries": 3,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.3333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": -0.33
              },
              "params": {
                "blend_weight": 0.065,
                "history_matches": 5,
                "prior_reliability": 0.2,
                "competition": "La Liga",
                "squad": "Villarreal"
              },
              "changes": [
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.1517
                },
                {
                  "stat": "wonTackle",
                  "before": 0.7412,
                  "after": 0.8014
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0433
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.7134,
                  "after": 0.6887
                },
                {
                  "stat": "totalShots",
                  "before": 0.4308,
                  "after": 0.4463
                },
                {
                  "stat": "totalCross",
                  "before": 1.891,
                  "after": 1.8981
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.682,
                "minutes": 77,
                "total_pass": 50,
                "accurate_pass": 44,
                "duels_won": 5,
                "total_long_balls": 2,
                "accurate_long_balls": 1,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 31,
                "accurate_opp_half_passes": 28,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 69,
                "possession_lost": 10.7157,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 6,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0525,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 21,
                "total_progression": 90,
                "progressive_carries": 3,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.3333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.682,
                "minutes": 77,
                "total_pass": 50,
                "accurate_pass": 44,
                "duels_won": 5,
                "total_long_balls": 2,
                "accurate_long_balls": 1,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 31,
                "accurate_opp_half_passes": 28,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 69,
                "possession_lost": 10.7157,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 6,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0525,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 21,
                "total_progression": 90,
                "progressive_carries": 3,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.3333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 2.1,
                "tackles_won_in_zone": 1.6,
                "interceptions_in_zone": 1.1,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.8,
                "defensive_success_rate": 0.458,
                "opponent_faced": "Aurélien Tchouaméni",
                "pressing_zone": "RWB vs LWB",
                "matchup_zone": "RWB vs LWB",
                "antagonist_source": "defensive_duel, attacking_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Aurélien Tchouaméni",
                  "matchup_zone": "RWB vs LWB"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.35 (squad xG sum 1.1115, xG scale 1.2128, xA scale 0.9580, team xA 1.08 = 0.80 x lambda)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.682,
                "minutes": 77,
                "total_pass": 50,
                "accurate_pass": 44,
                "duels_won": 5,
                "total_long_balls": 2,
                "accurate_long_balls": 1,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 31,
                "accurate_opp_half_passes": 28,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 69,
                "possession_lost": 10.7157,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 6,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0503,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 21,
                "total_progression": 90,
                "progressive_carries": 3,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.3333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 2.1,
                "tackles_won_in_zone": 1.6,
                "interceptions_in_zone": 1.1,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.8,
                "defensive_success_rate": 0.458,
                "opponent_faced": "Aurélien Tchouaméni",
                "pressing_zone": "RWB vs LWB",
                "matchup_zone": "RWB vs LWB",
                "antagonist_source": "defensive_duel, attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 1.348,
                "squad_xg_sum": 1.1115,
                "squad_xa_sum": 1.1257,
                "team_expected_assists": 1.0784,
                "team_xa_to_xg_ratio": 0.8,
                "bench_appearance_weighted": true,
                "xg_scale": 1.2128,
                "xa_scale": 0.958,
                "opponent_lambda": 3.538,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 17 by projected rating, fifa_overall 80.0; not used by the projection)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.682,
                "minutes": 77,
                "total_pass": 50,
                "accurate_pass": 44,
                "duels_won": 5,
                "total_long_balls": 2,
                "accurate_long_balls": 1,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 31,
                "accurate_opp_half_passes": 28,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 69,
                "possession_lost": 10.7157,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 6,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0503,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 21,
                "total_progression": 90,
                "progressive_carries": 3,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.3333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 2.1,
                "tackles_won_in_zone": 1.6,
                "interceptions_in_zone": 1.1,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.8,
                "defensive_success_rate": 0.458,
                "opponent_faced": "Aurélien Tchouaméni",
                "pressing_zone": "RWB vs LWB",
                "matchup_zone": "RWB vs LWB",
                "antagonist_source": "defensive_duel, attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 0.8,
                "fifa_overall": 80.0
              },
              "params": {
                "match_squad_rank": 17,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 1032,
                "fifa_rank": 764.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": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.682,
                "minutes": 77,
                "total_pass": 50,
                "accurate_pass": 44,
                "duels_won": 5,
                "total_long_balls": 2,
                "accurate_long_balls": 1,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 31,
                "accurate_opp_half_passes": 28,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 69,
                "possession_lost": 10.7157,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 6,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0503,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 21,
                "total_progression": 90,
                "progressive_carries": 3,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.3333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 2.1,
                "tackles_won_in_zone": 1.6,
                "interceptions_in_zone": 1.1,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.8,
                "defensive_success_rate": 0.458,
                "opponent_faced": "Aurélien Tchouaméni",
                "pressing_zone": "RWB vs LWB",
                "matchup_zone": "RWB vs LWB",
                "antagonist_source": "defensive_duel, attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 0.8,
                "fifa_overall": 80.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 0.001,
                "squad_weight_total": 1.3104,
                "weight_share": 0.0008,
                "finishing_factor": 1.0,
                "appearance_weight": 1.0,
                "weight_rank": 11,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Georges Mikautadze",
                    "weight": 0.3558,
                    "already": 0,
                    "effective_weight": 0.3558,
                    "runner_up": "Alberto Moleiro",
                    "runner_up_effective_weight": 0.3304
                  }
                ]
              }
            },
            {
              "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,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.682,
                "minutes": 77,
                "total_pass": 50,
                "accurate_pass": 44,
                "duels_won": 5,
                "total_long_balls": 2,
                "accurate_long_balls": 1,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 31,
                "accurate_opp_half_passes": 28,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 69,
                "possession_lost": 10.7157,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 6,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0503,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 21,
                "total_progression": 90,
                "progressive_carries": 3,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.3333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 2.1,
                "tackles_won_in_zone": 1.6,
                "interceptions_in_zone": 1.1,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.8,
                "defensive_success_rate": 0.458,
                "opponent_faced": "Aurélien Tchouaméni",
                "pressing_zone": "RWB vs LWB",
                "matchup_zone": "RWB vs LWB",
                "antagonist_source": "defensive_duel, attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0491,
                "finishing_factor": 1.0,
                "creation_factor": 0.8,
                "fifa_overall": 80.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0491,
                "provider_weight": 0.0402,
                "squad_weight_total": 1.0247,
                "weight_share": 0.0393,
                "creation_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 8,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Alberto Moleiro",
                    "weight": 0.2034,
                    "already": 0,
                    "effective_weight": 0.2034,
                    "runner_up": "Ilias Akhomach",
                    "runner_up_effective_weight": 0.1848,
                    "blocked_own_goal": [
                      "Georges Mikautadze"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Santiago Mouriño": {
          "player_id": 1468046,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 15,
          "height": 186,
          "market_value": 19400000,
          "stats": {
            "interceptions": 1,
            "tackles": 1,
            "tackles_won": 1,
            "clearances": 3,
            "aerial_won": 1,
            "total_shots": 1,
            "rating": 6.8003,
            "minutes": 56,
            "total_pass": 34,
            "accurate_pass": 30,
            "duels_won": 4,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 14,
            "accurate_own_half_passes": 13,
            "total_opp_half_passes": 0,
            "accurate_opp_half_passes": 0,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 50,
            "possession_lost": 0.0,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assist_rate": 0.0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0895,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 12,
            "total_progression": 50,
            "progressive_carries": 1,
            "key_pass": 0,
            "shots_off_target": 1,
            "offsides": 0,
            "yellowCards": 0.7692,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 50.0,
            "shotConversion": 0.0,
            "minutesPct": 88.1,
            "pointsPerMatch": 0.67,
            "netGoalDifferencePer90": 0.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.755,
            "opponent_faced": "Kylian Mbappé",
            "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.0856,
            "finishing_factor": 1.0,
            "creation_factor": 0.8,
            "fifa_overall": 78.0
          },
          "latest_10_games": [
            {
              "match_id": 16416294.0,
              "match_date": "2026-09-20",
              "home_team": "Villarreal",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 11,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "total_pass": 10,
                "accurate_pass": 9,
                "clearances": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416338.0,
              "match_date": "2026-09-17",
              "home_team": "Málaga CF",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 10,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0008,
                "total_shots": 0,
                "total_pass": 6,
                "accurate_pass": 6,
                "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": 16416333.0,
              "match_date": "2026-09-14",
              "home_team": "Villarreal",
              "away_team": "Real Betis",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 76,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0209,
                "total_shots": 0,
                "total_pass": 45,
                "accurate_pass": 41,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 2,
                "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": 16416290.0,
              "match_date": "2026-08-28",
              "home_team": "Deportivo Alavés",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 62,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.051,
                "expected_assists": 0.1417,
                "total_shots": 1,
                "total_pass": 44,
                "accurate_pass": 38,
                "key_pass": 2,
                "tackles": 3,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 2,
                "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": 16416302.0,
              "match_date": "2026-08-23",
              "home_team": "Atlético Madrid",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.3351,
                "total_shots": 0,
                "total_pass": 39,
                "accurate_pass": 37,
                "key_pass": 1,
                "tackles": 4,
                "tackles_won": 3,
                "interceptions": 1,
                "clearances": 2,
                "duels_won": 5,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421061.0,
              "match_date": "2026-08-16",
              "home_team": "Real Racing Club",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 88,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1233,
                "expected_assists": 0.0387,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 53,
                "accurate_pass": 45,
                "tackles": 5,
                "tackles_won": 4,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 7,
                "ball_recovery": 8
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 2087,
            "combined_rank_score": 793.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 339.0,
            "sofascore_rating": 6.9929,
            "sofascore_appearances": 28.0,
            "fifa_rank": 1248.0,
            "fifa_overall": 78.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 14,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.8003,
            "source_file": "data/player_rankings.csv",
            "player_name": "Santiago Mouriño",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Shodiyor Shodiboev",
                  "ranking": 2082
                },
                {
                  "player_name": "Matija Rom",
                  "ranking": 2083
                },
                {
                  "player_name": "Franco Rami",
                  "ranking": 2084
                },
                {
                  "player_name": "Jon Aramburu",
                  "ranking": 2085
                },
                {
                  "player_name": "Nikita Haikin",
                  "ranking": 2086
                }
              ],
              "lower": [
                {
                  "player_name": "Mason Mount",
                  "ranking": 2088
                },
                {
                  "player_name": "Thomas Partey",
                  "ranking": 2089
                },
                {
                  "player_name": "Sukhrob Izzatov",
                  "ranking": 2090
                },
                {
                  "player_name": "Gyu-baeg Lee",
                  "ranking": 2091
                },
                {
                  "player_name": "Brian Oyola",
                  "ranking": 2092
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.651,
          "history_matches": 6,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "D_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "totalOppositionHalfPasses",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "ballRecovery",
              "touches",
              "totalClearance",
              "wonTackle",
              "interceptionWon",
              "dispossessed",
              "challengeLost",
              "errorLeadToAShot",
              "errorLeadToAGoal",
              "possessionLostCtrl",
              "passValueNormalized",
              "defensiveValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "totalShots",
              "rating"
            ],
            "history_matches": 6,
            "data_confidence": 0.651,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0375,
            "fbref_prior_metrics": {
              "squad": "Villarreal",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "minutes": 238.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.76,
              "shots_on_target_pct": 50.0,
              "prior_reliability": 0.1733
            },
            "rationale": "XGBoost regressor (D_service) evaluated 6 historical appearances across 7 target models; FBref 2026-2027 prior blended (La Liga, Villarreal, rel: 0.17, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 7 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.8003,
                "minutes": 56,
                "total_pass": 33,
                "accurate_pass": 29,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 14,
                "accurate_own_half_passes": 13,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 48,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.09,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 12,
                "total_progression": 48,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:01:55.523250+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 402,
                    "rows": 11400
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Levante UD",
                    "minutes": 11.0,
                    "is_starting": true,
                    "weight": 0.2408,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Málaga CF",
                    "minutes": 10.0,
                    "is_starting": true,
                    "weight": 0.2047,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-09-14",
                    "opponent": "Real Betis",
                    "minutes": 76.0,
                    "is_starting": true,
                    "weight": 0.174,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Deportivo Alavés",
                    "minutes": 62.0,
                    "is_starting": true,
                    "weight": 0.1479,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Atlético Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1257,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-08-16",
                    "opponent": "Real Racing Club",
                    "minutes": 88.0,
                    "is_starting": true,
                    "weight": 0.1069,
                    "rating": 6.6
                  }
                ],
                "feature_row": {
                  "history_matches": 6.0,
                  "is_starting_11": 1.0,
                  "totalClearance": 1.8214,
                  "defensive_actions": 1.7805,
                  "wonTackle": 1.1265,
                  "totalTackle_p90": 1.8994,
                  "totalClearance_p90": 7.086,
                  "aerialWon": 0.9554
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.6152049899101257,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "interceptionWon",
                        "importance": 0.0903
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0858
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.052
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0447
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0364
                      }
                    ],
                    "decomposition": {
                      "base": 0.9034,
                      "items": [
                        {
                          "name": "interceptionWon_p90",
                          "contribution": -0.1673
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.11
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0363
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0149
                        },
                        {
                          "name": "touches",
                          "contribution": -0.0124
                        }
                      ],
                      "others": -0.0199,
                      "total": 0.6152,
                      "log_link": true,
                      "margin_base": -0.101631,
                      "item_margins": [
                        {
                          "name": "interceptionWon_p90",
                          "margin": -0.204783
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.16186
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.056376
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.022743
                        },
                        {
                          "name": "touches",
                          "margin": -0.019401
                        }
                      ],
                      "others_margin": -0.031758
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.3731728792190552,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "defensive_actions",
                        "importance": 0.1044
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0863
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0629
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.045
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0342
                      }
                    ],
                    "decomposition": {
                      "base": 1.3313,
                      "items": [
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.1422
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0829
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0415
                        },
                        {
                          "name": "wonTackle",
                          "contribution": -0.021
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": 0.011
                        }
                      ],
                      "others": 0.0341,
                      "total": 1.3732,
                      "log_link": true,
                      "margin_base": 0.286166,
                      "item_margins": [
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.101477
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.057897
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.030332
                        },
                        {
                          "name": "wonTackle",
                          "margin": -0.015654
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": 0.008281
                        }
                      ],
                      "others_margin": 0.025083
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.7762612104415894,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "wonTackle",
                        "importance": 0.1003
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0586
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0501
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0492
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0386
                      }
                    ],
                    "decomposition": {
                      "base": 0.8256,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0316
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.027
                        },
                        {
                          "name": "wonTackle",
                          "contribution": -0.0222
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.0154
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.0132
                        }
                      ],
                      "others": 0.0293,
                      "total": 0.7763,
                      "log_link": true,
                      "margin_base": -0.191612,
                      "item_margins": [
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.038969
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.034629
                        },
                        {
                          "name": "wonTackle",
                          "margin": -0.029333
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.02042
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": -0.017465
                        }
                      ],
                      "others_margin": 0.03832
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 3.29052996635437,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalClearance",
                        "importance": 0.138
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0733
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.034
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 3.3876,
                      "items": [
                        {
                          "name": "totalClearance",
                          "contribution": -0.6804
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.3025
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.2814
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0891
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.072
                        }
                      ],
                      "others": 0.1605,
                      "total": 3.2905,
                      "log_link": true,
                      "margin_base": 1.220122,
                      "item_margins": [
                        {
                          "name": "totalClearance",
                          "margin": -0.224213
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.105919
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.089388
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.027445
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.022727
                        }
                      ],
                      "others_margin": 0.050004
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.6320818066596985,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "aerialWon",
                        "importance": 0.1155
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0659
                      },
                      {
                        "name": "aerial_dominance",
                        "importance": 0.0345
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0335
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0332
                      }
                    ],
                    "decomposition": {
                      "base": 1.2696,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": -0.5886
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0752
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0298
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0268
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0263
                        }
                      ],
                      "others": 0.003,
                      "total": 0.6321,
                      "log_link": true,
                      "margin_base": 0.238719,
                      "item_margins": [
                        {
                          "name": "aerialWon",
                          "margin": -0.62284
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.117015
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.050399
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.045535
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.042767
                        }
                      ],
                      "others_margin": 0.004496
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.4873262643814087,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0373
                      },
                      {
                        "name": "long_ball_accuracy",
                        "importance": 0.0337
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0333
                      },
                      {
                        "name": "errorLeadToAGoal",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0306
                      }
                    ],
                    "decomposition": {
                      "base": 0.476,
                      "items": [
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": 0.0323
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0308
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.026
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": 0.0259
                        },
                        {
                          "name": "aerialLost",
                          "contribution": -0.0208
                        }
                      ],
                      "others": -0.0309,
                      "total": 0.4873,
                      "log_link": false,
                      "margin_base": 0.476045,
                      "item_margins": [
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": 0.03231
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.030753
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.025971
                        },
                        {
                          "name": "progressive_carries_p90",
                          "margin": 0.025936
                        },
                        {
                          "name": "aerialLost",
                          "margin": -0.020805
                        }
                      ],
                      "others_margin": -0.030941
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.80029296875,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0639
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0627
                      },
                      {
                        "name": "defensiveValueNormalized",
                        "importance": 0.0466
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0352
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 6.7578,
                      "items": [
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0244
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": 0.0213
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0143
                        },
                        {
                          "name": "touches",
                          "contribution": -0.0143
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0142
                        }
                      ],
                      "others": -0.0174,
                      "total": 6.8003,
                      "log_link": false,
                      "margin_base": 6.757789,
                      "item_margins": [
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.024375
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": 0.021305
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.014283
                        },
                        {
                          "name": "touches",
                          "margin": -0.014274
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": 0.014199
                        }
                      ],
                      "others_margin": -0.017384
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0375, quality 0.625)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.8003,
                "minutes": 56,
                "total_pass": 34,
                "accurate_pass": 30,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 14,
                "accurate_own_half_passes": 13,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 50,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0934,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 12,
                "total_progression": 50,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 19400000,
                "quality_factor": 0.6251,
                "boost_factor": 1.0375
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0512)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.8003,
                "minutes": 56,
                "total_pass": 34,
                "accurate_pass": 30,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 14,
                "accurate_own_half_passes": 13,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 50,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0934,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 12,
                "total_progression": 50,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.7692,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 88.1,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": -0.38
              },
              "params": {
                "blend_weight": 0.0512,
                "history_matches": 6,
                "prior_reliability": 0.1733,
                "competition": "La Liga",
                "squad": "Villarreal"
              },
              "changes": [
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.1182
                },
                {
                  "stat": "wonTackle",
                  "before": 0.8054,
                  "after": 0.9217
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0591
                },
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.0394
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.0,
                  "after": 0.0195
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.6383,
                  "after": 0.6253
                },
                {
                  "stat": "totalShots",
                  "before": 0.5056,
                  "after": 0.5186
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.8003,
                "minutes": 56,
                "total_pass": 34,
                "accurate_pass": 30,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 14,
                "accurate_own_half_passes": 13,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 50,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0934,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 12,
                "total_progression": 50,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.7692,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 88.1,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.8003,
                "minutes": 56,
                "total_pass": 34,
                "accurate_pass": 30,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 14,
                "accurate_own_half_passes": 13,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 50,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0934,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 12,
                "total_progression": 50,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.7692,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 88.1,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.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.755,
                "opponent_faced": "Kylian Mbappé",
                "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": "Kylian Mbappé",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.35 (squad xG sum 1.1115, xG scale 1.2128, xA scale 0.9580, team xA 1.08 = 0.80 x lambda)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.8003,
                "minutes": 56,
                "total_pass": 34,
                "accurate_pass": 30,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 14,
                "accurate_own_half_passes": 13,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 50,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0895,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 12,
                "total_progression": 50,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.7692,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 88.1,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.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.755,
                "opponent_faced": "Kylian Mbappé",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 1.348,
                "squad_xg_sum": 1.1115,
                "squad_xa_sum": 1.1257,
                "team_expected_assists": 1.0784,
                "team_xa_to_xg_ratio": 0.8,
                "bench_appearance_weighted": true,
                "xg_scale": 1.2128,
                "xa_scale": 0.958,
                "opponent_lambda": 3.538,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 14 by projected rating, fifa_overall 78.0; not used by the projection)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.8003,
                "minutes": 56,
                "total_pass": 34,
                "accurate_pass": 30,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 14,
                "accurate_own_half_passes": 13,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 50,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0895,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 12,
                "total_progression": 50,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.7692,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 88.1,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.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.755,
                "opponent_faced": "Kylian Mbappé",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 0.8,
                "fifa_overall": 78.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": 2087,
                "fifa_rank": 1248.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,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.8003,
                "minutes": 56,
                "total_pass": 34,
                "accurate_pass": 30,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 14,
                "accurate_own_half_passes": 13,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 50,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0895,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 12,
                "total_progression": 50,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.7692,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 88.1,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.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.755,
                "opponent_faced": "Kylian Mbappé",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 0.8,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 0.001,
                "squad_weight_total": 1.3104,
                "weight_share": 0.0008,
                "finishing_factor": 1.0,
                "appearance_weight": 1.0,
                "weight_rank": 12,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Georges Mikautadze",
                    "weight": 0.3558,
                    "already": 0,
                    "effective_weight": 0.3558,
                    "runner_up": "Alberto Moleiro",
                    "runner_up_effective_weight": 0.3304
                  }
                ]
              }
            },
            {
              "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,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.8003,
                "minutes": 56,
                "total_pass": 34,
                "accurate_pass": 30,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 14,
                "accurate_own_half_passes": 13,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 50,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0895,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 12,
                "total_progression": 50,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.7692,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 88.1,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.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.755,
                "opponent_faced": "Kylian Mbappé",
                "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.0856,
                "finishing_factor": 1.0,
                "creation_factor": 0.8,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0856,
                "provider_weight": 0.0716,
                "squad_weight_total": 1.0247,
                "weight_share": 0.0699,
                "creation_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 7,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Alberto Moleiro",
                    "weight": 0.2034,
                    "already": 0,
                    "effective_weight": 0.2034,
                    "runner_up": "Ilias Akhomach",
                    "runner_up_effective_weight": 0.1848,
                    "blocked_own_goal": [
                      "Georges Mikautadze"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Pau Navarro": {
          "player_id": 1525863,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 6,
          "height": 185,
          "market_value": 14600000,
          "stats": {
            "interceptions": 1,
            "tackles": 1,
            "tackles_won": 1,
            "clearances": 3,
            "aerial_won": 1,
            "total_shots": 0,
            "rating": 6.8724,
            "minutes": 86,
            "total_pass": 73,
            "accurate_pass": 69,
            "duels_won": 4,
            "total_long_balls": 3,
            "accurate_long_balls": 0,
            "total_own_half_passes": 47,
            "accurate_own_half_passes": 46,
            "total_opp_half_passes": 26,
            "accurate_opp_half_passes": 22,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 83,
            "possession_lost": 5.1122,
            "dispossessed": 0.0,
            "duels_lost": 4,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 3,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assist_rate": 0.0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0098,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 13,
            "total_progression": 15,
            "progressive_carries": 0,
            "key_pass": 0,
            "shots_off_target": 0,
            "opponent_faced": "Kylian Mbappé",
            "matchup_zone": "Shape fallback",
            "antagonist_source": "formation_fallback",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0098,
            "finishing_factor": 1.0,
            "creation_factor": 0.8306,
            "fifa_overall": 74.0
          },
          "latest_10_games": [
            {
              "match_id": 16416294.0,
              "match_date": "2026-09-20",
              "home_team": "Villarreal",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 79,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0098,
                "total_shots": 0,
                "total_pass": 83,
                "accurate_pass": 78,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 3,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416338.0,
              "match_date": "2026-09-17",
              "home_team": "Málaga CF",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0063,
                "total_shots": 0,
                "total_pass": 47,
                "accurate_pass": 45,
                "tackles": 1,
                "tackles_won": 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": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416333.0,
              "match_date": "2026-09-14",
              "home_team": "Villarreal",
              "away_team": "Real Betis",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 90,
                "rating": 7.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0242,
                "total_shots": 0,
                "total_pass": 84,
                "accurate_pass": 79,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 5,
                "aerial_won": 3,
                "duels_won": 5,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 3794,
            "combined_rank_score": 1792.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 661.0,
            "sofascore_rating": 6.7304,
            "sofascore_appearances": 23.0,
            "fifa_rank": 2923.0,
            "fifa_overall": 74.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 10,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.8724,
            "source_file": "data/player_rankings.csv",
            "player_name": "Pau Navarro",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Chadi Riad",
                  "ranking": 3789
                },
                {
                  "player_name": "Adalberto Carrasquilla",
                  "ranking": 3790
                },
                {
                  "player_name": "Tyler Dibling",
                  "ranking": 3791
                },
                {
                  "player_name": "Jacob Widell Zetterström",
                  "ranking": 3792
                },
                {
                  "player_name": "Maxime Crépeau",
                  "ranking": 3793
                }
              ],
              "lower": [
                {
                  "player_name": "Lucas Pires",
                  "ranking": 3795
                },
                {
                  "player_name": "Salih Özcan",
                  "ranking": 3796
                },
                {
                  "player_name": "Stefan Mugoša",
                  "ranking": 3797
                },
                {
                  "player_name": "Jaden Philogene",
                  "ranking": 3798
                },
                {
                  "player_name": "Kenny McLean",
                  "ranking": 3799
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.438,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "D_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "totalOppositionHalfPasses",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "ballRecovery",
              "touches",
              "totalClearance",
              "wonTackle",
              "interceptionWon",
              "dispossessed",
              "challengeLost",
              "errorLeadToAShot",
              "errorLeadToAGoal",
              "possessionLostCtrl",
              "passValueNormalized",
              "defensiveValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "totalShots",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.438,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0224,
            "fbref_prior_metrics": {
              "squad": "Villarreal",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 0.0,
              "starts": 0.0,
              "prior_reliability": 0.0
            },
            "rationale": "XGBoost regressor (D_service) evaluated 3 historical appearances across 7 target models; FBref 2026-2027 prior blended (La Liga, Villarreal, 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,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.8724,
                "minutes": 86,
                "total_pass": 71,
                "accurate_pass": 67,
                "duels_won": 4,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 46,
                "accurate_own_half_passes": 45,
                "total_opp_half_passes": 25,
                "accurate_opp_half_passes": 22,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 81,
                "possession_lost": 5.0,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.01,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 12,
                "total_progression": 15,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:01:55.523250+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 402,
                    "rows": 11400
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Levante UD",
                    "minutes": 79.0,
                    "is_starting": true,
                    "weight": 0.3887,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Málaga CF",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3304,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-09-14",
                    "opponent": "Real Betis",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2809,
                    "rating": 7.4
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 1.0,
                  "totalClearance": 2.9009,
                  "defensive_actions": 1.9504,
                  "wonTackle": 1.3887,
                  "totalTackle_p90": 1.7778,
                  "totalClearance_p90": 3.0633,
                  "aerialWon": 1.5617
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.6844881772994995,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "interceptionWon",
                        "importance": 0.0903
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0858
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.052
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0447
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0364
                      }
                    ],
                    "decomposition": {
                      "base": 0.9034,
                      "items": [
                        {
                          "name": "interceptionWon",
                          "contribution": -0.1339
                        },
                        {
                          "name": "interceptionWon_p90",
                          "contribution": -0.1117
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0255
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.018
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0077
                        }
                      ],
                      "others": -0.0091,
                      "total": 0.6845,
                      "log_link": true,
                      "margin_base": -0.101631,
                      "item_margins": [
                        {
                          "name": "interceptionWon",
                          "margin": -0.160468
                        },
                        {
                          "name": "interceptionWon_p90",
                          "margin": -0.156922
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.038112
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.026005
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.011093
                        }
                      ],
                      "others_margin": -0.013087
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.3781932592391968,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "defensive_actions",
                        "importance": 0.1044
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0863
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0629
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.045
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0342
                      }
                    ],
                    "decomposition": {
                      "base": 1.3313,
                      "items": [
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.1402
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0828
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0389
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0156
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": -0.0138
                        }
                      ],
                      "others": 0.0266,
                      "total": 1.3782,
                      "log_link": true,
                      "margin_base": 0.286166,
                      "item_margins": [
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.100104
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.057913
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.028382
                        },
                        {
                          "name": "duelLost",
                          "margin": 0.011505
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": -0.010144
                        }
                      ],
                      "others_margin": 0.019438
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.79409259557724,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "wonTackle",
                        "importance": 0.1003
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0586
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0501
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0492
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0386
                      }
                    ],
                    "decomposition": {
                      "base": 0.8256,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0332
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0313
                        },
                        {
                          "name": "tackle_success_rate",
                          "contribution": 0.0228
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.0195
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.0129
                        }
                      ],
                      "others": 0.0036,
                      "total": 0.7941,
                      "log_link": true,
                      "margin_base": -0.191612,
                      "item_margins": [
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.04103
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.040298
                        },
                        {
                          "name": "tackle_success_rate",
                          "margin": 0.029479
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.024543
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": -0.016233
                        }
                      ],
                      "others_margin": 0.004596
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 3.330251932144165,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalClearance",
                        "importance": 0.138
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0733
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.034
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 3.3876,
                      "items": [
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.3823
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.3441
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.1533
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0352
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.033
                        }
                      ],
                      "others": -0.0104,
                      "total": 3.3303,
                      "log_link": true,
                      "margin_base": 1.220122,
                      "item_margins": [
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.106938
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.09572
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.045772
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.010684
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.009923
                        }
                      ],
                      "others_margin": -0.003128
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 1.0897828340530396,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "aerialWon",
                        "importance": 0.1155
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0659
                      },
                      {
                        "name": "aerial_dominance",
                        "importance": 0.0345
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0335
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0332
                      }
                    ],
                    "decomposition": {
                      "base": 1.2696,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": -0.1437
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.116
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0415
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0324
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0276
                        }
                      ],
                      "others": 0.0614,
                      "total": 1.0898,
                      "log_link": true,
                      "margin_base": 0.238719,
                      "item_margins": [
                        {
                          "name": "aerialWon",
                          "margin": -0.120093
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.108685
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.041908
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.032895
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": 0.027247
                        }
                      ],
                      "others_margin": 0.057803
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.4454,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0373
                      },
                      {
                        "name": "long_ball_accuracy",
                        "importance": 0.0337
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0333
                      },
                      {
                        "name": "errorLeadToAGoal",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0306
                      }
                    ],
                    "decomposition": {
                      "base": 0.476,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0203
                        },
                        {
                          "name": "aerialLost",
                          "contribution": -0.0191
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.0155
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": -0.014
                        },
                        {
                          "name": "tackle_success_rate",
                          "contribution": -0.0113
                        }
                      ],
                      "others": -0.022,
                      "total": 0.4454,
                      "log_link": false,
                      "margin_base": 0.476045,
                      "item_margins": [
                        {
                          "name": "passValueNormalized",
                          "margin": 0.020301
                        },
                        {
                          "name": "aerialLost",
                          "margin": -0.019143
                        },
                        {
                          "name": "totalPass",
                          "margin": 0.015541
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": -0.014047
                        },
                        {
                          "name": "tackle_success_rate",
                          "margin": -0.01127
                        }
                      ],
                      "others_margin": -0.022035
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.87237024307251,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0639
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0627
                      },
                      {
                        "name": "defensiveValueNormalized",
                        "importance": 0.0466
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0352
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 6.7578,
                      "items": [
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0577
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.032
                        },
                        {
                          "name": "touches",
                          "contribution": 0.0308
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": -0.0224
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": -0.022
                        }
                      ],
                      "others": 0.0385,
                      "total": 6.8724,
                      "log_link": false,
                      "margin_base": 6.757789,
                      "item_margins": [
                        {
                          "name": "defensiveValueNormalized",
                          "margin": 0.057671
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.031971
                        },
                        {
                          "name": "touches",
                          "margin": 0.030758
                        },
                        {
                          "name": "duel_win_rate",
                          "margin": -0.022378
                        },
                        {
                          "name": "duelWon_p90",
                          "margin": -0.021969
                        }
                      ],
                      "others_margin": 0.038528
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0224, quality 0.575)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.8724,
                "minutes": 86,
                "total_pass": 73,
                "accurate_pass": 69,
                "duels_won": 4,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 47,
                "accurate_own_half_passes": 46,
                "total_opp_half_passes": 26,
                "accurate_opp_half_passes": 22,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 83,
                "possession_lost": 5.1122,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0102,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 13,
                "total_progression": 15,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0
              },
              "params": {
                "market_value_eur": 14600000,
                "quality_factor": 0.5748,
                "boost_factor": 1.0224
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0000)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.8724,
                "minutes": 86,
                "total_pass": 73,
                "accurate_pass": 69,
                "duels_won": 4,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 47,
                "accurate_own_half_passes": 46,
                "total_opp_half_passes": 26,
                "accurate_opp_half_passes": 22,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 83,
                "possession_lost": 5.1122,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0102,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 13,
                "total_progression": 15,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0
              },
              "params": {
                "blend_weight": 0.0,
                "history_matches": 3,
                "prior_reliability": 0.0,
                "competition": "La Liga",
                "squad": "Villarreal"
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.8724,
                "minutes": 86,
                "total_pass": 73,
                "accurate_pass": 69,
                "duels_won": 4,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 47,
                "accurate_own_half_passes": 46,
                "total_opp_half_passes": 26,
                "accurate_opp_half_passes": 22,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 83,
                "possession_lost": 5.1122,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0102,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 13,
                "total_progression": 15,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.8724,
                "minutes": 86,
                "total_pass": 73,
                "accurate_pass": 69,
                "duels_won": 4,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 47,
                "accurate_own_half_passes": 46,
                "total_opp_half_passes": 26,
                "accurate_opp_half_passes": 22,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 83,
                "possession_lost": 5.1122,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0102,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 13,
                "total_progression": 15,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "opponent_faced": "Kylian Mbappé",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Kylian Mbappé",
                  "matchup_zone": "Shape fallback"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.35 (squad xG sum 1.1115, xG scale 1.2128, xA scale 0.9580, team xA 1.08 = 0.80 x lambda)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.8724,
                "minutes": 86,
                "total_pass": 73,
                "accurate_pass": 69,
                "duels_won": 4,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 47,
                "accurate_own_half_passes": 46,
                "total_opp_half_passes": 26,
                "accurate_opp_half_passes": 22,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 83,
                "possession_lost": 5.1122,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0098,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 13,
                "total_progression": 15,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "opponent_faced": "Kylian Mbappé",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 0.8306
              },
              "params": {
                "team_lambda": 1.348,
                "squad_xg_sum": 1.1115,
                "squad_xa_sum": 1.1257,
                "team_expected_assists": 1.0784,
                "team_xa_to_xg_ratio": 0.8,
                "bench_appearance_weighted": true,
                "xg_scale": 1.2128,
                "xa_scale": 0.958,
                "opponent_lambda": 3.538,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 10 by projected rating, fifa_overall 74.0; not used by the projection)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.8724,
                "minutes": 86,
                "total_pass": 73,
                "accurate_pass": 69,
                "duels_won": 4,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 47,
                "accurate_own_half_passes": 46,
                "total_opp_half_passes": 26,
                "accurate_opp_half_passes": 22,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 83,
                "possession_lost": 5.1122,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0098,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 13,
                "total_progression": 15,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "opponent_faced": "Kylian Mbappé",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 0.8306,
                "fifa_overall": 74.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": 3794,
                "fifa_rank": 2923.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": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.8724,
                "minutes": 86,
                "total_pass": 73,
                "accurate_pass": 69,
                "duels_won": 4,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 47,
                "accurate_own_half_passes": 46,
                "total_opp_half_passes": 26,
                "accurate_opp_half_passes": 22,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 83,
                "possession_lost": 5.1122,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0098,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 13,
                "total_progression": 15,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "opponent_faced": "Kylian Mbappé",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 0.8306,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 0.001,
                "squad_weight_total": 1.3104,
                "weight_share": 0.0008,
                "finishing_factor": 1.0,
                "appearance_weight": 1.0,
                "weight_rank": 13,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Georges Mikautadze",
                    "weight": 0.3558,
                    "already": 0,
                    "effective_weight": 0.3558,
                    "runner_up": "Alberto Moleiro",
                    "runner_up_effective_weight": 0.3304
                  }
                ]
              }
            },
            {
              "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,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.8724,
                "minutes": 86,
                "total_pass": 73,
                "accurate_pass": 69,
                "duels_won": 4,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 47,
                "accurate_own_half_passes": 46,
                "total_opp_half_passes": 26,
                "accurate_opp_half_passes": 22,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 83,
                "possession_lost": 5.1122,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0098,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 13,
                "total_progression": 15,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "opponent_faced": "Kylian Mbappé",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0098,
                "finishing_factor": 1.0,
                "creation_factor": 0.8306,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0098,
                "provider_weight": 0.0081,
                "squad_weight_total": 1.0247,
                "weight_share": 0.0079,
                "creation_factor": 0.8306,
                "appearance_weight": 1.0,
                "weight_rank": 11,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Alberto Moleiro",
                    "weight": 0.2034,
                    "already": 0,
                    "effective_weight": 0.2034,
                    "runner_up": "Ilias Akhomach",
                    "runner_up_effective_weight": 0.1848,
                    "blocked_own_goal": [
                      "Georges Mikautadze"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Logan Costa": {
          "player_id": 911853,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 2,
          "height": 188,
          "market_value": 14600000,
          "stats": {
            "interceptions": 0,
            "tackles": 1,
            "tackles_won": 0,
            "clearances": 2,
            "aerial_won": 1,
            "total_shots": 1,
            "rating": 6.7382,
            "minutes": 83,
            "total_pass": 53,
            "accurate_pass": 49,
            "duels_won": 1,
            "total_long_balls": 3,
            "accurate_long_balls": 2,
            "total_own_half_passes": 30,
            "accurate_own_half_passes": 28,
            "total_opp_half_passes": 24,
            "accurate_opp_half_passes": 21,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 57,
            "possession_lost": 5.1122,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 2,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 1,
            "goal_rate": 0.0,
            "goals": 0,
            "assist_rate": 0.0,
            "assists": 0,
            "expected_goals": 0.0743,
            "expected_assists": 0.0294,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 21,
            "total_progression": 114,
            "progressive_carries": 0,
            "key_pass": 0,
            "shots_off_target": 1,
            "tackles_in_zone": 2.0,
            "tackles_won_in_zone": 1.6,
            "interceptions_in_zone": 0.9,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 0.9,
            "defensive_success_rate": 0.492,
            "opponent_faced": "Federico Valverde",
            "pressing_zone": "LWB vs RWB",
            "matchup_zone": "LWB vs RWB",
            "antagonist_source": "defensive_duel, attacking_duel",
            "projected_goals": 0,
            "goal_probability": 0.0716,
            "projected_assists": 0,
            "assist_probability": 0.029,
            "finishing_factor": 0.8,
            "creation_factor": 0.8,
            "fifa_overall": 76.0
          },
          "latest_10_games": [
            {
              "match_id": 16416324.0,
              "match_date": "2026-09-05",
              "home_team": "Villarreal",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 83,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0572,
                "expected_assists": 0.0285,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 52,
                "accurate_pass": 48,
                "clearances": 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"
            }
          ],
          "ranking": {
            "global_player_rank": 3313,
            "combined_rank_score": 1271.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 578.0,
            "sofascore_rating": 6.8,
            "sofascore_appearances": 2.0,
            "fifa_rank": 1965.0,
            "fifa_overall": 76.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 15,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.7382,
            "source_file": "data/player_rankings.csv",
            "player_name": "Logan Costa",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Luca Ranieri",
                  "ranking": 3308
                },
                {
                  "player_name": "Răzvan Marin",
                  "ranking": 3309
                },
                {
                  "player_name": "Diego Coppola",
                  "ranking": 3310
                },
                {
                  "player_name": "Pablo Rosario",
                  "ranking": 3311
                },
                {
                  "player_name": "Víctor Gómez",
                  "ranking": 3312
                }
              ],
              "lower": [
                {
                  "player_name": "Santiago Ascacíbar",
                  "ranking": 3314
                },
                {
                  "player_name": "Rio Ngumoha",
                  "ranking": 3315
                },
                {
                  "player_name": "Kyle Walker-Peters",
                  "ranking": 3316
                },
                {
                  "player_name": "Alberto Costa",
                  "ranking": 3317
                },
                {
                  "player_name": "Tajon Buchanan",
                  "ranking": 3318
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.312,
          "history_matches": 1,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "D_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "totalOppositionHalfPasses",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "ballRecovery",
              "touches",
              "totalClearance",
              "wonTackle",
              "interceptionWon",
              "dispossessed",
              "challengeLost",
              "errorLeadToAShot",
              "errorLeadToAGoal",
              "possessionLostCtrl",
              "passValueNormalized",
              "defensiveValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "totalShots",
              "rating"
            ],
            "history_matches": 1,
            "data_confidence": 0.312,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0224,
            "fbref_prior_metrics": {
              "squad": "Villarreal",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 0.0,
              "starts": 0.0,
              "prior_reliability": 0.0
            },
            "rationale": "XGBoost regressor (D_service) evaluated 1 historical appearances across 7 target models; FBref 2026-2027 prior blended (La Liga, Villarreal, 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": 0,
                "tackles": 1,
                "tackles_won": 0,
                "clearances": 2,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.7382,
                "minutes": 83,
                "total_pass": 52,
                "accurate_pass": 48,
                "duels_won": 1,
                "total_long_balls": 3,
                "accurate_long_balls": 2,
                "total_own_half_passes": 29,
                "accurate_own_half_passes": 27,
                "total_opp_half_passes": 23,
                "accurate_opp_half_passes": 21,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 56,
                "possession_lost": 5.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.06,
                "expected_assists": 0.03,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 21,
                "total_progression": 112,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:01:55.523250+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 402,
                    "rows": 11400
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 83.0,
                    "is_starting": true,
                    "weight": 1.0,
                    "rating": 6.6
                  }
                ],
                "feature_row": {
                  "history_matches": 1.0,
                  "is_starting_11": 1.0,
                  "totalClearance": 1.0,
                  "defensive_actions": 0.0,
                  "wonTackle": 0.0,
                  "totalTackle_p90": 0.0,
                  "totalClearance_p90": 1.0843,
                  "aerialWon": 1.0
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.3861106336116791,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "interceptionWon",
                        "importance": 0.0903
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0858
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.052
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0447
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0364
                      }
                    ],
                    "decomposition": {
                      "base": 0.9034,
                      "items": [
                        {
                          "name": "interceptionWon_p90",
                          "contribution": -0.2691
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.1511
                        },
                        {
                          "name": "history_matches",
                          "contribution": -0.0777
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0162
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.006
                        }
                      ],
                      "others": 0.0028,
                      "total": 0.3861,
                      "log_link": true,
                      "margin_base": -0.101631,
                      "item_margins": [
                        {
                          "name": "interceptionWon_p90",
                          "margin": -0.353666
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.272199
                        },
                        {
                          "name": "history_matches",
                          "margin": -0.175378
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.040833
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.015575
                        }
                      ],
                      "others_margin": 0.00765
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 0.5556613802909851,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "defensive_actions",
                        "importance": 0.1044
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0863
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0629
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.045
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0342
                      }
                    ],
                    "decomposition": {
                      "base": 1.3313,
                      "items": [
                        {
                          "name": "totalTackle_p90",
                          "contribution": -0.4514
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.1784
                        },
                        {
                          "name": "history_matches",
                          "contribution": -0.1046
                        },
                        {
                          "name": "wonTackle",
                          "contribution": -0.0348
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0079
                        }
                      ],
                      "others": 0.0015,
                      "total": 0.5557,
                      "log_link": true,
                      "margin_base": 0.286166,
                      "item_margins": [
                        {
                          "name": "totalTackle_p90",
                          "margin": -0.414054
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.226606
                        },
                        {
                          "name": "history_matches",
                          "margin": -0.161409
                        },
                        {
                          "name": "wonTackle",
                          "margin": -0.06
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.014205
                        }
                      ],
                      "others_margin": 0.002512
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.424363374710083,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "wonTackle",
                        "importance": 0.1003
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0586
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0501
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0492
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0386
                      }
                    ],
                    "decomposition": {
                      "base": 0.8256,
                      "items": [
                        {
                          "name": "wonTackle",
                          "contribution": -0.2644
                        },
                        {
                          "name": "history_matches",
                          "contribution": -0.0617
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0398
                        },
                        {
                          "name": "tackle_success_rate",
                          "contribution": -0.0255
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": -0.0168
                        }
                      ],
                      "others": 0.007,
                      "total": 0.4244,
                      "log_link": true,
                      "margin_base": -0.191612,
                      "item_margins": [
                        {
                          "name": "wonTackle",
                          "margin": -0.386072
                        },
                        {
                          "name": "history_matches",
                          "margin": -0.116451
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.082944
                        },
                        {
                          "name": "tackle_success_rate",
                          "margin": -0.057143
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": -0.039401
                        }
                      ],
                      "others_margin": 0.016457
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 1.8886972665786743,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalClearance",
                        "importance": 0.138
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0733
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.034
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 3.3876,
                      "items": [
                        {
                          "name": "totalClearance",
                          "contribution": -0.991
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.4464
                        },
                        {
                          "name": "history_matches",
                          "contribution": -0.2041
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0563
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0293
                        }
                      ],
                      "others": 0.057,
                      "total": 1.8887,
                      "log_link": true,
                      "margin_base": 1.220122,
                      "item_margins": [
                        {
                          "name": "totalClearance",
                          "margin": -0.346081
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.206111
                        },
                        {
                          "name": "history_matches",
                          "margin": -0.11057
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.03172
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.016129
                        }
                      ],
                      "others_margin": 0.030677
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.9565929770469666,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "aerialWon",
                        "importance": 0.1155
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0659
                      },
                      {
                        "name": "aerial_dominance",
                        "importance": 0.0345
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0335
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0332
                      }
                    ],
                    "decomposition": {
                      "base": 1.2696,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": -0.207
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.1398
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0468
                        },
                        {
                          "name": "aerial_dominance",
                          "contribution": 0.0448
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0368
                        }
                      ],
                      "others": -0.001,
                      "total": 0.9566,
                      "log_link": true,
                      "margin_base": 0.238719,
                      "item_margins": [
                        {
                          "name": "aerialWon",
                          "margin": -0.178011
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.141039
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.051996
                        },
                        {
                          "name": "aerial_dominance",
                          "margin": 0.049892
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.03918
                        }
                      ],
                      "others_margin": -0.001123
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.561821699142456,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0373
                      },
                      {
                        "name": "long_ball_accuracy",
                        "importance": 0.0337
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0333
                      },
                      {
                        "name": "errorLeadToAGoal",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0306
                      }
                    ],
                    "decomposition": {
                      "base": 0.476,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0422
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.0343
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": -0.0252
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": -0.019
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": 0.014
                        }
                      ],
                      "others": 0.0395,
                      "total": 0.5618,
                      "log_link": false,
                      "margin_base": 0.476045,
                      "item_margins": [
                        {
                          "name": "passValueNormalized",
                          "margin": 0.042245
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.034263
                        },
                        {
                          "name": "duelWon_p90",
                          "margin": -0.025173
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": -0.019022
                        },
                        {
                          "name": "duel_win_rate",
                          "margin": 0.014039
                        }
                      ],
                      "others_margin": 0.039424
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.738183498382568,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0639
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0627
                      },
                      {
                        "name": "defensiveValueNormalized",
                        "importance": 0.0466
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0352
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 6.7578,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0926
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0907
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": 0.0447
                        },
                        {
                          "name": "duelWon",
                          "contribution": -0.0311
                        },
                        {
                          "name": "history_matches",
                          "contribution": -0.0295
                        }
                      ],
                      "others": -0.0056,
                      "total": 6.7382,
                      "log_link": false,
                      "margin_base": 6.757789,
                      "item_margins": [
                        {
                          "name": "passValueNormalized",
                          "margin": 0.092576
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": -0.090734
                        },
                        {
                          "name": "duel_win_rate",
                          "margin": 0.044744
                        },
                        {
                          "name": "duelWon",
                          "margin": -0.031116
                        },
                        {
                          "name": "history_matches",
                          "margin": -0.029464
                        }
                      ],
                      "others_margin": -0.005611
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0224, quality 0.575)",
              "stats": {
                "interceptions": 0,
                "tackles": 1,
                "tackles_won": 0,
                "clearances": 2,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.7382,
                "minutes": 83,
                "total_pass": 53,
                "accurate_pass": 49,
                "duels_won": 1,
                "total_long_balls": 3,
                "accurate_long_balls": 2,
                "total_own_half_passes": 30,
                "accurate_own_half_passes": 28,
                "total_opp_half_passes": 24,
                "accurate_opp_half_passes": 21,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "possession_lost": 5.1122,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0613,
                "expected_assists": 0.0307,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 21,
                "total_progression": 114,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 14600000,
                "quality_factor": 0.5748,
                "boost_factor": 1.0224
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0000)",
              "stats": {
                "interceptions": 0,
                "tackles": 1,
                "tackles_won": 0,
                "clearances": 2,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.7382,
                "minutes": 83,
                "total_pass": 53,
                "accurate_pass": 49,
                "duels_won": 1,
                "total_long_balls": 3,
                "accurate_long_balls": 2,
                "total_own_half_passes": 30,
                "accurate_own_half_passes": 28,
                "total_opp_half_passes": 24,
                "accurate_opp_half_passes": 21,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "possession_lost": 5.1122,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0613,
                "expected_assists": 0.0307,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 21,
                "total_progression": 114,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 1
              },
              "params": {
                "blend_weight": 0.0,
                "history_matches": 1,
                "prior_reliability": 0.0,
                "competition": "La Liga",
                "squad": "Villarreal"
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 0,
                "tackles": 1,
                "tackles_won": 0,
                "clearances": 2,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.7382,
                "minutes": 83,
                "total_pass": 53,
                "accurate_pass": 49,
                "duels_won": 1,
                "total_long_balls": 3,
                "accurate_long_balls": 2,
                "total_own_half_passes": 30,
                "accurate_own_half_passes": 28,
                "total_opp_half_passes": 24,
                "accurate_opp_half_passes": 21,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "possession_lost": 5.1122,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0613,
                "expected_assists": 0.0307,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 21,
                "total_progression": 114,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 1
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "interceptions": 0,
                "tackles": 1,
                "tackles_won": 0,
                "clearances": 2,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.7382,
                "minutes": 83,
                "total_pass": 53,
                "accurate_pass": 49,
                "duels_won": 1,
                "total_long_balls": 3,
                "accurate_long_balls": 2,
                "total_own_half_passes": 30,
                "accurate_own_half_passes": 28,
                "total_opp_half_passes": 24,
                "accurate_opp_half_passes": 21,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "possession_lost": 5.1122,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0613,
                "expected_assists": 0.0307,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 21,
                "total_progression": 114,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 1,
                "tackles_in_zone": 2.0,
                "tackles_won_in_zone": 1.6,
                "interceptions_in_zone": 0.9,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.9,
                "defensive_success_rate": 0.492,
                "opponent_faced": "Federico Valverde",
                "pressing_zone": "LWB vs RWB",
                "matchup_zone": "LWB vs RWB",
                "antagonist_source": "defensive_duel, attacking_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Federico Valverde",
                  "matchup_zone": "LWB vs RWB"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.35 (squad xG sum 1.1115, xG scale 1.2128, xA scale 0.9580, team xA 1.08 = 0.80 x lambda)",
              "stats": {
                "interceptions": 0,
                "tackles": 1,
                "tackles_won": 0,
                "clearances": 2,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.7382,
                "minutes": 83,
                "total_pass": 53,
                "accurate_pass": 49,
                "duels_won": 1,
                "total_long_balls": 3,
                "accurate_long_balls": 2,
                "total_own_half_passes": 30,
                "accurate_own_half_passes": 28,
                "total_opp_half_passes": 24,
                "accurate_opp_half_passes": 21,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "possession_lost": 5.1122,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0743,
                "expected_assists": 0.0294,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 21,
                "total_progression": 114,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 1,
                "tackles_in_zone": 2.0,
                "tackles_won_in_zone": 1.6,
                "interceptions_in_zone": 0.9,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.9,
                "defensive_success_rate": 0.492,
                "opponent_faced": "Federico Valverde",
                "pressing_zone": "LWB vs RWB",
                "matchup_zone": "LWB vs RWB",
                "antagonist_source": "defensive_duel, attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 1.348,
                "squad_xg_sum": 1.1115,
                "squad_xa_sum": 1.1257,
                "team_expected_assists": 1.0784,
                "team_xa_to_xg_ratio": 0.8,
                "bench_appearance_weighted": true,
                "xg_scale": 1.2128,
                "xa_scale": 0.958,
                "opponent_lambda": 3.538,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0613,
                  "after": 0.0743
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 15 by projected rating, fifa_overall 76.0; not used by the projection)",
              "stats": {
                "interceptions": 0,
                "tackles": 1,
                "tackles_won": 0,
                "clearances": 2,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.7382,
                "minutes": 83,
                "total_pass": 53,
                "accurate_pass": 49,
                "duels_won": 1,
                "total_long_balls": 3,
                "accurate_long_balls": 2,
                "total_own_half_passes": 30,
                "accurate_own_half_passes": 28,
                "total_opp_half_passes": 24,
                "accurate_opp_half_passes": 21,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "possession_lost": 5.1122,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0743,
                "expected_assists": 0.0294,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 21,
                "total_progression": 114,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 1,
                "tackles_in_zone": 2.0,
                "tackles_won_in_zone": 1.6,
                "interceptions_in_zone": 0.9,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.9,
                "defensive_success_rate": 0.492,
                "opponent_faced": "Federico Valverde",
                "pressing_zone": "LWB vs RWB",
                "matchup_zone": "LWB vs RWB",
                "antagonist_source": "defensive_duel, attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 0.8,
                "fifa_overall": 76.0
              },
              "params": {
                "match_squad_rank": 15,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3313,
                "fifa_rank": 1965.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": {
                "interceptions": 0,
                "tackles": 1,
                "tackles_won": 0,
                "clearances": 2,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.7382,
                "minutes": 83,
                "total_pass": 53,
                "accurate_pass": 49,
                "duels_won": 1,
                "total_long_balls": 3,
                "accurate_long_balls": 2,
                "total_own_half_passes": 30,
                "accurate_own_half_passes": 28,
                "total_opp_half_passes": 24,
                "accurate_opp_half_passes": 21,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "possession_lost": 5.1122,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0743,
                "expected_assists": 0.0294,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 21,
                "total_progression": 114,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 1,
                "tackles_in_zone": 2.0,
                "tackles_won_in_zone": 1.6,
                "interceptions_in_zone": 0.9,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.9,
                "defensive_success_rate": 0.492,
                "opponent_faced": "Federico Valverde",
                "pressing_zone": "LWB vs RWB",
                "matchup_zone": "LWB vs RWB",
                "antagonist_source": "defensive_duel, attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0716,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 0.8,
                "fifa_overall": 76.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0716,
                "scorer_weight": 0.0594,
                "squad_weight_total": 1.3104,
                "weight_share": 0.0454,
                "finishing_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 6,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Georges Mikautadze",
                    "weight": 0.3558,
                    "already": 0,
                    "effective_weight": 0.3558,
                    "runner_up": "Alberto Moleiro",
                    "runner_up_effective_weight": 0.3304
                  }
                ]
              }
            },
            {
              "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,
                "tackles": 1,
                "tackles_won": 0,
                "clearances": 2,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.7382,
                "minutes": 83,
                "total_pass": 53,
                "accurate_pass": 49,
                "duels_won": 1,
                "total_long_balls": 3,
                "accurate_long_balls": 2,
                "total_own_half_passes": 30,
                "accurate_own_half_passes": 28,
                "total_opp_half_passes": 24,
                "accurate_opp_half_passes": 21,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "possession_lost": 5.1122,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0743,
                "expected_assists": 0.0294,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 21,
                "total_progression": 114,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 1,
                "tackles_in_zone": 2.0,
                "tackles_won_in_zone": 1.6,
                "interceptions_in_zone": 0.9,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.9,
                "defensive_success_rate": 0.492,
                "opponent_faced": "Federico Valverde",
                "pressing_zone": "LWB vs RWB",
                "matchup_zone": "LWB vs RWB",
                "antagonist_source": "defensive_duel, attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0716,
                "projected_assists": 0,
                "assist_probability": 0.029,
                "finishing_factor": 0.8,
                "creation_factor": 0.8,
                "fifa_overall": 76.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.029,
                "provider_weight": 0.0235,
                "squad_weight_total": 1.0247,
                "weight_share": 0.023,
                "creation_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 9,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Alberto Moleiro",
                    "weight": 0.2034,
                    "already": 0,
                    "effective_weight": 0.2034,
                    "runner_up": "Ilias Akhomach",
                    "runner_up_effective_weight": 0.1848,
                    "blocked_own_goal": [
                      "Georges Mikautadze"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Alberto Moleiro": {
          "player_id": 1012444,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 10,
          "height": 172,
          "market_value": 54000000,
          "stats": {
            "key_pass": 2,
            "expected_assists": 0.2267,
            "assist_rate": 0.2072,
            "assists": 1,
            "expected_goals": 0.2643,
            "goal_rate": 0.4227,
            "goals": 0,
            "shots_on_target": 1,
            "total_shots": 2,
            "rating": 7.0985,
            "minutes": 59,
            "total_pass": 35,
            "accurate_pass": 31,
            "duels_won": 4,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 0,
            "accurate_own_half_passes": 0,
            "total_opp_half_passes": 29,
            "accurate_opp_half_passes": 25,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 49,
            "possession_lost": 10.8569,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 17,
            "total_progression": 70,
            "progressive_carries": 3,
            "shots_off_target": 1,
            "offsides": 1,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "minutesPct": 52.6,
            "pointsPerMatch": 0.67,
            "netGoalDifferencePer90": 0.0,
            "duel_xg_multiplier": 0.9503,
            "dribbles_attempted": 3,
            "dribbles_successful": 1.0,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.386,
            "pressing_faced": "ULTRA_HIGH",
            "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
            "numerical_situation": "1v1",
            "opponent_defenders": "Arda Güler",
            "opponent_faced": "Arda Güler",
            "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.2323,
            "projected_assists": 1,
            "assist_probability": 0.2028,
            "finishing_factor": 1.25,
            "creation_factor": 0.8974,
            "fifa_overall": 79.0
          },
          "latest_10_games": [
            {
              "match_id": 16416294.0,
              "match_date": "2026-09-20",
              "home_team": "Villarreal",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 90,
                "rating": 8.8,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 2.0,
                "assists": 2,
                "expected_goals": 0.8805,
                "expected_assists": 0.6499,
                "total_shots": 3,
                "shots_on_target": 2,
                "shots_off_target": 1,
                "total_pass": 47,
                "accurate_pass": 42,
                "key_pass": 7,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 2,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416338.0,
              "match_date": "2026-09-17",
              "home_team": "Málaga CF",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 80,
                "rating": 7.6,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.3466,
                "expected_assists": 0.6761,
                "total_shots": 3,
                "shots_on_target": 2,
                "shots_off_target": 1,
                "total_pass": 54,
                "accurate_pass": 44,
                "key_pass": 2,
                "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": 16416333.0,
              "match_date": "2026-09-14",
              "home_team": "Villarreal",
              "away_team": "Real Betis",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 35,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1381,
                "expected_assists": 0.1304,
                "total_shots": 2,
                "shots_off_target": 1,
                "total_pass": 24,
                "accurate_pass": 23,
                "key_pass": 2,
                "tackles": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416324.0,
              "match_date": "2026-09-05",
              "home_team": "Villarreal",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 62,
                "rating": 7.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.2202,
                "expected_assists": 0.158,
                "total_shots": 2,
                "shots_on_target": 2,
                "total_pass": 31,
                "accurate_pass": 25,
                "key_pass": 1,
                "tackles": 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": 16416290.0,
              "match_date": "2026-08-28",
              "home_team": "Deportivo Alavés",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Villarreal",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 27,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.2319,
                "total_shots": 0,
                "total_pass": 13,
                "accurate_pass": 12,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416302.0,
              "match_date": "2026-08-23",
              "home_team": "Atlético Madrid",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 60,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0657,
                "total_shots": 0,
                "total_pass": 29,
                "accurate_pass": 26,
                "key_pass": 1,
                "tackles": 3,
                "tackles_won": 2,
                "clearances": 1,
                "duels_won": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421061.0,
              "match_date": "2026-08-16",
              "home_team": "Real Racing Club",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 56,
                "rating": 6.7,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_assists": 0.1651,
                "total_shots": 0,
                "total_pass": 27,
                "accurate_pass": 26,
                "key_pass": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 1102,
            "combined_rank_score": 671.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 494.0,
            "sofascore_rating": 6.8622,
            "sofascore_appearances": 37.0,
            "fifa_rank": 849.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.0985,
            "source_file": "data/player_rankings.csv",
            "player_name": "Alberto Moleiro",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Merih Demiral",
                  "ranking": 1097
                },
                {
                  "player_name": "César Azpilicueta",
                  "ranking": 1098
                },
                {
                  "player_name": "Sardor Mirzayev",
                  "ranking": 1099
                },
                {
                  "player_name": "Mukhammadkodir Khamraliev",
                  "ranking": 1100
                },
                {
                  "player_name": "Pascal Groß",
                  "ranking": 1101
                }
              ],
              "lower": [
                {
                  "player_name": "Angelo Stiller",
                  "ranking": 1103
                },
                {
                  "player_name": "Mauro Júnior",
                  "ranking": 1104
                },
                {
                  "player_name": "Konstantinos Tzolakis",
                  "ranking": 1105
                },
                {
                  "player_name": "Pau Torres",
                  "ranking": 1106
                },
                {
                  "player_name": "Ju-yeong Jo",
                  "ranking": 1107
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.704,
          "history_matches": 7,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 7,
            "data_confidence": 0.704,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.1011,
            "fbref_prior_metrics": {
              "squad": "Villarreal",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 2.0,
              "minutes": 142.0,
              "goals_per90": 0.0,
              "assists_per90": 0.625,
              "shots_per90": 0.0,
              "prior_reliability": 0.1067
            },
            "rationale": "XGBoost regressor (M_service) evaluated 7 historical appearances across 8 target models; FBref 2026-2027 prior blended (La Liga, Villarreal, rel: 0.11, gls/90: 0.0, ast/90: 0.625)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.2149,
                "assist_rate": 0.1769,
                "assists": 0,
                "expected_goals": 0.2083,
                "goal_rate": 0.4159,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.0985,
                "minutes": 59,
                "total_pass": 32,
                "accurate_pass": 28,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 27,
                "accurate_opp_half_passes": 23,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 45,
                "possession_lost": 9.86,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 63,
                "progressive_carries": 2,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 6,
                  "trained_at": "2026-09-29T10:02:07.046807+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 550,
                    "rows": 13779
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Levante UD",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2208,
                    "rating": 8.8
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Málaga CF",
                    "minutes": 80.0,
                    "is_starting": true,
                    "weight": 0.1877,
                    "rating": 7.6
                  },
                  {
                    "match_date": "2026-09-14",
                    "opponent": "Real Betis",
                    "minutes": 35.0,
                    "is_starting": true,
                    "weight": 0.1595,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 62.0,
                    "is_starting": true,
                    "weight": 0.1356,
                    "rating": 7.4
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Deportivo Alavés",
                    "minutes": 27.0,
                    "is_starting": false,
                    "weight": 0.1152,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Atlético Madrid",
                    "minutes": 60.0,
                    "is_starting": true,
                    "weight": 0.098,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-08-16",
                    "opponent": "Real Racing Club",
                    "minutes": 56.0,
                    "is_starting": true,
                    "weight": 0.0833,
                    "rating": 6.7
                  }
                ],
                "feature_row": {
                  "history_matches": 7.0,
                  "is_starting_11": 1.0,
                  "totalShots": 1.8155,
                  "expectedAssists": 0.3595,
                  "creative_index": 1.3177,
                  "creative_efficiency": 0.1558,
                  "shotValueNormalized": 0.1801,
                  "dribbleValueNormalized": 0.2813
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 1.84415864944458,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.12
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0959
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0798
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0429
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0425
                      }
                    ],
                    "decomposition": {
                      "base": 0.9267,
                      "items": [
                        {
                          "name": "keyPass",
                          "contribution": 0.2211
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.239
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.1085
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.0681
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0398
                        }
                      ],
                      "others": 0.241,
                      "total": 1.8442,
                      "log_link": true,
                      "margin_base": -0.076148,
                      "item_margins": [
                        {
                          "name": "keyPass",
                          "margin": 0.21402
                        },
                        {
                          "name": "creative_index",
                          "margin": 0.189171
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.075299
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": 0.044523
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.025152
                        }
                      ],
                      "others_margin": 0.140005
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.2148662507534027,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.118
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0768
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0579
                      },
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0397
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0318
                      }
                    ],
                    "decomposition": {
                      "base": 0.0872,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0574
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0091
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0085
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.0075
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0077
                        }
                      ],
                      "others": 0.0375,
                      "total": 0.2149,
                      "log_link": true,
                      "margin_base": -2.439192,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": 0.505876
                        },
                        {
                          "name": "creative_index",
                          "margin": 0.061285
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.053911
                        },
                        {
                          "name": "cross_creative_contribution",
                          "margin": 0.045346
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.044497
                        }
                      ],
                      "others_margin": 0.190537
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.1769002079963684,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0669
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0574
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0465
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0404
                      },
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0277
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0489
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.0107
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0115
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.0042
                        },
                        {
                          "name": "cross_accuracy",
                          "contribution": 0.0043
                        }
                      ],
                      "others": 0.0122,
                      "total": 0.1769,
                      "log_link": true,
                      "margin_base": -2.463441,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": 0.454029
                        },
                        {
                          "name": "keyPass",
                          "margin": 0.076699
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.076512
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": 0.02659
                        },
                        {
                          "name": "cross_accuracy",
                          "margin": 0.026281
                        }
                      ],
                      "others_margin": 0.071162
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.2082737684249878,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.082
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0374
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0365
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.035
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0344
                      }
                    ],
                    "decomposition": {
                      "base": 0.1826,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0211
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0137
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0093
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0054
                        },
                        {
                          "name": "totalProgression",
                          "contribution": 0.0051
                        }
                      ],
                      "others": -0.0015,
                      "total": 0.2083,
                      "log_link": true,
                      "margin_base": -1.700309,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": 0.109226
                        },
                        {
                          "name": "intensity_index",
                          "margin": -0.069617
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.047759
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.026689
                        },
                        {
                          "name": "totalProgression",
                          "margin": 0.024418
                        }
                      ],
                      "others_margin": -0.007067
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.4159093499183655,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0879
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0676
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0367
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.031
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0294
                      }
                    ],
                    "decomposition": {
                      "base": 0.1479,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0538
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0585
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": 0.0184
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0168
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": 0.0145
                        }
                      ],
                      "others": 0.106,
                      "total": 0.4159,
                      "log_link": true,
                      "margin_base": -1.911166,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": 0.310162
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.254489
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "margin": 0.068428
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.058575
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": 0.048084
                        }
                      ],
                      "others_margin": 0.294139
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.5425829291343689,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1114
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0574
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0383
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0333
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.033
                      }
                    ],
                    "decomposition": {
                      "base": 0.3374,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0811
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0619
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0261
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0226
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": 0.02
                        }
                      ],
                      "others": 0.0909,
                      "total": 0.5426,
                      "log_link": true,
                      "margin_base": -1.086396,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.215382
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": 0.137861
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.055782
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": -0.051027
                        },
                        {
                          "name": "ballRecovery_p90",
                          "margin": 0.045203
                        }
                      ],
                      "others_margin": 0.183344
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.4845829291343688,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1236
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0751
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0663
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0364
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 1.0381,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.3298
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0764
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0602
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0569
                        },
                        {
                          "name": "dispossessed",
                          "contribution": -0.0353
                        }
                      ],
                      "others": 0.1113,
                      "total": 1.4846,
                      "log_link": false,
                      "margin_base": 1.038069,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.329811
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.076423
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.060165
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.056861
                        },
                        {
                          "name": "dispossessed",
                          "margin": -0.035312
                        }
                      ],
                      "others_margin": 0.111409
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 7.098488807678223,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0666
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "touches",
                        "importance": 0.041
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0305
                      }
                    ],
                    "decomposition": {
                      "base": 6.8598,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0613
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0442
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0437
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0339
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0196
                        }
                      ],
                      "others": 0.036,
                      "total": 7.0985,
                      "log_link": false,
                      "margin_base": 6.859756,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": 0.061309
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.044227
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.043656
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.033889
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": 0.019609
                        }
                      ],
                      "others_margin": 0.036043
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.1011, quality 0.837)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.2366,
                "assist_rate": 0.1948,
                "assists": 0,
                "expected_goals": 0.2293,
                "goal_rate": 0.458,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.0985,
                "minutes": 59,
                "total_pass": 35,
                "accurate_pass": 31,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 29,
                "accurate_opp_half_passes": 25,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 49,
                "possession_lost": 10.8569,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 17,
                "total_progression": 70,
                "progressive_carries": 3,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 54000000,
                "quality_factor": 0.837,
                "boost_factor": 1.1011
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0289)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.2366,
                "assist_rate": 0.2072,
                "assists": 0,
                "expected_goals": 0.2293,
                "goal_rate": 0.4448,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.0985,
                "minutes": 59,
                "total_pass": 35,
                "accurate_pass": 31,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 29,
                "accurate_opp_half_passes": 25,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 49,
                "possession_lost": 10.8569,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 17,
                "total_progression": 70,
                "progressive_carries": 3,
                "shots_off_target": 1,
                "offsides": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 52.6,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": -0.63
              },
              "params": {
                "blend_weight": 0.0289,
                "history_matches": 7,
                "prior_reliability": 0.1067,
                "competition": "La Liga",
                "squad": "Villarreal"
              },
              "changes": [
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.0903
                },
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0542
                },
                {
                  "stat": "totalShots",
                  "before": 1.6347,
                  "after": 1.5875
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0181
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0181
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.5974,
                  "after": 0.5801
                },
                {
                  "stat": "goals",
                  "before": 0.458,
                  "after": 0.4448
                },
                {
                  "stat": "goalAssist",
                  "before": 0.1948,
                  "after": 0.2072
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.2366,
                "assist_rate": 0.2072,
                "assists": 0,
                "expected_goals": 0.2293,
                "goal_rate": 0.4448,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.0985,
                "minutes": 59,
                "total_pass": 35,
                "accurate_pass": 31,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 29,
                "accurate_opp_half_passes": 25,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 49,
                "possession_lost": 10.8569,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 17,
                "total_progression": 70,
                "progressive_carries": 3,
                "shots_off_target": 1,
                "offsides": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 52.6,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.2366,
                "assist_rate": 0.2072,
                "assists": 0,
                "expected_goals": 0.2179,
                "goal_rate": 0.4227,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.0985,
                "minutes": 59,
                "total_pass": 35,
                "accurate_pass": 31,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 29,
                "accurate_opp_half_passes": 25,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 49,
                "possession_lost": 10.8569,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 17,
                "total_progression": 70,
                "progressive_carries": 3,
                "shots_off_target": 1,
                "offsides": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 52.6,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.9503,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.0,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.386,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Arda Güler",
                "opponent_faced": "Arda Güler",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Arda Güler",
                  "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                  "duel_win_rate": 0.386,
                  "pressing_faced": "ULTRA_HIGH",
                  "numerical_situation": "1v1",
                  "xg_multiplier": 0.9503,
                  "skill_edge": -0.0178,
                  "height_edge": -0.016,
                  "attacker_skill": 0.8526,
                  "defender_skill": 0.8921,
                  "xg_override": 0.2179
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.0,
                  "after": 0.8
                },
                {
                  "stat": "totalShots",
                  "before": 1.6173,
                  "after": 1.537
                },
                {
                  "stat": "shotOffTarget",
                  "before": 1.0372,
                  "after": 0.9857
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.5801,
                  "after": 0.5513
                },
                {
                  "stat": "goals",
                  "before": 0.4448,
                  "after": 0.4227
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.2293,
                  "after": 0.2179
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.35 (squad xG sum 1.1115, xG scale 1.2128, xA scale 0.9580, team xA 1.08 = 0.80 x lambda)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.2267,
                "assist_rate": 0.2072,
                "assists": 0,
                "expected_goals": 0.2643,
                "goal_rate": 0.4227,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.0985,
                "minutes": 59,
                "total_pass": 35,
                "accurate_pass": 31,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 29,
                "accurate_opp_half_passes": 25,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 49,
                "possession_lost": 10.8569,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 17,
                "total_progression": 70,
                "progressive_carries": 3,
                "shots_off_target": 1,
                "offsides": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 52.6,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.9503,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.0,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.386,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Arda Güler",
                "opponent_faced": "Arda Güler",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 0.8974
              },
              "params": {
                "team_lambda": 1.348,
                "squad_xg_sum": 1.1115,
                "squad_xa_sum": 1.1257,
                "team_expected_assists": 1.0784,
                "team_xa_to_xg_ratio": 0.8,
                "bench_appearance_weighted": true,
                "xg_scale": 1.2128,
                "xa_scale": 0.958,
                "opponent_lambda": 3.538,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.2179,
                  "after": 0.2643
                },
                {
                  "stat": "expected_assists",
                  "before": 0.2366,
                  "after": 0.2267
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 3 by projected rating, fifa_overall 79.0; not used by the projection)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.2267,
                "assist_rate": 0.2072,
                "assists": 0,
                "expected_goals": 0.2643,
                "goal_rate": 0.4227,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.0985,
                "minutes": 59,
                "total_pass": 35,
                "accurate_pass": 31,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 29,
                "accurate_opp_half_passes": 25,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 49,
                "possession_lost": 10.8569,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 17,
                "total_progression": 70,
                "progressive_carries": 3,
                "shots_off_target": 1,
                "offsides": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 52.6,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.9503,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.0,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.386,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Arda Güler",
                "opponent_faced": "Arda Güler",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 0.8974,
                "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_filled",
                "ranking_status": "combined",
                "global_player_rank": 1102,
                "fifa_rank": 849.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": 2,
                "expected_assists": 0.2267,
                "assist_rate": 0.2072,
                "assists": 0,
                "expected_goals": 0.2643,
                "goal_rate": 0.4227,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.0985,
                "minutes": 59,
                "total_pass": 35,
                "accurate_pass": 31,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 29,
                "accurate_opp_half_passes": 25,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 49,
                "possession_lost": 10.8569,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 17,
                "total_progression": 70,
                "progressive_carries": 3,
                "shots_off_target": 1,
                "offsides": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 52.6,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.9503,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.0,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.386,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Arda Güler",
                "opponent_faced": "Arda Güler",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.2323,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 0.8974,
                "fifa_overall": 79.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.2323,
                "scorer_weight": 0.3304,
                "squad_weight_total": 1.3104,
                "weight_share": 0.2521,
                "finishing_factor": 1.25,
                "appearance_weight": 1.0,
                "weight_rank": 2,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Georges Mikautadze",
                    "weight": 0.3558,
                    "already": 0,
                    "effective_weight": 0.3558,
                    "runner_up": "Alberto Moleiro",
                    "runner_up_effective_weight": 0.3304
                  }
                ]
              }
            },
            {
              "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": 2,
                "expected_assists": 0.2267,
                "assist_rate": 0.2072,
                "assists": 1,
                "expected_goals": 0.2643,
                "goal_rate": 0.4227,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.0985,
                "minutes": 59,
                "total_pass": 35,
                "accurate_pass": 31,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 29,
                "accurate_opp_half_passes": 25,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 49,
                "possession_lost": 10.8569,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 17,
                "total_progression": 70,
                "progressive_carries": 3,
                "shots_off_target": 1,
                "offsides": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 52.6,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.9503,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.0,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.386,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Arda Güler",
                "opponent_faced": "Arda Güler",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.2323,
                "projected_assists": 1,
                "assist_probability": 0.2028,
                "finishing_factor": 1.25,
                "creation_factor": 0.8974,
                "fifa_overall": 79.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 1,
                "assist_probability": 0.2028,
                "provider_weight": 0.2034,
                "squad_weight_total": 1.0247,
                "weight_share": 0.1985,
                "creation_factor": 0.8974,
                "appearance_weight": 1.0,
                "weight_rank": 1,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Alberto Moleiro",
                    "weight": 0.2034,
                    "already": 0,
                    "effective_weight": 0.2034,
                    "runner_up": "Ilias Akhomach",
                    "runner_up_effective_weight": 0.1848,
                    "blocked_own_goal": [
                      "Georges Mikautadze"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Pape Gueye": {
          "player_id": 879694,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 18,
          "height": 187,
          "market_value": 39000000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.0916,
            "assist_rate": 0.0871,
            "assists": 0,
            "expected_goals": 0.2333,
            "goal_rate": 0.1983,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "rating": 7.0797,
            "minutes": 75,
            "total_pass": 64,
            "accurate_pass": 54,
            "duels_won": 3,
            "total_long_balls": 8,
            "accurate_long_balls": 5,
            "total_own_half_passes": 23,
            "accurate_own_half_passes": 22,
            "total_opp_half_passes": 41,
            "accurate_opp_half_passes": 33,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 77,
            "possession_lost": 13.1432,
            "dispossessed": 0.0,
            "duels_lost": 3,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 2,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 23,
            "total_progression": 64,
            "progressive_carries": 1,
            "shots_off_target": 1,
            "offsides": 0,
            "yellowCards": 0.3333,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 33.3,
            "shotConversion": 0.33,
            "minutesPct": 100.0,
            "pointsPerMatch": 0.67,
            "netGoalDifferencePer90": 0.0,
            "duel_xg_multiplier": 1.0019,
            "dribbles_attempted": 3,
            "dribbles_successful": 1.1,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.421,
            "pressing_faced": "ULTRA_HIGH",
            "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
            "numerical_situation": "1v1",
            "opponent_defenders": "Arda Güler",
            "opponent_faced": "Arda Güler",
            "antagonist_source": "attacking_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.2081,
            "projected_assists": 0,
            "assist_probability": 0.0875,
            "finishing_factor": 1.0243,
            "creation_factor": 0.9416,
            "fifa_overall": 80.0
          },
          "latest_10_games": [
            {
              "match_id": 16416294.0,
              "match_date": "2026-09-20",
              "home_team": "Villarreal",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 87,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0742,
                "total_shots": 0,
                "total_pass": 56,
                "accurate_pass": 46,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416338.0,
              "match_date": "2026-09-17",
              "home_team": "Málaga CF",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 53,
                "rating": 9.0,
                "goal_rate": 2.0,
                "goals": 2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 1.1957,
                "expected_assists": 0.051,
                "total_shots": 2,
                "shots_on_target": 2,
                "total_pass": 47,
                "accurate_pass": 41,
                "interceptions": 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": 16416333.0,
              "match_date": "2026-09-14",
              "home_team": "Villarreal",
              "away_team": "Real Betis",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 54,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0333,
                "total_shots": 0,
                "total_pass": 40,
                "accurate_pass": 35,
                "key_pass": 1,
                "clearances": 3,
                "duels_won": 2,
                "ball_recovery": 8
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416324.0,
              "match_date": "2026-09-05",
              "home_team": "Villarreal",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 62,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.029,
                "expected_assists": 0.1173,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 59,
                "accurate_pass": 52,
                "key_pass": 2,
                "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": 16416290.0,
              "match_date": "2026-08-28",
              "home_team": "Deportivo Alavés",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.1195,
                "total_shots": 0,
                "total_pass": 85,
                "accurate_pass": 68,
                "key_pass": 3,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 3,
                "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": 16416302.0,
              "match_date": "2026-08-23",
              "home_team": "Atlético Madrid",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0469,
                "expected_assists": 0.0538,
                "total_shots": 2,
                "shots_off_target": 1,
                "total_pass": 70,
                "accurate_pass": 63,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 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": 16421061.0,
              "match_date": "2026-08-16",
              "home_team": "Real Racing Club",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 90,
                "rating": 8.0,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0217,
                "expected_assists": 0.1321,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 56,
                "accurate_pass": 47,
                "key_pass": 2,
                "tackles": 1,
                "clearances": 1,
                "duels_won": 3,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 826,
            "combined_rank_score": 394.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 30.0,
            "sofascore_rating": 8.0,
            "sofascore_appearances": 1.0,
            "fifa_rank": 758.0,
            "fifa_overall": 80.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 4,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 7.0797,
            "source_file": "data/player_rankings.csv",
            "player_name": "Pape Gueye",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Florian Thauvin",
                  "ranking": 821
                },
                {
                  "player_name": "Corentin Tolisso",
                  "ranking": 822
                },
                {
                  "player_name": "José María Giménez",
                  "ranking": 823
                },
                {
                  "player_name": "Dean Henderson",
                  "ranking": 824
                },
                {
                  "player_name": "Palhinha",
                  "ranking": 825
                }
              ],
              "lower": [
                {
                  "player_name": "Caoimhin Kelleher",
                  "ranking": 827
                },
                {
                  "player_name": "Antonio Raíllo",
                  "ranking": 828
                },
                {
                  "player_name": "Dilshod Akhmadaliev",
                  "ranking": 829
                },
                {
                  "player_name": "Botirali Ergashev",
                  "ranking": 830
                },
                {
                  "player_name": "Mathias Jensen",
                  "ranking": 831
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.718,
          "history_matches": 7,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 7,
            "data_confidence": 0.718,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0826,
            "fbref_prior_metrics": {
              "squad": "Villarreal",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "minutes": 270.0,
              "goals_per90": 0.3333333333333333,
              "assists_per90": 0.0,
              "shots_per90": 1.0,
              "shots_on_target_pct": 33.3,
              "prior_reliability": 0.2
            },
            "rationale": "XGBoost regressor (M_service) evaluated 7 historical appearances across 8 target models; FBref 2026-2027 prior blended (La Liga, Villarreal, rel: 0.20, gls/90: 0.3333333333333333, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0883,
                "assist_rate": 0.0851,
                "assists": 0,
                "expected_goals": 0.1773,
                "goal_rate": 0.1756,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.0797,
                "minutes": 75,
                "total_pass": 59,
                "accurate_pass": 50,
                "duels_won": 3,
                "total_long_balls": 8,
                "accurate_long_balls": 4,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 20,
                "total_opp_half_passes": 38,
                "accurate_opp_half_passes": 30,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 71,
                "possession_lost": 12.14,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 21,
                "total_progression": 59,
                "progressive_carries": 1,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 6,
                  "trained_at": "2026-09-29T10:02:07.046807+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 550,
                    "rows": 13779
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Levante UD",
                    "minutes": 87.0,
                    "is_starting": true,
                    "weight": 0.2208,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Málaga CF",
                    "minutes": 53.0,
                    "is_starting": true,
                    "weight": 0.1877,
                    "rating": 9.0
                  },
                  {
                    "match_date": "2026-09-14",
                    "opponent": "Real Betis",
                    "minutes": 54.0,
                    "is_starting": true,
                    "weight": 0.1595,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 62.0,
                    "is_starting": true,
                    "weight": 0.1356,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Deportivo Alavés",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1152,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Atlético Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.098,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-08-16",
                    "opponent": "Real Racing Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0833,
                    "rating": 8.0
                  }
                ],
                "feature_row": {
                  "history_matches": 7.0,
                  "is_starting_11": 1.0,
                  "totalShots": 0.7901,
                  "expectedAssists": 0.0772,
                  "creative_index": 0.4235,
                  "creative_efficiency": 0.0233,
                  "shotValueNormalized": 0.1478,
                  "dribbleValueNormalized": 0.0764
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.8986342549324036,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.12
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0959
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0798
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0429
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0425
                      }
                    ],
                    "decomposition": {
                      "base": 0.9267,
                      "items": [
                        {
                          "name": "keyPass",
                          "contribution": -0.1012
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0305
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.03
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0274
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": -0.0166
                        }
                      ],
                      "others": 0.0018,
                      "total": 0.8986,
                      "log_link": true,
                      "margin_base": -0.076148,
                      "item_margins": [
                        {
                          "name": "keyPass",
                          "margin": -0.115636
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.036312
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": 0.034414
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.030478
                        },
                        {
                          "name": "progressive_carries_p90",
                          "margin": -0.018335
                        }
                      ],
                      "others_margin": 0.002035
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.08830124884843826,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.118
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0768
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0579
                      },
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0397
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0318
                      }
                    ],
                    "decomposition": {
                      "base": 0.0872,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.0046
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0041
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0033
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": -0.0026
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0022
                        }
                      ],
                      "others": 0.0043,
                      "total": 0.0883,
                      "log_link": true,
                      "margin_base": -2.439192,
                      "item_margins": [
                        {
                          "name": "cross_creative_contribution",
                          "margin": 0.051153
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.045607
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.038096
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": -0.03142
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": 0.026436
                        }
                      ],
                      "others_margin": 0.049725
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.08509478718042374,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0669
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0574
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0465
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0404
                      },
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0277
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0096
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.005
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.0029
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0027
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.0022
                        }
                      ],
                      "others": -0.0112,
                      "total": 0.0851,
                      "log_link": true,
                      "margin_base": -2.463441,
                      "item_margins": [
                        {
                          "name": "creative_efficiency",
                          "margin": 0.107077
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.051429
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.029204
                        },
                        {
                          "name": "totalProgression",
                          "margin": -0.028214
                        },
                        {
                          "name": "cross_creative_contribution",
                          "margin": 0.023171
                        }
                      ],
                      "others_margin": -0.124807
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.17734865844249725,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.082
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0374
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0365
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.035
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0344
                      }
                    ],
                    "decomposition": {
                      "base": 0.1826,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0611
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0261
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0088
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": -0.0088
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0076
                        }
                      ],
                      "others": -0.0327,
                      "total": 0.1773,
                      "log_link": true,
                      "margin_base": -1.700309,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": 0.288737
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.113401
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.039658
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": -0.039569
                        },
                        {
                          "name": "intensity_index",
                          "margin": -0.035755
                        }
                      ],
                      "others_margin": -0.168999
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.17560355365276337,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0879
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0676
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0367
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.031
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0294
                      }
                    ],
                    "decomposition": {
                      "base": 0.1479,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.058
                        },
                        {
                          "name": "totalProgression",
                          "contribution": 0.0113
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.011
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0094
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": -0.0082
                        }
                      ],
                      "others": -0.013,
                      "total": 0.1756,
                      "log_link": true,
                      "margin_base": -1.911166,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": 0.330809
                        },
                        {
                          "name": "totalProgression",
                          "margin": 0.053407
                        },
                        {
                          "name": "intensity_index",
                          "margin": -0.051914
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.04682
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": -0.042358
                        }
                      ],
                      "others_margin": -0.071484
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.3609221279621124,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1114
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0574
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0383
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0333
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.033
                      }
                    ],
                    "decomposition": {
                      "base": 0.3374,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.082
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0241
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0134
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": -0.0099
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0084
                        }
                      ],
                      "others": -0.0027,
                      "total": 0.3609,
                      "log_link": true,
                      "margin_base": -1.086396,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": 0.21748
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.059121
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": -0.034477
                        },
                        {
                          "name": "ballRecovery_p90",
                          "margin": -0.026351
                        },
                        {
                          "name": "intensity_index",
                          "margin": -0.022815
                        }
                      ],
                      "others_margin": -0.007414
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.9783221279621124,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1236
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0751
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0663
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0364
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 1.0381,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0625
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0394
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0327
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.029
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0216
                        }
                      ],
                      "others": -0.0188,
                      "total": 0.9783,
                      "log_link": false,
                      "margin_base": 1.038069,
                      "item_margins": [
                        {
                          "name": "numberOfSprints",
                          "margin": -0.062467
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.039359
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.032678
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.028965
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": -0.021565
                        }
                      ],
                      "others_margin": -0.018803
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 7.0797119140625,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0666
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "touches",
                        "importance": 0.041
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0305
                      }
                    ],
                    "decomposition": {
                      "base": 6.8598,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0812
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0428
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.027
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0265
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0137
                        }
                      ],
                      "others": 0.0287,
                      "total": 7.0797,
                      "log_link": false,
                      "margin_base": 6.859756,
                      "item_margins": [
                        {
                          "name": "passValueNormalized",
                          "margin": 0.081246
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.042847
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": 0.026969
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": 0.026483
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.013735
                        }
                      ],
                      "others_margin": 0.028675
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0826, quality 0.775)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0956,
                "assist_rate": 0.0921,
                "assists": 0,
                "expected_goals": 0.192,
                "goal_rate": 0.1901,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.0797,
                "minutes": 75,
                "total_pass": 64,
                "accurate_pass": 54,
                "duels_won": 3,
                "total_long_balls": 8,
                "accurate_long_balls": 5,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 22,
                "total_opp_half_passes": 41,
                "accurate_opp_half_passes": 33,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 77,
                "possession_lost": 13.1432,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 23,
                "total_progression": 64,
                "progressive_carries": 1,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 39000000,
                "quality_factor": 0.7754,
                "boost_factor": 1.0826
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0542)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0956,
                "assist_rate": 0.0871,
                "assists": 0,
                "expected_goals": 0.192,
                "goal_rate": 0.1979,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.0797,
                "minutes": 75,
                "total_pass": 64,
                "accurate_pass": 54,
                "duels_won": 3,
                "total_long_balls": 8,
                "accurate_long_balls": 5,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 22,
                "total_opp_half_passes": 41,
                "accurate_opp_half_passes": 33,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 77,
                "possession_lost": 13.1432,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 23,
                "total_progression": 64,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.3333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 33.3,
                "shotConversion": 0.33,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": -0.33
              },
              "params": {
                "blend_weight": 0.0542,
                "history_matches": 7,
                "prior_reliability": 0.2,
                "competition": "La Liga",
                "squad": "Villarreal"
              },
              "changes": [
                {
                  "stat": "interceptionWon",
                  "before": 0.0,
                  "after": 0.0722
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0722
                },
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0361
                },
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.0181
                },
                {
                  "stat": "wasFouled",
                  "before": 2.1653,
                  "after": 2.1563
                },
                {
                  "stat": "goals",
                  "before": 0.1901,
                  "after": 0.1979
                },
                {
                  "stat": "goalAssist",
                  "before": 0.0921,
                  "after": 0.0871
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0956,
                "assist_rate": 0.0871,
                "assists": 0,
                "expected_goals": 0.192,
                "goal_rate": 0.1979,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.0797,
                "minutes": 75,
                "total_pass": 64,
                "accurate_pass": 54,
                "duels_won": 3,
                "total_long_balls": 8,
                "accurate_long_balls": 5,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 22,
                "total_opp_half_passes": 41,
                "accurate_opp_half_passes": 33,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 77,
                "possession_lost": 13.1432,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 23,
                "total_progression": 64,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.3333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 33.3,
                "shotConversion": 0.33,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0956,
                "assist_rate": 0.0871,
                "assists": 0,
                "expected_goals": 0.1924,
                "goal_rate": 0.1983,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.0797,
                "minutes": 75,
                "total_pass": 64,
                "accurate_pass": 54,
                "duels_won": 3,
                "total_long_balls": 8,
                "accurate_long_balls": 5,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 22,
                "total_opp_half_passes": 41,
                "accurate_opp_half_passes": 33,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 77,
                "possession_lost": 13.1432,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 23,
                "total_progression": 64,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.3333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 33.3,
                "shotConversion": 0.33,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 1.0019,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.421,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Arda Güler",
                "opponent_faced": "Arda Güler",
                "antagonist_source": "attacking_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Arda Güler",
                  "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                  "duel_win_rate": 0.421,
                  "pressing_faced": "ULTRA_HIGH",
                  "numerical_situation": "1v1",
                  "xg_multiplier": 1.0019,
                  "skill_edge": -0.0427,
                  "height_edge": 0.044,
                  "attacker_skill": 0.7972,
                  "defender_skill": 0.8921,
                  "xg_override": 0.1924
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.0,
                  "after": 1.2
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.35 (squad xG sum 1.1115, xG scale 1.2128, xA scale 0.9580, team xA 1.08 = 0.80 x lambda)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0916,
                "assist_rate": 0.0871,
                "assists": 0,
                "expected_goals": 0.2333,
                "goal_rate": 0.1983,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.0797,
                "minutes": 75,
                "total_pass": 64,
                "accurate_pass": 54,
                "duels_won": 3,
                "total_long_balls": 8,
                "accurate_long_balls": 5,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 22,
                "total_opp_half_passes": 41,
                "accurate_opp_half_passes": 33,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 77,
                "possession_lost": 13.1432,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 23,
                "total_progression": 64,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.3333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 33.3,
                "shotConversion": 0.33,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 1.0019,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.421,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Arda Güler",
                "opponent_faced": "Arda Güler",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0243,
                "creation_factor": 0.9416
              },
              "params": {
                "team_lambda": 1.348,
                "squad_xg_sum": 1.1115,
                "squad_xa_sum": 1.1257,
                "team_expected_assists": 1.0784,
                "team_xa_to_xg_ratio": 0.8,
                "bench_appearance_weighted": true,
                "xg_scale": 1.2128,
                "xa_scale": 0.958,
                "opponent_lambda": 3.538,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.1924,
                  "after": 0.2333
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 4 by projected rating, fifa_overall 80.0; not used by the projection)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0916,
                "assist_rate": 0.0871,
                "assists": 0,
                "expected_goals": 0.2333,
                "goal_rate": 0.1983,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.0797,
                "minutes": 75,
                "total_pass": 64,
                "accurate_pass": 54,
                "duels_won": 3,
                "total_long_balls": 8,
                "accurate_long_balls": 5,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 22,
                "total_opp_half_passes": 41,
                "accurate_opp_half_passes": 33,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 77,
                "possession_lost": 13.1432,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 23,
                "total_progression": 64,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.3333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 33.3,
                "shotConversion": 0.33,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 1.0019,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.421,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Arda Güler",
                "opponent_faced": "Arda Güler",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0243,
                "creation_factor": 0.9416,
                "fifa_overall": 80.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": 826,
                "fifa_rank": 758.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": {
                "key_pass": 1,
                "expected_assists": 0.0916,
                "assist_rate": 0.0871,
                "assists": 0,
                "expected_goals": 0.2333,
                "goal_rate": 0.1983,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.0797,
                "minutes": 75,
                "total_pass": 64,
                "accurate_pass": 54,
                "duels_won": 3,
                "total_long_balls": 8,
                "accurate_long_balls": 5,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 22,
                "total_opp_half_passes": 41,
                "accurate_opp_half_passes": 33,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 77,
                "possession_lost": 13.1432,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 23,
                "total_progression": 64,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.3333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 33.3,
                "shotConversion": 0.33,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 1.0019,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.421,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Arda Güler",
                "opponent_faced": "Arda Güler",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.2081,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0243,
                "creation_factor": 0.9416,
                "fifa_overall": 80.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.2081,
                "scorer_weight": 0.239,
                "squad_weight_total": 1.3104,
                "weight_share": 0.1824,
                "finishing_factor": 1.0243,
                "appearance_weight": 1.0,
                "weight_rank": 3,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Georges Mikautadze",
                    "weight": 0.3558,
                    "already": 0,
                    "effective_weight": 0.3558,
                    "runner_up": "Alberto Moleiro",
                    "runner_up_effective_weight": 0.3304
                  }
                ]
              }
            },
            {
              "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,
                "expected_assists": 0.0916,
                "assist_rate": 0.0871,
                "assists": 0,
                "expected_goals": 0.2333,
                "goal_rate": 0.1983,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.0797,
                "minutes": 75,
                "total_pass": 64,
                "accurate_pass": 54,
                "duels_won": 3,
                "total_long_balls": 8,
                "accurate_long_balls": 5,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 22,
                "total_opp_half_passes": 41,
                "accurate_opp_half_passes": 33,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 77,
                "possession_lost": 13.1432,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 23,
                "total_progression": 64,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.3333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 33.3,
                "shotConversion": 0.33,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 1.0019,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.421,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Arda Güler",
                "opponent_faced": "Arda Güler",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.2081,
                "projected_assists": 0,
                "assist_probability": 0.0875,
                "finishing_factor": 1.0243,
                "creation_factor": 0.9416,
                "fifa_overall": 80.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0875,
                "provider_weight": 0.0863,
                "squad_weight_total": 1.0247,
                "weight_share": 0.0842,
                "creation_factor": 0.9416,
                "appearance_weight": 1.0,
                "weight_rank": 6,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Alberto Moleiro",
                    "weight": 0.2034,
                    "already": 0,
                    "effective_weight": 0.2034,
                    "runner_up": "Ilias Akhomach",
                    "runner_up_effective_weight": 0.1848,
                    "blocked_own_goal": [
                      "Georges Mikautadze"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Tajon Buchanan": {
          "player_id": 973290,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 17,
          "height": 183,
          "market_value": 13000000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.131,
            "assist_rate": 0.1139,
            "assists": 0,
            "expected_goals": 0.152,
            "goal_rate": 0.1346,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "rating": 6.935,
            "minutes": 54,
            "total_pass": 20,
            "accurate_pass": 18,
            "duels_won": 4,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 5,
            "accurate_own_half_passes": 5,
            "total_opp_half_passes": 15,
            "accurate_opp_half_passes": 13,
            "crosses_total": 4,
            "crosses_accurate": 0,
            "touches": 37,
            "possession_lost": 10.0286,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 16,
            "total_progression": 104,
            "progressive_carries": 4,
            "shots_off_target": 1,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 50.0,
            "shotConversion": 0.0,
            "minutesPct": 47.0,
            "pointsPerMatch": 0.67,
            "netGoalDifferencePer90": 0.0,
            "duel_xg_multiplier": 0.7212,
            "dribbles_attempted": 3,
            "dribbles_successful": 0.6,
            "crosses_attempted": 2.3,
            "duel_win_rate": 0.23,
            "pressing_faced": "ULTRA_HIGH",
            "matchup_zone": "LM vs CB",
            "numerical_situation": "1v1",
            "opponent_defenders": "Dean Huijsen",
            "opponent_faced": "Dean Huijsen",
            "antagonist_source": "attacking_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.141,
            "projected_assists": 0,
            "assist_probability": 0.1228,
            "finishing_factor": 1.0531,
            "creation_factor": 0.8779,
            "fifa_overall": 76.0
          },
          "latest_10_games": [
            {
              "match_id": 16416294.0,
              "match_date": "2026-09-20",
              "home_team": "Villarreal",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 79,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.136,
                "expected_assists": 0.0719,
                "total_shots": 3,
                "shots_off_target": 2,
                "total_pass": 29,
                "accurate_pass": 25,
                "key_pass": 2,
                "tackles": 2,
                "tackles_won": 2,
                "aerial_won": 1,
                "duels_won": 6,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416338.0,
              "match_date": "2026-09-17",
              "home_team": "Málaga CF",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 90,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.4087,
                "expected_assists": 0.506,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 27,
                "accurate_pass": 26,
                "key_pass": 3,
                "tackles": 3,
                "tackles_won": 2,
                "clearances": 1,
                "duels_won": 8,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416333.0,
              "match_date": "2026-09-14",
              "home_team": "Villarreal",
              "away_team": "Real Betis",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 55,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0398,
                "expected_assists": 0.0496,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 21,
                "accurate_pass": 18,
                "key_pass": 1,
                "tackles": 1,
                "interceptions": 1,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416324.0,
              "match_date": "2026-09-05",
              "home_team": "Villarreal",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Villarreal",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 28,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0346,
                "total_shots": 0,
                "total_pass": 19,
                "accurate_pass": 16,
                "key_pass": 1,
                "clearances": 1,
                "duels_won": 1,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416290.0,
              "match_date": "2026-08-28",
              "home_team": "Deportivo Alavés",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 63,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0194,
                "expected_assists": 0.1545,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 24,
                "accurate_pass": 22,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "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"
            },
            {
              "match_id": 16416302.0,
              "match_date": "2026-08-23",
              "home_team": "Atlético Madrid",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Villarreal",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 29,
                "rating": 7.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.4605,
                "expected_assists": 0.0072,
                "total_shots": 2,
                "shots_on_target": 1,
                "total_pass": 10,
                "accurate_pass": 9,
                "interceptions": 1,
                "duels_won": 4,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421061.0,
              "match_date": "2026-08-16",
              "home_team": "Real Racing Club",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Villarreal",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 34,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0764,
                "expected_assists": 0.0032,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 11,
                "accurate_pass": 10,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 3318,
            "combined_rank_score": 1275.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 584.0,
            "sofascore_rating": 6.7941,
            "sofascore_appearances": 34.0,
            "fifa_rank": 1967.0,
            "fifa_overall": 76.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 8,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.935,
            "source_file": "data/player_rankings.csv",
            "player_name": "Tajon Buchanan",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Logan Costa",
                  "ranking": 3313
                },
                {
                  "player_name": "Santiago Ascacíbar",
                  "ranking": 3314
                },
                {
                  "player_name": "Rio Ngumoha",
                  "ranking": 3315
                },
                {
                  "player_name": "Kyle Walker-Peters",
                  "ranking": 3316
                },
                {
                  "player_name": "Alberto Costa",
                  "ranking": 3317
                }
              ],
              "lower": [
                {
                  "player_name": "Dion Drena Beljo",
                  "ranking": 3319
                },
                {
                  "player_name": "Aimar Oroz",
                  "ranking": 3320
                },
                {
                  "player_name": "Konstantinos Koulierakis",
                  "ranking": 3321
                },
                {
                  "player_name": "Óliver Torres",
                  "ranking": 3322
                },
                {
                  "player_name": "Daley Blind",
                  "ranking": 3323
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.701,
          "history_matches": 7,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 7,
            "data_confidence": 0.701,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0171,
            "fbref_prior_metrics": {
              "squad": "Villarreal",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 1.0,
              "minutes": 127.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 2.83,
              "shots_on_target_pct": 50.0,
              "prior_reliability": 0.0933
            },
            "rationale": "XGBoost regressor (M_service) evaluated 7 historical appearances across 8 target models; FBref 2026-2027 prior blended (La Liga, Villarreal, rel: 0.09, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1344,
                "assist_rate": 0.1149,
                "assists": 0,
                "expected_goals": 0.1709,
                "goal_rate": 0.1882,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.935,
                "minutes": 54,
                "total_pass": 20,
                "accurate_pass": 18,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 13,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 37,
                "possession_lost": 9.86,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 16,
                "total_progression": 103,
                "progressive_carries": 4,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 6,
                  "trained_at": "2026-09-29T10:02:07.046807+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 550,
                    "rows": 13779
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Levante UD",
                    "minutes": 79.0,
                    "is_starting": true,
                    "weight": 0.2208,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Málaga CF",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1877,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-09-14",
                    "opponent": "Real Betis",
                    "minutes": 55.0,
                    "is_starting": true,
                    "weight": 0.1595,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 28.0,
                    "is_starting": false,
                    "weight": 0.1356,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Deportivo Alavés",
                    "minutes": 63.0,
                    "is_starting": true,
                    "weight": 0.1152,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Atlético Madrid",
                    "minutes": 29.0,
                    "is_starting": false,
                    "weight": 0.098,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-08-16",
                    "opponent": "Real Racing Club",
                    "minutes": 34.0,
                    "is_starting": false,
                    "weight": 0.0833,
                    "rating": 6.3
                  }
                ],
                "feature_row": {
                  "history_matches": 7.0,
                  "is_starting_11": 1.0,
                  "totalShots": 1.7511,
                  "expectedAssists": 0.1422,
                  "creative_index": 0.6513,
                  "creative_efficiency": 0.07,
                  "shotValueNormalized": -0.1865,
                  "dribbleValueNormalized": 0.3021
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 1.4086730480194092,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.12
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0959
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0798
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0429
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0425
                      }
                    ],
                    "decomposition": {
                      "base": 0.9267,
                      "items": [
                        {
                          "name": "creative_index",
                          "contribution": 0.1372
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.0726
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0452
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.0353
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": 0.0333
                        }
                      ],
                      "others": 0.1584,
                      "total": 1.4087,
                      "log_link": true,
                      "margin_base": -0.076148,
                      "item_margins": [
                        {
                          "name": "creative_index",
                          "margin": 0.13808
                        },
                        {
                          "name": "keyPass",
                          "margin": 0.066024
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.039004
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": 0.029423
                        },
                        {
                          "name": "progressive_carries_p90",
                          "margin": 0.027021
                        }
                      ],
                      "others_margin": 0.119244
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.13441425561904907,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.118
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0768
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0579
                      },
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0397
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0318
                      }
                    ],
                    "decomposition": {
                      "base": 0.0872,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0122
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0053
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.0046
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0041
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": 0.004
                        }
                      ],
                      "others": 0.017,
                      "total": 0.1344,
                      "log_link": true,
                      "margin_base": -2.439192,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": 0.130788
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.052237
                        },
                        {
                          "name": "cross_creative_contribution",
                          "margin": 0.04281
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.036525
                        },
                        {
                          "name": "duelWon_p90",
                          "margin": 0.034579
                        }
                      ],
                      "others_margin": 0.135425
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.11488637328147888,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0669
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0574
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0465
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0404
                      },
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0277
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0089
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.0059
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0056
                        },
                        {
                          "name": "totalProgression",
                          "contribution": 0.0029
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": -0.0026
                        }
                      ],
                      "others": 0.0091,
                      "total": 0.1149,
                      "log_link": true,
                      "margin_base": -2.463441,
                      "item_margins": [
                        {
                          "name": "creative_efficiency",
                          "margin": 0.099252
                        },
                        {
                          "name": "keyPass",
                          "margin": 0.061148
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": 0.054176
                        },
                        {
                          "name": "totalProgression",
                          "margin": 0.027173
                        },
                        {
                          "name": "ballRecovery_p90",
                          "margin": -0.023993
                        }
                      ],
                      "others_margin": 0.081875
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.1708517074584961,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.082
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0374
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0365
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.035
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0344
                      }
                    ],
                    "decomposition": {
                      "base": 0.1826,
                      "items": [
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0125
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0102
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": -0.0058
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": -0.0054
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0037
                        }
                      ],
                      "others": 0.0009,
                      "total": 0.1709,
                      "log_link": true,
                      "margin_base": -1.700309,
                      "item_margins": [
                        {
                          "name": "creative_efficiency",
                          "margin": 0.066167
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.053686
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": -0.031998
                        },
                        {
                          "name": "kilometersCovered",
                          "margin": -0.030667
                        },
                        {
                          "name": "totalProgression",
                          "margin": -0.021286
                        }
                      ],
                      "others_margin": 0.00482
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.18819734454154968,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0879
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0676
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0367
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.031
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0294
                      }
                    ],
                    "decomposition": {
                      "base": 0.1479,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0414
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.03
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": 0.0103
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0096
                        },
                        {
                          "name": "intensity_index",
                          "contribution": 0.0096
                        }
                      ],
                      "others": -0.0006,
                      "total": 0.1882,
                      "log_link": true,
                      "margin_base": -1.911166,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.246562
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.172555
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": 0.062395
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": 0.054832
                        },
                        {
                          "name": "intensity_index",
                          "margin": 0.051988
                        }
                      ],
                      "others_margin": -0.00232
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.4827251434326172,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1114
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0574
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0383
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0333
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.033
                      }
                    ],
                    "decomposition": {
                      "base": 0.3374,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0377
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0256
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0169
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": 0.0148
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0115
                        }
                      ],
                      "others": 0.0388,
                      "total": 0.4827,
                      "log_link": true,
                      "margin_base": -1.086396,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.105962
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": 0.065899
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.041269
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": 0.034751
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.026146
                        }
                      ],
                      "others_margin": 0.084062
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.4339251434326172,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1236
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0751
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0663
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0364
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 1.0381,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.3331
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0486
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": 0.0327
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": 0.0321
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0309
                        }
                      ],
                      "others": 0.0156,
                      "total": 1.4339,
                      "log_link": false,
                      "margin_base": 1.038069,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.333103
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.048619
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": 0.032704
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": 0.032073
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": 0.030872
                        }
                      ],
                      "others_margin": 0.0157
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.934996128082275,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0666
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "touches",
                        "importance": 0.041
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0305
                      }
                    ],
                    "decomposition": {
                      "base": 6.8598,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0453
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.035
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0323
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0158
                        },
                        {
                          "name": "duelWon",
                          "contribution": 0.0123
                        }
                      ],
                      "others": 0.0567,
                      "total": 6.935,
                      "log_link": false,
                      "margin_base": 6.859756,
                      "item_margins": [
                        {
                          "name": "passValueNormalized",
                          "margin": -0.045274
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.035029
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.032267
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.015787
                        },
                        {
                          "name": "duelWon",
                          "margin": 0.012251
                        }
                      ],
                      "others_margin": 0.056756
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0171, quality 0.557)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1367,
                "assist_rate": 0.1169,
                "assists": 0,
                "expected_goals": 0.1738,
                "goal_rate": 0.1914,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.935,
                "minutes": 54,
                "total_pass": 20,
                "accurate_pass": 18,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 13,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 37,
                "possession_lost": 10.0286,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 16,
                "total_progression": 104,
                "progressive_carries": 4,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 13000000,
                "quality_factor": 0.557,
                "boost_factor": 1.0171
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0253)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1367,
                "assist_rate": 0.1139,
                "assists": 0,
                "expected_goals": 0.1738,
                "goal_rate": 0.1866,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 6.935,
                "minutes": 54,
                "total_pass": 20,
                "accurate_pass": 18,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 13,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 37,
                "possession_lost": 10.0286,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 16,
                "total_progression": 104,
                "progressive_carries": 4,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 47.0,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "blend_weight": 0.0253,
                "history_matches": 7,
                "prior_reliability": 0.0933,
                "competition": "La Liga",
                "squad": "Villarreal"
              },
              "changes": [
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.1083
                },
                {
                  "stat": "totalCross",
                  "before": 3.4887,
                  "after": 3.563
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0541
                },
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0361
                },
                {
                  "stat": "totalShots",
                  "before": 1.4585,
                  "after": 1.4932
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.491,
                  "after": 0.5145
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.0,
                  "after": 0.018
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1367,
                "assist_rate": 0.1139,
                "assists": 0,
                "expected_goals": 0.1738,
                "goal_rate": 0.1866,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 6.935,
                "minutes": 54,
                "total_pass": 20,
                "accurate_pass": 18,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 13,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 37,
                "possession_lost": 10.0286,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 16,
                "total_progression": 104,
                "progressive_carries": 4,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 47.0,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1367,
                "assist_rate": 0.1139,
                "assists": 0,
                "expected_goals": 0.1253,
                "goal_rate": 0.1346,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.935,
                "minutes": 54,
                "total_pass": 20,
                "accurate_pass": 18,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 13,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 37,
                "possession_lost": 10.0286,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 16,
                "total_progression": 104,
                "progressive_carries": 4,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 47.0,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.7212,
                "dribbles_attempted": 3,
                "dribbles_successful": 0.6,
                "crosses_attempted": 2.3,
                "duel_win_rate": 0.23,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "LM vs CB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Dean Huijsen",
                "opponent_faced": "Dean Huijsen",
                "antagonist_source": "attacking_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Dean Huijsen",
                  "matchup_zone": "LM vs CB",
                  "duel_win_rate": 0.23,
                  "pressing_faced": "ULTRA_HIGH",
                  "numerical_situation": "1v1",
                  "xg_multiplier": 0.7212,
                  "skill_edge": -0.1416,
                  "height_edge": -0.048,
                  "attacker_skill": 0.5731,
                  "defender_skill": 0.8879,
                  "xg_override": 0.1253
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.0,
                  "after": 1.1
                },
                {
                  "stat": "totalShots",
                  "before": 1.4932,
                  "after": 1.0769
                },
                {
                  "stat": "shotOffTarget",
                  "before": 0.9675,
                  "after": 0.6978
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.5145,
                  "after": 0.3711
                },
                {
                  "stat": "goals",
                  "before": 0.1866,
                  "after": 0.1346
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.1738,
                  "after": 0.1253
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.35 (squad xG sum 1.1115, xG scale 1.2128, xA scale 0.9580, team xA 1.08 = 0.80 x lambda)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.131,
                "assist_rate": 0.1139,
                "assists": 0,
                "expected_goals": 0.152,
                "goal_rate": 0.1346,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.935,
                "minutes": 54,
                "total_pass": 20,
                "accurate_pass": 18,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 13,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 37,
                "possession_lost": 10.0286,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 16,
                "total_progression": 104,
                "progressive_carries": 4,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 47.0,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.7212,
                "dribbles_attempted": 3,
                "dribbles_successful": 0.6,
                "crosses_attempted": 2.3,
                "duel_win_rate": 0.23,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "LM vs CB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Dean Huijsen",
                "opponent_faced": "Dean Huijsen",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0531,
                "creation_factor": 0.8779
              },
              "params": {
                "team_lambda": 1.348,
                "squad_xg_sum": 1.1115,
                "squad_xa_sum": 1.1257,
                "team_expected_assists": 1.0784,
                "team_xa_to_xg_ratio": 0.8,
                "bench_appearance_weighted": true,
                "xg_scale": 1.2128,
                "xa_scale": 0.958,
                "opponent_lambda": 3.538,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.1253,
                  "after": 0.152
                },
                {
                  "stat": "expected_assists",
                  "before": 0.1367,
                  "after": 0.131
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 8 by projected rating, fifa_overall 76.0; not used by the projection)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.131,
                "assist_rate": 0.1139,
                "assists": 0,
                "expected_goals": 0.152,
                "goal_rate": 0.1346,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.935,
                "minutes": 54,
                "total_pass": 20,
                "accurate_pass": 18,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 13,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 37,
                "possession_lost": 10.0286,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 16,
                "total_progression": 104,
                "progressive_carries": 4,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 47.0,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.7212,
                "dribbles_attempted": 3,
                "dribbles_successful": 0.6,
                "crosses_attempted": 2.3,
                "duel_win_rate": 0.23,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "LM vs CB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Dean Huijsen",
                "opponent_faced": "Dean Huijsen",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0531,
                "creation_factor": 0.8779,
                "fifa_overall": 76.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": 3318,
                "fifa_rank": 1967.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,
                "expected_assists": 0.131,
                "assist_rate": 0.1139,
                "assists": 0,
                "expected_goals": 0.152,
                "goal_rate": 0.1346,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.935,
                "minutes": 54,
                "total_pass": 20,
                "accurate_pass": 18,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 13,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 37,
                "possession_lost": 10.0286,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 16,
                "total_progression": 104,
                "progressive_carries": 4,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 47.0,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.7212,
                "dribbles_attempted": 3,
                "dribbles_successful": 0.6,
                "crosses_attempted": 2.3,
                "duel_win_rate": 0.23,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "LM vs CB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Dean Huijsen",
                "opponent_faced": "Dean Huijsen",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.141,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0531,
                "creation_factor": 0.8779,
                "fifa_overall": 76.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.141,
                "scorer_weight": 0.1601,
                "squad_weight_total": 1.3104,
                "weight_share": 0.1222,
                "finishing_factor": 1.0531,
                "appearance_weight": 1.0,
                "weight_rank": 4,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Georges Mikautadze",
                    "weight": 0.3558,
                    "already": 0,
                    "effective_weight": 0.3558,
                    "runner_up": "Alberto Moleiro",
                    "runner_up_effective_weight": 0.3304
                  }
                ]
              }
            },
            {
              "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,
                "expected_assists": 0.131,
                "assist_rate": 0.1139,
                "assists": 0,
                "expected_goals": 0.152,
                "goal_rate": 0.1346,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.935,
                "minutes": 54,
                "total_pass": 20,
                "accurate_pass": 18,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 13,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 37,
                "possession_lost": 10.0286,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 16,
                "total_progression": 104,
                "progressive_carries": 4,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 47.0,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.7212,
                "dribbles_attempted": 3,
                "dribbles_successful": 0.6,
                "crosses_attempted": 2.3,
                "duel_win_rate": 0.23,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "LM vs CB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Dean Huijsen",
                "opponent_faced": "Dean Huijsen",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.141,
                "projected_assists": 0,
                "assist_probability": 0.1228,
                "finishing_factor": 1.0531,
                "creation_factor": 0.8779,
                "fifa_overall": 76.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.1228,
                "provider_weight": 0.115,
                "squad_weight_total": 1.0247,
                "weight_share": 0.1122,
                "creation_factor": 0.8779,
                "appearance_weight": 1.0,
                "weight_rank": 5,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Alberto Moleiro",
                    "weight": 0.2034,
                    "already": 0,
                    "effective_weight": 0.2034,
                    "runner_up": "Ilias Akhomach",
                    "runner_up_effective_weight": 0.1848,
                    "blocked_own_goal": [
                      "Georges Mikautadze"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Ilias Akhomach": {
          "player_id": 1089108,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 11,
          "height": 175,
          "market_value": 11100000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.1859,
            "assist_rate": 0.1926,
            "assists": 0,
            "expected_goals": 0.1167,
            "goal_rate": 0.0629,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "rating": 6.98,
            "minutes": 31,
            "total_pass": 15,
            "accurate_pass": 13,
            "duels_won": 3,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 0,
            "accurate_own_half_passes": 0,
            "total_opp_half_passes": 13,
            "accurate_opp_half_passes": 11,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 27,
            "possession_lost": 8.7618,
            "dispossessed": 0.0,
            "duels_lost": 3,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 11,
            "total_progression": 53,
            "progressive_carries": 2,
            "shots_off_target": 0,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "minutesPct": 17.4,
            "pointsPerMatch": 0.67,
            "netGoalDifferencePer90": 0.0,
            "duel_xg_multiplier": 0.6879,
            "dribbles_attempted": 3,
            "dribbles_successful": 0.5,
            "crosses_attempted": 2.2,
            "duel_win_rate": 0.208,
            "pressing_faced": "ULTRA_HIGH",
            "matchup_zone": "RM vs CB",
            "numerical_situation": "1v1",
            "opponent_defenders": "Dean Huijsen",
            "opponent_faced": "Dean Huijsen",
            "antagonist_source": "attacking_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.1101,
            "projected_assists": 0,
            "assist_probability": 0.1696,
            "finishing_factor": 0.8,
            "creation_factor": 0.9943,
            "fifa_overall": 75.0
          },
          "latest_10_games": [
            {
              "match_id": 16416294.0,
              "match_date": "2026-09-20",
              "home_team": "Villarreal",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 67,
                "rating": 8.5,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.0726,
                "expected_assists": 0.8929,
                "total_shots": 1,
                "total_pass": 25,
                "accurate_pass": 20,
                "key_pass": 2,
                "duels_won": 9,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416338.0,
              "match_date": "2026-09-17",
              "home_team": "Málaga CF",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 63,
                "rating": 6.8,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.0258,
                "expected_assists": 0.4781,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 29,
                "accurate_pass": 25,
                "key_pass": 2,
                "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": 16416324.0,
              "match_date": "2026-09-05",
              "home_team": "Villarreal",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Villarreal",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 13,
                "rating": 6.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0127,
                "expected_assists": 0.0046,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 6,
                "accurate_pass": 5,
                "tackles": 1,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416290.0,
              "match_date": "2026-08-28",
              "home_team": "Deportivo Alavés",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Villarreal",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 20,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0248,
                "total_shots": 0,
                "total_pass": 19,
                "accurate_pass": 18,
                "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": 16416302.0,
              "match_date": "2026-08-23",
              "home_team": "Atlético Madrid",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Villarreal",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 11,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0004,
                "total_shots": 0,
                "total_pass": 1,
                "accurate_pass": 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": 16421061.0,
              "match_date": "2026-08-16",
              "home_team": "Real Racing Club",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Villarreal",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 13,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0069,
                "total_shots": 0,
                "total_pass": 9,
                "accurate_pass": 6,
                "tackles": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 3623,
            "combined_rank_score": 1590.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 768.0,
            "sofascore_rating": 6.645,
            "sofascore_appearances": 20.0,
            "fifa_rank": 2412.0,
            "fifa_overall": 75.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 6,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.98,
            "source_file": "data/player_rankings.csv",
            "player_name": "Ilias Akhomach",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Joe Scally",
                  "ranking": 3618
                },
                {
                  "player_name": "Petros Mantalos",
                  "ranking": 3619
                },
                {
                  "player_name": "Rodinei",
                  "ranking": 3620
                },
                {
                  "player_name": "David Jurásek",
                  "ranking": 3621
                },
                {
                  "player_name": "Raúl Moro",
                  "ranking": 3622
                }
              ],
              "lower": [
                {
                  "player_name": "Andrija Živković",
                  "ranking": 3624
                },
                {
                  "player_name": "Maffeo",
                  "ranking": 3625
                },
                {
                  "player_name": "Harold Moukoudi",
                  "ranking": 3626
                },
                {
                  "player_name": "Davide Calabria",
                  "ranking": 3627
                },
                {
                  "player_name": "Luka Jović",
                  "ranking": 3628
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.63,
          "history_matches": 6,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 6,
            "data_confidence": 0.63,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0106,
            "fbref_prior_metrics": {
              "squad": "Villarreal",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 0.0,
              "minutes": 47.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.0,
              "prior_reliability": 0.0333
            },
            "rationale": "XGBoost regressor (M_service) evaluated 6 historical appearances across 8 target models; FBref 2026-2027 prior blended (La Liga, Villarreal, rel: 0.03, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.192,
                "assist_rate": 0.1925,
                "assists": 0,
                "expected_goals": 0.1383,
                "goal_rate": 0.0914,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.98,
                "minutes": 31,
                "total_pass": 15,
                "accurate_pass": 12,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 27,
                "possession_lost": 8.67,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 52,
                "progressive_carries": 2,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 6,
                  "trained_at": "2026-09-29T10:02:07.046807+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 550,
                    "rows": 13779
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Levante UD",
                    "minutes": 67.0,
                    "is_starting": true,
                    "weight": 0.2408,
                    "rating": 8.5
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Málaga CF",
                    "minutes": 63.0,
                    "is_starting": true,
                    "weight": 0.2047,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 13.0,
                    "is_starting": false,
                    "weight": 0.174,
                    "rating": 6.1
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Deportivo Alavés",
                    "minutes": 20.0,
                    "is_starting": false,
                    "weight": 0.1479,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Atlético Madrid",
                    "minutes": 11.0,
                    "is_starting": false,
                    "weight": 0.1257,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-16",
                    "opponent": "Real Racing Club",
                    "minutes": 13.0,
                    "is_starting": false,
                    "weight": 0.1069,
                    "rating": 6.4
                  }
                ],
                "feature_row": {
                  "history_matches": 6.0,
                  "is_starting_11": 1.0,
                  "totalShots": 0.6195,
                  "expectedAssists": 0.3181,
                  "creative_index": 0.5473,
                  "creative_efficiency": 0.1565,
                  "shotValueNormalized": -0.0459,
                  "dribbleValueNormalized": 0.2068
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 1.2787772417068481,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.12
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0959
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0798
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0429
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0425
                      }
                    ],
                    "decomposition": {
                      "base": 0.9267,
                      "items": [
                        {
                          "name": "keyPass",
                          "contribution": -0.1128
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.1123
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0737
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.052
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.0418
                        }
                      ],
                      "others": 0.1851,
                      "total": 1.2788,
                      "log_link": true,
                      "margin_base": -0.076148,
                      "item_margins": [
                        {
                          "name": "keyPass",
                          "margin": -0.129742
                        },
                        {
                          "name": "creative_index",
                          "margin": 0.129278
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.076574
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.050741
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": 0.038942
                        }
                      ],
                      "others_margin": 0.156258
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.1920137256383896,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.118
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0768
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0579
                      },
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0397
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0318
                      }
                    ],
                    "decomposition": {
                      "base": 0.0872,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0575
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0067
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0069
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.0067
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0061
                        }
                      ],
                      "others": 0.0209,
                      "total": 0.192,
                      "log_link": true,
                      "margin_base": -2.439192,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": 0.506141
                        },
                        {
                          "name": "creative_index",
                          "margin": 0.045
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.044697
                        },
                        {
                          "name": "cross_creative_contribution",
                          "margin": 0.041749
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.036164
                        }
                      ],
                      "others_margin": 0.115253
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.19246552884578705,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0669
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0574
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0465
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0404
                      },
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0277
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0607
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.018
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.009
                        },
                        {
                          "name": "cross_accuracy",
                          "contribution": 0.0077
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0045
                        }
                      ],
                      "others": 0.0255,
                      "total": 0.1925,
                      "log_link": true,
                      "margin_base": -2.463441,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": 0.538313
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.11639
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.056231
                        },
                        {
                          "name": "cross_accuracy",
                          "margin": 0.048417
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.02749
                        }
                      ],
                      "others_margin": 0.141226
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.13829250633716583,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.082
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0374
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0365
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.035
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0344
                      }
                    ],
                    "decomposition": {
                      "base": 0.1826,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0385
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0119
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0115
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0061
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0058
                        }
                      ],
                      "others": -0.0059,
                      "total": 0.1383,
                      "log_link": true,
                      "margin_base": -1.700309,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.236604
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.079171
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.07679
                        },
                        {
                          "name": "intensity_index",
                          "margin": -0.043046
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.040738
                        }
                      ],
                      "others_margin": -0.041544
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.09138937294483185,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0879
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0676
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0367
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.031
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0294
                      }
                    ],
                    "decomposition": {
                      "base": 0.1479,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0337
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0238
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.011
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0082
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.005
                        }
                      ],
                      "others": 0.0152,
                      "total": 0.0914,
                      "log_link": true,
                      "margin_base": -1.911166,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.258635
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.233736
                        },
                        {
                          "name": "intensity_index",
                          "margin": -0.129439
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.109528
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.068203
                        }
                      ],
                      "others_margin": 0.181676
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.21919332444667816,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1114
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0574
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0383
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0333
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.033
                      }
                    ],
                    "decomposition": {
                      "base": 0.3374,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.1168
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0249
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0122
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0126
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0102
                        }
                      ],
                      "others": 0.0089,
                      "total": 0.2192,
                      "log_link": true,
                      "margin_base": -1.086396,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.42484
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.1197
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.060421
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.058866
                        },
                        {
                          "name": "intensity_index",
                          "margin": -0.047314
                        }
                      ],
                      "others_margin": 0.041162
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.8480933244466782,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1236
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0751
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0663
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0364
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 1.0381,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.2757
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0557
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0482
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0396
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0332
                        }
                      ],
                      "others": -0.0118,
                      "total": 0.8481,
                      "log_link": false,
                      "margin_base": 1.038069,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.275733
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.055689
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.048164
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.039648
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.033204
                        }
                      ],
                      "others_margin": -0.011671
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.980003833770752,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0666
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "touches",
                        "importance": 0.041
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0305
                      }
                    ],
                    "decomposition": {
                      "base": 6.8598,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0487
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0422
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0376
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0115
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0108
                        }
                      ],
                      "others": -0.0076,
                      "total": 6.98,
                      "log_link": false,
                      "margin_base": 6.859756,
                      "item_margins": [
                        {
                          "name": "passValueNormalized",
                          "margin": 0.048686
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.042182
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.037607
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.011502
                        },
                        {
                          "name": "duelLost",
                          "margin": 0.010834
                        }
                      ],
                      "others_margin": -0.007558
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0106, quality 0.535)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.194,
                "assist_rate": 0.1945,
                "assists": 0,
                "expected_goals": 0.1398,
                "goal_rate": 0.0924,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.98,
                "minutes": 31,
                "total_pass": 15,
                "accurate_pass": 13,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 27,
                "possession_lost": 8.7618,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 53,
                "progressive_carries": 2,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 11100000,
                "quality_factor": 0.5353,
                "boost_factor": 1.0106
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0098)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.194,
                "assist_rate": 0.1926,
                "assists": 0,
                "expected_goals": 0.1398,
                "goal_rate": 0.0915,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.98,
                "minutes": 31,
                "total_pass": 15,
                "accurate_pass": 13,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 27,
                "possession_lost": 8.7618,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 53,
                "progressive_carries": 2,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 17.4,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": -1.91
              },
              "params": {
                "blend_weight": 0.0098,
                "history_matches": 6,
                "prior_reliability": 0.0333,
                "competition": "La Liga",
                "squad": "Villarreal"
              },
              "changes": [
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.1574
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0394
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.0,
                  "after": 0.0197
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0197
                },
                {
                  "stat": "totalShots",
                  "before": 0.8571,
                  "after": 0.8487
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.194,
                "assist_rate": 0.1926,
                "assists": 0,
                "expected_goals": 0.1398,
                "goal_rate": 0.0915,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.98,
                "minutes": 31,
                "total_pass": 15,
                "accurate_pass": 13,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 27,
                "possession_lost": 8.7618,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 53,
                "progressive_carries": 2,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 17.4,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.194,
                "assist_rate": 0.1926,
                "assists": 0,
                "expected_goals": 0.0962,
                "goal_rate": 0.0629,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.98,
                "minutes": 31,
                "total_pass": 15,
                "accurate_pass": 13,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 27,
                "possession_lost": 8.7618,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 53,
                "progressive_carries": 2,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 17.4,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.6879,
                "dribbles_attempted": 3,
                "dribbles_successful": 0.5,
                "crosses_attempted": 2.2,
                "duel_win_rate": 0.208,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "RM vs CB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Dean Huijsen",
                "opponent_faced": "Dean Huijsen",
                "antagonist_source": "attacking_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Dean Huijsen",
                  "matchup_zone": "RM vs CB",
                  "duel_win_rate": 0.208,
                  "pressing_faced": "ULTRA_HIGH",
                  "numerical_situation": "1v1",
                  "xg_multiplier": 0.6879,
                  "skill_edge": -0.1523,
                  "height_edge": -0.06,
                  "attacker_skill": 0.5495,
                  "defender_skill": 0.8879,
                  "xg_override": 0.0962
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.0,
                  "after": 0.9
                },
                {
                  "stat": "totalShots",
                  "before": 0.8549,
                  "after": 0.5881
                },
                {
                  "stat": "shotOffTarget",
                  "before": 0.6356,
                  "after": 0.4372
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.2193,
                  "after": 0.1509
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.1398,
                  "after": 0.0962
                },
                {
                  "stat": "goals",
                  "before": 0.0915,
                  "after": 0.0629
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.35 (squad xG sum 1.1115, xG scale 1.2128, xA scale 0.9580, team xA 1.08 = 0.80 x lambda)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1859,
                "assist_rate": 0.1926,
                "assists": 0,
                "expected_goals": 0.1167,
                "goal_rate": 0.0629,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.98,
                "minutes": 31,
                "total_pass": 15,
                "accurate_pass": 13,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 27,
                "possession_lost": 8.7618,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 53,
                "progressive_carries": 2,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 17.4,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.6879,
                "dribbles_attempted": 3,
                "dribbles_successful": 0.5,
                "crosses_attempted": 2.2,
                "duel_win_rate": 0.208,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "RM vs CB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Dean Huijsen",
                "opponent_faced": "Dean Huijsen",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 0.9943
              },
              "params": {
                "team_lambda": 1.348,
                "squad_xg_sum": 1.1115,
                "squad_xa_sum": 1.1257,
                "team_expected_assists": 1.0784,
                "team_xa_to_xg_ratio": 0.8,
                "bench_appearance_weighted": true,
                "xg_scale": 1.2128,
                "xa_scale": 0.958,
                "opponent_lambda": 3.538,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0962,
                  "after": 0.1167
                },
                {
                  "stat": "expected_assists",
                  "before": 0.194,
                  "after": 0.1859
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 6 by projected rating, fifa_overall 75.0; not used by the projection)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1859,
                "assist_rate": 0.1926,
                "assists": 0,
                "expected_goals": 0.1167,
                "goal_rate": 0.0629,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.98,
                "minutes": 31,
                "total_pass": 15,
                "accurate_pass": 13,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 27,
                "possession_lost": 8.7618,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 53,
                "progressive_carries": 2,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 17.4,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.6879,
                "dribbles_attempted": 3,
                "dribbles_successful": 0.5,
                "crosses_attempted": 2.2,
                "duel_win_rate": 0.208,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "RM vs CB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Dean Huijsen",
                "opponent_faced": "Dean Huijsen",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 0.9943,
                "fifa_overall": 75.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": 3623,
                "fifa_rank": 2412.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 75.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,
                "expected_assists": 0.1859,
                "assist_rate": 0.1926,
                "assists": 0,
                "expected_goals": 0.1167,
                "goal_rate": 0.0629,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.98,
                "minutes": 31,
                "total_pass": 15,
                "accurate_pass": 13,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 27,
                "possession_lost": 8.7618,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 53,
                "progressive_carries": 2,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 17.4,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.6879,
                "dribbles_attempted": 3,
                "dribbles_successful": 0.5,
                "crosses_attempted": 2.2,
                "duel_win_rate": 0.208,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "RM vs CB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Dean Huijsen",
                "opponent_faced": "Dean Huijsen",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.1101,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 0.9943,
                "fifa_overall": 75.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.1101,
                "scorer_weight": 0.0934,
                "squad_weight_total": 1.3104,
                "weight_share": 0.0712,
                "finishing_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 5,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Georges Mikautadze",
                    "weight": 0.3558,
                    "already": 0,
                    "effective_weight": 0.3558,
                    "runner_up": "Alberto Moleiro",
                    "runner_up_effective_weight": 0.3304
                  }
                ]
              }
            },
            {
              "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,
                "expected_assists": 0.1859,
                "assist_rate": 0.1926,
                "assists": 0,
                "expected_goals": 0.1167,
                "goal_rate": 0.0629,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.98,
                "minutes": 31,
                "total_pass": 15,
                "accurate_pass": 13,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 27,
                "possession_lost": 8.7618,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 53,
                "progressive_carries": 2,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 17.4,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.6879,
                "dribbles_attempted": 3,
                "dribbles_successful": 0.5,
                "crosses_attempted": 2.2,
                "duel_win_rate": 0.208,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "RM vs CB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Dean Huijsen",
                "opponent_faced": "Dean Huijsen",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.1101,
                "projected_assists": 0,
                "assist_probability": 0.1696,
                "finishing_factor": 0.8,
                "creation_factor": 0.9943,
                "fifa_overall": 75.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.1696,
                "provider_weight": 0.1848,
                "squad_weight_total": 1.0247,
                "weight_share": 0.1804,
                "creation_factor": 0.9943,
                "appearance_weight": 1.0,
                "weight_rank": 2,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Alberto Moleiro",
                    "weight": 0.2034,
                    "already": 0,
                    "effective_weight": 0.2034,
                    "runner_up": "Ilias Akhomach",
                    "runner_up_effective_weight": 0.1848,
                    "blocked_own_goal": [
                      "Georges Mikautadze"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Georges Mikautadze": {
          "player_id": 1009372,
          "position": "F",
          "position_depth": "F",
          "is_starter": true,
          "shirt_number": 9,
          "height": 176,
          "market_value": 32000000,
          "stats": {
            "expected_goals": 0.4447,
            "goal_rate": 0.2499,
            "goals": 1,
            "shots_on_target": 1,
            "total_shots": 2,
            "expected_assists": 0.1101,
            "key_pass": 1,
            "rating": 6.8435,
            "minutes": 60,
            "total_pass": 21,
            "accurate_pass": 18,
            "duels_won": 3,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 17,
            "accurate_opp_half_passes": 14,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 36,
            "possession_lost": 11.3057,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 0,
            "total_contest": 5,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assist_rate": 0.1602,
            "assists": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "offsides": 0,
            "ball_carries": 13,
            "total_progression": 56,
            "progressive_carries": 3,
            "shots_off_target": 1,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 40.0,
            "shotConversion": 0.1,
            "minutesPct": 92.2,
            "pointsPerMatch": 0.67,
            "netGoalDifferencePer90": 0.0,
            "duel_xg_multiplier": 0.8305,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.3,
            "aerial_won": 1,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.18,
            "pressing_faced": "ULTRA_HIGH",
            "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "numerical_situation": "1v2",
            "opponent_defenders": "Dean Huijsen, Trent Alexander-Arnold",
            "opponent_faced": "Dean Huijsen, Trent Alexander-Arnold",
            "antagonist_source": "attacking_duel",
            "projected_goals": 1,
            "goal_probability": 0.359,
            "projected_assists": 0,
            "assist_probability": 0.1043,
            "finishing_factor": 0.8,
            "creation_factor": 1.25,
            "fifa_overall": 79.0
          },
          "latest_10_games": [
            {
              "match_id": 16416294.0,
              "match_date": "2026-09-20",
              "home_team": "Villarreal",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 23,
                "rating": 7.6,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.6685,
                "expected_assists": 0.0025,
                "total_shots": 2,
                "shots_on_target": 2,
                "total_pass": 7,
                "accurate_pass": 7,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416338.0,
              "match_date": "2026-09-17",
              "home_team": "Málaga CF",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 27,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.4251,
                "expected_assists": 0.5678,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 10,
                "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": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416333.0,
              "match_date": "2026-09-14",
              "home_team": "Villarreal",
              "away_team": "Real Betis",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.5212,
                "expected_assists": 0.0343,
                "total_shots": 4,
                "shots_on_target": 4,
                "total_pass": 34,
                "accurate_pass": 27,
                "key_pass": 2,
                "interceptions": 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": 16416324.0,
              "match_date": "2026-09-05",
              "home_team": "Villarreal",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Villarreal",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 28,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1751,
                "expected_assists": 0.0337,
                "total_shots": 2,
                "shots_off_target": 1,
                "total_pass": 16,
                "accurate_pass": 13,
                "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": 16416290.0,
              "match_date": "2026-08-28",
              "home_team": "Deportivo Alavés",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 82,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.215,
                "expected_assists": 0.1187,
                "total_shots": 1,
                "total_pass": 24,
                "accurate_pass": 20,
                "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": 16416302.0,
              "match_date": "2026-08-23",
              "home_team": "Atlético Madrid",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 79,
                "rating": 7.2,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 1.7893,
                "expected_assists": 0.2452,
                "total_shots": 5,
                "shots_on_target": 2,
                "shots_off_target": 2,
                "total_pass": 21,
                "accurate_pass": 17,
                "key_pass": 1,
                "clearances": 1,
                "duels_won": 2,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421061.0,
              "match_date": "2026-08-16",
              "home_team": "Real Racing Club",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 90,
                "rating": 6.2,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.2206,
                "expected_assists": 0.4077,
                "total_shots": 4,
                "shots_on_target": 2,
                "shots_off_target": 1,
                "total_pass": 28,
                "accurate_pass": 25,
                "key_pass": 2,
                "clearances": 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"
            }
          ],
          "ranking": {
            "global_player_rank": 1648,
            "combined_rank_score": 667.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 371.0,
            "sofascore_rating": 6.9688,
            "sofascore_appearances": 32.0,
            "fifa_rank": 964.0,
            "fifa_overall": 79.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 13,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.8435,
            "source_file": "data/player_rankings.csv",
            "player_name": "Georges Mikautadze",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Andrew Robertson",
                  "ranking": 1643
                },
                {
                  "player_name": "Dango Ouattara",
                  "ranking": 1644
                },
                {
                  "player_name": "Aziz Kholmurodov",
                  "ranking": 1645
                },
                {
                  "player_name": "Uroš Kojić",
                  "ranking": 1646
                },
                {
                  "player_name": "Josh Risdon",
                  "ranking": 1647
                }
              ],
              "lower": [
                {
                  "player_name": "Trai Hume",
                  "ranking": 1649
                },
                {
                  "player_name": "Alfonso Pedraza",
                  "ranking": 1650
                },
                {
                  "player_name": "Lukáš Provod",
                  "ranking": 1651
                },
                {
                  "player_name": "Isi Palazón",
                  "ranking": 1652
                },
                {
                  "player_name": "Walter Benítez",
                  "ranking": 1653
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.716,
          "history_matches": 7,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "F_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "onTargetScoringAttempt",
              "shotOffTarget",
              "bigChanceMissed",
              "expectedAssists",
              "keyPass",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "touches",
              "dispossessed",
              "wasFouled",
              "topSpeed",
              "numberOfSprints",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "shot_accuracy",
              "xg_per_shot",
              "touches_p90",
              "totalShots_p90",
              "duelWon_p90",
              "ballCarriesCount_p90",
              "big_chance_conversion",
              "shot_waste_rate",
              "aerial_dominance",
              "press_resistance_fwd",
              "speed_threat",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 7,
            "data_confidence": 0.716,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0696,
            "fbref_prior_metrics": {
              "squad": "Villarreal",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "minutes": 249.0,
              "goals_per90": 0.3571428571428571,
              "assists_per90": 0.3571428571428571,
              "shots_per90": 3.61,
              "shots_on_target_pct": 40.0,
              "prior_reliability": 0.1867
            },
            "rationale": "XGBoost regressor (F_service) evaluated 7 historical appearances across 7 target models; FBref 2026-2027 prior blended (La Liga, Villarreal, rel: 0.19, gls/90: 0.3571428571428571, ast/90: 0.3571428571428571)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.4129,
                "goal_rate": 0.2785,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.1074,
                "key_pass": 1,
                "rating": 6.8435,
                "minutes": 60,
                "total_pass": 20,
                "accurate_pass": 17,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 16,
                "accurate_opp_half_passes": 13,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 34,
                "possession_lost": 10.57,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 5,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.14,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 12,
                "total_progression": 52,
                "progressive_carries": 2,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:02:15.441175+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 325,
                    "rows": 6303
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Levante UD",
                    "minutes": 23.0,
                    "is_starting": true,
                    "weight": 0.2208,
                    "rating": 7.6
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Málaga CF",
                    "minutes": 27.0,
                    "is_starting": true,
                    "weight": 0.1877,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-14",
                    "opponent": "Real Betis",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1595,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 28.0,
                    "is_starting": false,
                    "weight": 0.1356,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Deportivo Alavés",
                    "minutes": 82.0,
                    "is_starting": true,
                    "weight": 0.1152,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Atlético Madrid",
                    "minutes": 79.0,
                    "is_starting": true,
                    "weight": 0.098,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-08-16",
                    "opponent": "Real Racing Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0833,
                    "rating": 6.2
                  }
                ],
                "feature_row": {
                  "history_matches": 7.0,
                  "is_starting_11": 1.0,
                  "onTargetScoringAttempt": 1.442,
                  "totalShots": 2.4765,
                  "minutesPlayed": 52.9798,
                  "shotValueNormalized": -0.1557,
                  "accuratePass": 15.3556,
                  "expectedAssists": 0.1888
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.41287732124328613,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0826
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0724
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.048
                      },
                      {
                        "name": "touches_p90",
                        "importance": 0.0379
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0352
                      }
                    ],
                    "decomposition": {
                      "base": 0.3626,
                      "items": [
                        {
                          "name": "xg_per_shot",
                          "contribution": 0.0852
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0372
                        },
                        {
                          "name": "bigChanceMissed",
                          "contribution": -0.0167
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": 0.0154
                        },
                        {
                          "name": "shot_waste_rate",
                          "contribution": -0.0153
                        }
                      ],
                      "others": -0.0555,
                      "total": 0.4129,
                      "log_link": true,
                      "margin_base": -1.014464,
                      "item_margins": [
                        {
                          "name": "xg_per_shot",
                          "margin": 0.21114
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.079696
                        },
                        {
                          "name": "bigChanceMissed",
                          "margin": -0.035112
                        },
                        {
                          "name": "progressive_carries_p90",
                          "margin": 0.03232
                        },
                        {
                          "name": "shot_waste_rate",
                          "margin": -0.032065
                        }
                      ],
                      "others_margin": -0.12612
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.2784692943096161,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1258
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0801
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "bigChanceMissed",
                        "importance": 0.0323
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0265
                      }
                    ],
                    "decomposition": {
                      "base": 0.2866,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0638
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0523
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0183
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.018
                        },
                        {
                          "name": "duelWon",
                          "contribution": -0.0168
                        }
                      ],
                      "others": -0.0031,
                      "total": 0.2785,
                      "log_link": true,
                      "margin_base": -1.249595,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.200905
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.161739
                        },
                        {
                          "name": "duelLost",
                          "margin": 0.059668
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.0586
                        },
                        {
                          "name": "duelWon",
                          "margin": -0.057907
                        }
                      ],
                      "others_margin": -0.01118
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 1.179337739944458,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1486
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0633
                      },
                      {
                        "name": "shot_accuracy",
                        "importance": 0.0618
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0343
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 0.5888,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.2559
                        },
                        {
                          "name": "shot_accuracy",
                          "contribution": 0.1248
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.1067
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.054
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": 0.0498
                        }
                      ],
                      "others": 0.1073,
                      "total": 1.1793,
                      "log_link": true,
                      "margin_base": -0.52966,
                      "item_margins": [
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": 0.360863
                        },
                        {
                          "name": "shot_accuracy",
                          "margin": 0.137759
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.104396
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.051509
                        },
                        {
                          "name": "totalShots_p90",
                          "margin": 0.047539
                        }
                      ],
                      "others_margin": 0.095566
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 2.201737739944458,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.1122
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0872
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0825
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.074
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0566
                      }
                    ],
                    "decomposition": {
                      "base": 1.4352,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.3792
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": 0.1671
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.1082
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": 0.0938
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": 0.0686
                        }
                      ],
                      "others": 0.166,
                      "total": 2.2017,
                      "log_link": false,
                      "margin_base": 1.435195,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.379222
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": 0.167052
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.108165
                        },
                        {
                          "name": "progressive_carries_p90",
                          "margin": 0.093842
                        },
                        {
                          "name": "totalShots_p90",
                          "margin": 0.068563
                        }
                      ],
                      "others_margin": 0.165983
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.10740288347005844,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.1197
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0571
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0459
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0451
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0369
                      }
                    ],
                    "decomposition": {
                      "base": 0.06,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0286
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0094
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.0049
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0043
                        },
                        {
                          "name": "aerialLost",
                          "contribution": 0.004
                        }
                      ],
                      "others": -0.0038,
                      "total": 0.1074,
                      "log_link": true,
                      "margin_base": -2.812623,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": 0.389547
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.101097
                        },
                        {
                          "name": "totalPass",
                          "margin": 0.048869
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.040508
                        },
                        {
                          "name": "aerialLost",
                          "margin": 0.036958
                        }
                      ],
                      "others_margin": -0.035523
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.5977475643157959,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "accuratePass",
                        "importance": 0.1105
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0916
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0476
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0444
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0409
                      }
                    ],
                    "decomposition": {
                      "base": 0.6782,
                      "items": [
                        {
                          "name": "keyPass",
                          "contribution": -0.2527
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0297
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0286
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.026
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0222
                        }
                      ],
                      "others": 0.1177,
                      "total": 0.5977,
                      "log_link": true,
                      "margin_base": -0.388283,
                      "item_margins": [
                        {
                          "name": "keyPass",
                          "margin": -0.466239
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.067581
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.060982
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.055295
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": 0.047253
                        }
                      ],
                      "others_margin": 0.219415
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.843533039093018,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0847
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0724
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0628
                      },
                      {
                        "name": "dispossessed",
                        "importance": 0.0551
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0438
                      }
                    ],
                    "decomposition": {
                      "base": 6.815,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0429
                        },
                        {
                          "name": "shot_accuracy",
                          "contribution": 0.0368
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0289
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": -0.0199
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": 0.0199
                        }
                      ],
                      "others": 0.0057,
                      "total": 6.8435,
                      "log_link": false,
                      "margin_base": 6.814961,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.042882
                        },
                        {
                          "name": "shot_accuracy",
                          "margin": 0.036783
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.028939
                        },
                        {
                          "name": "duel_win_rate",
                          "margin": -0.019919
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": 0.019897
                        }
                      ],
                      "others_margin": 0.005752
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0696, quality 0.732)",
              "stats": {
                "expected_goals": 0.4416,
                "goal_rate": 0.2979,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.1149,
                "key_pass": 1,
                "rating": 6.8435,
                "minutes": 60,
                "total_pass": 21,
                "accurate_pass": 18,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 17,
                "accurate_opp_half_passes": 14,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 36,
                "possession_lost": 11.3057,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 5,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.1497,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 13,
                "total_progression": 56,
                "progressive_carries": 3,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 32000000,
                "quality_factor": 0.732,
                "boost_factor": 1.0696
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0506)",
              "stats": {
                "expected_goals": 0.4416,
                "goal_rate": 0.3009,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.1149,
                "key_pass": 1,
                "rating": 6.8435,
                "minutes": 60,
                "total_pass": 21,
                "accurate_pass": 18,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 17,
                "accurate_opp_half_passes": 14,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 36,
                "possession_lost": 11.3057,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 5,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.1602,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 13,
                "total_progression": 56,
                "progressive_carries": 3,
                "shots_off_target": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 40.0,
                "shotConversion": 0.1,
                "minutesPct": 92.2,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "blend_weight": 0.0506,
                "history_matches": 7,
                "prior_reliability": 0.1867,
                "competition": "La Liga",
                "squad": "Villarreal"
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 2.355,
                  "after": 2.4185
                },
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.0361
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0361
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0361
                },
                {
                  "stat": "totalOffside",
                  "before": 0.0,
                  "after": 0.0181
                },
                {
                  "stat": "goalAssist",
                  "before": 0.1497,
                  "after": 0.1602
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 1.2614,
                  "after": 1.2709
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.4416,
                "goal_rate": 0.3009,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.1149,
                "key_pass": 1,
                "rating": 6.8435,
                "minutes": 60,
                "total_pass": 21,
                "accurate_pass": 18,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 17,
                "accurate_opp_half_passes": 14,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 36,
                "possession_lost": 11.3057,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 5,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.1602,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 13,
                "total_progression": 56,
                "progressive_carries": 3,
                "shots_off_target": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 40.0,
                "shotConversion": 0.1,
                "minutesPct": 92.2,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "expected_goals": 0.3667,
                "goal_rate": 0.2499,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.1149,
                "key_pass": 1,
                "rating": 6.8435,
                "minutes": 60,
                "total_pass": 21,
                "accurate_pass": 18,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 17,
                "accurate_opp_half_passes": 14,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 36,
                "possession_lost": 11.3057,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 5,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.1602,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 13,
                "total_progression": 56,
                "progressive_carries": 3,
                "shots_off_target": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 40.0,
                "shotConversion": 0.1,
                "minutesPct": 92.2,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.8305,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Dean Huijsen, Trent Alexander-Arnold",
                "opponent_faced": "Dean Huijsen, Trent Alexander-Arnold",
                "antagonist_source": "attacking_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Dean Huijsen, Trent Alexander-Arnold",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                  "duel_win_rate": 0.18,
                  "pressing_faced": "ULTRA_HIGH",
                  "numerical_situation": "1v2",
                  "xg_multiplier": 0.8305,
                  "skill_edge": -0.0693,
                  "height_edge": -0.046,
                  "attacker_skill": 0.732,
                  "defender_skill": 0.886,
                  "xg_override": 0.3667
                }
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 2.4185,
                  "after": 2.0086
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 1.2709,
                  "after": 1.0555
                },
                {
                  "stat": "shotOffTarget",
                  "before": 1.0936,
                  "after": 0.9082
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.4416,
                  "after": 0.3667
                },
                {
                  "stat": "goals",
                  "before": 0.3009,
                  "after": 0.2499
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.35 (squad xG sum 1.1115, xG scale 1.2128, xA scale 0.9580, team xA 1.08 = 0.80 x lambda)",
              "stats": {
                "expected_goals": 0.4447,
                "goal_rate": 0.2499,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.1101,
                "key_pass": 1,
                "rating": 6.8435,
                "minutes": 60,
                "total_pass": 21,
                "accurate_pass": 18,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 17,
                "accurate_opp_half_passes": 14,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 36,
                "possession_lost": 11.3057,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 5,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.1602,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 13,
                "total_progression": 56,
                "progressive_carries": 3,
                "shots_off_target": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 40.0,
                "shotConversion": 0.1,
                "minutesPct": 92.2,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.8305,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Dean Huijsen, Trent Alexander-Arnold",
                "opponent_faced": "Dean Huijsen, Trent Alexander-Arnold",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 1.25
              },
              "params": {
                "team_lambda": 1.348,
                "squad_xg_sum": 1.1115,
                "squad_xa_sum": 1.1257,
                "team_expected_assists": 1.0784,
                "team_xa_to_xg_ratio": 0.8,
                "bench_appearance_weighted": true,
                "xg_scale": 1.2128,
                "xa_scale": 0.958,
                "opponent_lambda": 3.538,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.3667,
                  "after": 0.4447
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 13 by projected rating, fifa_overall 79.0; not used by the projection)",
              "stats": {
                "expected_goals": 0.4447,
                "goal_rate": 0.2499,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.1101,
                "key_pass": 1,
                "rating": 6.8435,
                "minutes": 60,
                "total_pass": 21,
                "accurate_pass": 18,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 17,
                "accurate_opp_half_passes": 14,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 36,
                "possession_lost": 11.3057,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 5,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.1602,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 13,
                "total_progression": 56,
                "progressive_carries": 3,
                "shots_off_target": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 40.0,
                "shotConversion": 0.1,
                "minutesPct": 92.2,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.8305,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Dean Huijsen, Trent Alexander-Arnold",
                "opponent_faced": "Dean Huijsen, Trent Alexander-Arnold",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 1.25,
                "fifa_overall": 79.0
              },
              "params": {
                "match_squad_rank": 13,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 1648,
                "fifa_rank": 964.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": {
                "expected_goals": 0.4447,
                "goal_rate": 0.2499,
                "goals": 1,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.1101,
                "key_pass": 1,
                "rating": 6.8435,
                "minutes": 60,
                "total_pass": 21,
                "accurate_pass": 18,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 17,
                "accurate_opp_half_passes": 14,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 36,
                "possession_lost": 11.3057,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 5,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.1602,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 13,
                "total_progression": 56,
                "progressive_carries": 3,
                "shots_off_target": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 40.0,
                "shotConversion": 0.1,
                "minutesPct": 92.2,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.8305,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Dean Huijsen, Trent Alexander-Arnold",
                "opponent_faced": "Dean Huijsen, Trent Alexander-Arnold",
                "antagonist_source": "attacking_duel",
                "projected_goals": 1,
                "goal_probability": 0.359,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 1.25,
                "fifa_overall": 79.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 1,
                "goal_probability": 0.359,
                "scorer_weight": 0.3558,
                "squad_weight_total": 1.3104,
                "weight_share": 0.2715,
                "finishing_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 1,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Georges Mikautadze",
                    "weight": 0.3558,
                    "already": 0,
                    "effective_weight": 0.3558,
                    "runner_up": "Alberto Moleiro",
                    "runner_up_effective_weight": 0.3304
                  }
                ]
              }
            },
            {
              "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.4447,
                "goal_rate": 0.2499,
                "goals": 1,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.1101,
                "key_pass": 1,
                "rating": 6.8435,
                "minutes": 60,
                "total_pass": 21,
                "accurate_pass": 18,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 17,
                "accurate_opp_half_passes": 14,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 36,
                "possession_lost": 11.3057,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 5,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.1602,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 13,
                "total_progression": 56,
                "progressive_carries": 3,
                "shots_off_target": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 40.0,
                "shotConversion": 0.1,
                "minutesPct": 92.2,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.8305,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Dean Huijsen, Trent Alexander-Arnold",
                "opponent_faced": "Dean Huijsen, Trent Alexander-Arnold",
                "antagonist_source": "attacking_duel",
                "projected_goals": 1,
                "goal_probability": 0.359,
                "projected_assists": 0,
                "assist_probability": 0.1043,
                "finishing_factor": 0.8,
                "creation_factor": 1.25,
                "fifa_overall": 79.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.1043,
                "provider_weight": 0.1376,
                "squad_weight_total": 1.0247,
                "weight_share": 0.1343,
                "creation_factor": 1.25,
                "appearance_weight": 1.0,
                "weight_rank": 3,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Alberto Moleiro",
                    "weight": 0.2034,
                    "already": 0,
                    "effective_weight": 0.2034,
                    "runner_up": "Ilias Akhomach",
                    "runner_up_effective_weight": 0.1848,
                    "blocked_own_goal": [
                      "Georges Mikautadze"
                    ]
                  }
                ]
              }
            }
          ]
        }
      },
      "bench_players": {
        "Péter Gulácsi": {
          "player_id": 37096,
          "position": "G",
          "position_depth": "G_BENCH",
          "is_starter": false,
          "shirt_number": 25,
          "height": 190,
          "market_value": 970000,
          "stats": {
            "saves": 0,
            "goals_prevented": 0.0046,
            "rating": 7.1651,
            "minutes": 4,
            "total_pass": 1,
            "accurate_pass": 1,
            "duels_won": 0,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "touches": 2,
            "clearances": 0,
            "ball_recovery": 0,
            "high_claims": 0,
            "punches": 0.0,
            "aerial_won": 0,
            "sweeper_actions": 0,
            "sweeper_accurate": 0,
            "saves_inside_box": 0,
            "possession_lost": 0.0,
            "duels_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "total_own_half_passes": 1,
            "accurate_own_half_passes": 1,
            "bench_appearance_probability": 0.109,
            "bench_expected_minutes": 4.39,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.197,
            "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": 82.0
          },
          "latest_10_games": [
            {
              "match_id": 16416294.0,
              "match_date": "2026-09-20",
              "home_team": "Villarreal",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 90,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0002,
                "total_shots": 0,
                "total_pass": 36,
                "accurate_pass": 33,
                "clearances": 4,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 8,
                "goals_prevented": -0.4904
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416338.0,
              "match_date": "2026-09-17",
              "home_team": "Málaga CF",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 90,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0001,
                "total_shots": 0,
                "total_pass": 22,
                "accurate_pass": 20,
                "ball_recovery": 3,
                "goals_prevented": -0.1208
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416333.0,
              "match_date": "2026-09-14",
              "home_team": "Villarreal",
              "away_team": "Real Betis",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 90,
                "rating": 9.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0001,
                "total_shots": 0,
                "total_pass": 18,
                "accurate_pass": 18,
                "clearances": 4,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 8,
                "saves": 10,
                "goals_prevented": 1.96
              },
              "has_player_stats": true,
              "league_name": "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": 616,
            "combined_rank_score": 318.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 409.0,
            "fifa_overall": 82.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 2,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 7.1651,
            "source_file": "data/player_rankings.csv",
            "player_name": "Péter Gulácsi",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Mender García",
                  "ranking": 611
                },
                {
                  "player_name": "José Fajardo",
                  "ranking": 612
                },
                {
                  "player_name": "Konstantinos Fortounis",
                  "ranking": 613
                },
                {
                  "player_name": "N'Golo Kanté",
                  "ranking": 614
                },
                {
                  "player_name": "Mason Greenwood",
                  "ranking": 615
                }
              ],
              "lower": [
                {
                  "player_name": "Oliver Baumann",
                  "ranking": 617
                },
                {
                  "player_name": "Iñigo Martínez",
                  "ranking": 618
                },
                {
                  "player_name": "Omar Marmoush",
                  "ranking": 619
                },
                {
                  "player_name": "Pathé Ismaël Ciss",
                  "ranking": 620
                },
                {
                  "player_name": "Riccardo Orsolini",
                  "ranking": 621
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.438,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "G_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "accurateLongBalls",
              "totalOwnHalfPasses",
              "accurateOwnHalfPasses",
              "saves",
              "savedShotsFromInsideTheBox",
              "goodHighClaim",
              "punches",
              "aerialWon",
              "totalKeeperSweeper",
              "accurateKeeperSweeper",
              "totalClearance",
              "ballRecovery",
              "touches",
              "possessionLostCtrl",
              "kilometersCovered",
              "passValueNormalized",
              "defensiveValueNormalized",
              "goalkeeperValueNormalized",
              "pass_accuracy",
              "long_ball_accuracy",
              "save_contribution",
              "inside_box_save_rate",
              "sweeper_accuracy",
              "sweeper_actions_p90",
              "distribution_accuracy",
              "commanding_index",
              "gk_coverage",
              "history_matches"
            ],
            "targets_predicted": [
              "saves",
              "goalsPrevented",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.438,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 4.392222187561249,
            "bench_appearance_prob": 0.10873737216187492,
            "market_value_adjustment": 0.9812,
            "fbref_prior_metrics": {
              "squad": "Villarreal",
              "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 (3 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,
                "goals_prevented": 0.0955,
                "rating": 7.1651,
                "minutes": 90,
                "total_pass": 25,
                "accurate_pass": 24,
                "duels_won": 0,
                "total_long_balls": 4,
                "accurate_long_balls": 3,
                "touches": 36,
                "clearances": 0,
                "ball_recovery": 6,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 0.0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 24,
                "accurate_own_half_passes": 24
              },
              "trace": {
                "model": {
                  "position_service": "G",
                  "schema_version": 4,
                  "trained_at": "2026-09-29T10:01:45.250339+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 135,
                    "rows": 3738
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Levante UD",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3887,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Málaga CF",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3304,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-14",
                    "opponent": "Real Betis",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2809,
                    "rating": 9.6
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 0.0,
                  "save_contribution": 3.1285,
                  "goalkeeperValueNormalized": 0.0515,
                  "sweeper_actions_p90": 1.7279,
                  "possessionLostCtrl": 1.827,
                  "accurateKeeperSweeper": 1.7279,
                  "accurateLongBalls": 2.8853
                },
                "per_target": [
                  {
                    "target": "saves",
                    "predicted": 2.3700742721557617,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "save_contribution",
                        "importance": 0.0645
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0523
                      },
                      {
                        "name": "saves",
                        "importance": 0.0514
                      },
                      {
                        "name": "accurateLongBalls",
                        "importance": 0.0475
                      },
                      {
                        "name": "goalkeeperValueNormalized",
                        "importance": 0.0445
                      }
                    ],
                    "decomposition": {
                      "base": 2.9861,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.6171
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": -0.0617
                        },
                        {
                          "name": "save_contribution",
                          "contribution": 0.0613
                        },
                        {
                          "name": "saves",
                          "contribution": 0.0453
                        },
                        {
                          "name": "sweeper_actions_p90",
                          "contribution": 0.0349
                        }
                      ],
                      "others": -0.0787,
                      "total": 2.3701,
                      "log_link": true,
                      "margin_base": 1.093963,
                      "item_margins": [
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.231507
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": -0.026402
                        },
                        {
                          "name": "save_contribution",
                          "margin": 0.026228
                        },
                        {
                          "name": "saves",
                          "margin": 0.018951
                        },
                        {
                          "name": "sweeper_actions_p90",
                          "margin": 0.014337
                        }
                      ],
                      "others_margin": -0.032648
                    }
                  },
                  {
                    "target": "goalsPrevented",
                    "predicted": 0.09551475197076797,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "save_contribution",
                        "importance": 0.0582
                      },
                      {
                        "name": "punches",
                        "importance": 0.0515
                      },
                      {
                        "name": "goalkeeperValueNormalized",
                        "importance": 0.051
                      },
                      {
                        "name": "sweeper_actions_p90",
                        "importance": 0.0478
                      },
                      {
                        "name": "touches",
                        "importance": 0.043
                      }
                    ],
                    "decomposition": {
                      "base": -0.0455,
                      "items": [
                        {
                          "name": "sweeper_actions_p90",
                          "contribution": 0.0922
                        },
                        {
                          "name": "totalClearance",
                          "contribution": 0.0754
                        },
                        {
                          "name": "save_contribution",
                          "contribution": -0.0569
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0515
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": -0.0415
                        }
                      ],
                      "others": 0.1233,
                      "total": 0.0955,
                      "log_link": false,
                      "margin_base": -0.045465,
                      "item_margins": [
                        {
                          "name": "sweeper_actions_p90",
                          "margin": 0.0922
                        },
                        {
                          "name": "totalClearance",
                          "margin": 0.075397
                        },
                        {
                          "name": "save_contribution",
                          "margin": -0.056902
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.05147
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": -0.041479
                        }
                      ],
                      "others_margin": 0.123233
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 7.1651387214660645,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "save_contribution",
                        "importance": 0.075
                      },
                      {
                        "name": "sweeper_actions_p90",
                        "importance": 0.0537
                      },
                      {
                        "name": "goalkeeperValueNormalized",
                        "importance": 0.0529
                      },
                      {
                        "name": "accurateKeeperSweeper",
                        "importance": 0.0478
                      },
                      {
                        "name": "pass_accuracy",
                        "importance": 0.0409
                      }
                    ],
                    "decomposition": {
                      "base": 7.0878,
                      "items": [
                        {
                          "name": "distribution_accuracy",
                          "contribution": -0.0942
                        },
                        {
                          "name": "sweeper_actions_p90",
                          "contribution": 0.0741
                        },
                        {
                          "name": "save_contribution",
                          "contribution": -0.0726
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.0604
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0588
                        }
                      ],
                      "others": 0.1716,
                      "total": 7.1651,
                      "log_link": false,
                      "margin_base": 7.087778,
                      "item_margins": [
                        {
                          "name": "distribution_accuracy",
                          "margin": -0.094205
                        },
                        {
                          "name": "sweeper_actions_p90",
                          "margin": 0.074147
                        },
                        {
                          "name": "save_contribution",
                          "margin": -0.072649
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": -0.060425
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": 0.058829
                        }
                      ],
                      "others_margin": 0.171664
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9812, quality 0.437)",
              "stats": {
                "saves": 2,
                "goals_prevented": 0.0937,
                "rating": 7.1651,
                "minutes": 90,
                "total_pass": 25,
                "accurate_pass": 23,
                "duels_won": 0,
                "total_long_balls": 4,
                "accurate_long_balls": 3,
                "touches": 35,
                "clearances": 0,
                "ball_recovery": 6,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 0.0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 24,
                "accurate_own_half_passes": 23
              },
              "params": {
                "market_value_eur": 970000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9812
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0000)",
              "stats": {
                "saves": 2,
                "goals_prevented": 0.0937,
                "rating": 7.1651,
                "minutes": 90,
                "total_pass": 25,
                "accurate_pass": 23,
                "duels_won": 0,
                "total_long_balls": 4,
                "accurate_long_balls": 3,
                "touches": 35,
                "clearances": 0,
                "ball_recovery": 6,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 0.0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 24,
                "accurate_own_half_passes": 23
              },
              "params": {
                "blend_weight": 0.0,
                "history_matches": 3,
                "prior_reliability": 0.0,
                "competition": "La Liga",
                "squad": "Villarreal"
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 4.4 expected minutes (appearance prob 0.11)",
              "stats": {
                "saves": 0,
                "goals_prevented": 0.0046,
                "rating": 7.1651,
                "minutes": 4,
                "total_pass": 1,
                "accurate_pass": 1,
                "duels_won": 0,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "touches": 2,
                "clearances": 0,
                "ball_recovery": 0,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 0.0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 1,
                "accurate_own_half_passes": 1,
                "bench_appearance_probability": 0.109,
                "bench_expected_minutes": 4.39
              },
              "params": {
                "expected_minutes": 4.39,
                "appearance_probability": 0.109
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "saves": 0,
                "goals_prevented": 0.0046,
                "rating": 7.1651,
                "minutes": 4,
                "total_pass": 1,
                "accurate_pass": 1,
                "duels_won": 0,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "touches": 2,
                "clearances": 0,
                "ball_recovery": 0,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 0.0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 1,
                "accurate_own_half_passes": 1,
                "bench_appearance_probability": 0.109,
                "bench_expected_minutes": 4.39
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 2 by projected rating, fifa_overall 82.0; not used by the projection)",
              "stats": {
                "saves": 0,
                "goals_prevented": 0.0046,
                "rating": 7.1651,
                "minutes": 4,
                "total_pass": 1,
                "accurate_pass": 1,
                "duels_won": 0,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "touches": 2,
                "clearances": 0,
                "ball_recovery": 0,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 0.0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 1,
                "accurate_own_half_passes": 1,
                "bench_appearance_probability": 0.109,
                "bench_expected_minutes": 4.39,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.197,
                "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": 82.0
              },
              "params": {
                "match_squad_rank": 2,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 616,
                "fifa_rank": 409.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 82.0
              }
            }
          ]
        },
        "Alexander Freeman": {
          "player_id": 1184541,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 3,
          "height": 188,
          "market_value": 9200000,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 0,
            "aerial_won": 0,
            "total_shots": 0,
            "rating": 6.8508,
            "minutes": 14,
            "total_pass": 7,
            "accurate_pass": 7,
            "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": 4,
            "accurate_opp_half_passes": 4,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 9,
            "possession_lost": 0.8,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assist_rate": 0.0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0062,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 2,
            "total_progression": 9,
            "progressive_carries": 0,
            "key_pass": 0,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.312,
            "bench_expected_minutes": 13.87,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.197,
            "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": 81.0
          },
          "latest_10_games": [
            {
              "match_id": 16416294.0,
              "match_date": "2026-09-20",
              "home_team": "Villarreal",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0975,
                "expected_assists": 0.0373,
                "total_shots": 1,
                "total_pass": 72,
                "accurate_pass": 69,
                "key_pass": 2,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 1,
                "clearances": 3,
                "aerial_won": 1,
                "duels_won": 5,
                "ball_recovery": 9
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416338.0,
              "match_date": "2026-09-17",
              "home_team": "Málaga CF",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 90,
                "rating": 7.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0657,
                "total_shots": 0,
                "total_pass": 68,
                "accurate_pass": 62,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 4,
                "aerial_won": 3,
                "duels_won": 8,
                "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": 16416333.0,
              "match_date": "2026-09-14",
              "home_team": "Villarreal",
              "away_team": "Real Betis",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 14,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0127,
                "total_shots": 0,
                "total_pass": 18,
                "accurate_pass": 17,
                "clearances": 1,
                "aerial_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": 16416324.0,
              "match_date": "2026-09-05",
              "home_team": "Villarreal",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0716,
                "expected_assists": 0.0423,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 83,
                "accurate_pass": 80,
                "tackles": 3,
                "tackles_won": 2,
                "clearances": 2,
                "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": 16416290.0,
              "match_date": "2026-08-28",
              "home_team": "Deportivo Alavés",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Villarreal",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 28,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.059,
                "total_shots": 0,
                "total_pass": 33,
                "accurate_pass": 30,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 1,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421061.0,
              "match_date": "2026-08-16",
              "home_team": "Real Racing Club",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Villarreal",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0004,
                "total_shots": 0,
                "total_pass": 3,
                "accurate_pass": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 416,
            "combined_rank_score": 378.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 257.0,
            "sofascore_rating": 7.1,
            "sofascore_appearances": 2.0,
            "fifa_rank": 500.0,
            "fifa_overall": 81.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 12,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.8508,
            "source_file": "data/player_rankings.csv",
            "player_name": "Alexander Freeman",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Itsuki Urata",
                  "ranking": 411
                },
                {
                  "player_name": "Chi-Won Choi",
                  "ranking": 412
                },
                {
                  "player_name": "Youssef Enriquez",
                  "ranking": 413
                },
                {
                  "player_name": "Beom Song",
                  "ranking": 414
                },
                {
                  "player_name": "Irakli Azarovi",
                  "ranking": 415
                }
              ],
              "lower": [
                {
                  "player_name": "Johaneko Louis Jean",
                  "ranking": 417
                },
                {
                  "player_name": "Roman Begunov",
                  "ranking": 418
                },
                {
                  "player_name": "Cristhian Paredes",
                  "ranking": 419
                },
                {
                  "player_name": "Alex Sandro",
                  "ranking": 420
                },
                {
                  "player_name": "Ismoilbek Usmonxo'jayev",
                  "ranking": 421
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.625,
          "history_matches": 6,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "D_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "totalOppositionHalfPasses",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "ballRecovery",
              "touches",
              "totalClearance",
              "wonTackle",
              "interceptionWon",
              "dispossessed",
              "challengeLost",
              "errorLeadToAShot",
              "errorLeadToAGoal",
              "possessionLostCtrl",
              "passValueNormalized",
              "defensiveValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "totalShots",
              "rating"
            ],
            "history_matches": 6,
            "data_confidence": 0.625,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 13.871536137511768,
            "bench_appearance_prob": 0.3123425517050804,
            "market_value_adjustment": 1.0039,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost D_service (6 historical appearances) to 13.9 expected mins (appearance prob 0.31)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 7 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.8508,
                "minutes": 52,
                "total_pass": 46,
                "accurate_pass": 44,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 17,
                "total_opp_half_passes": 28,
                "accurate_opp_half_passes": 26,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 60,
                "possession_lost": 5.17,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.04,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 61,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:01:55.523250+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 402,
                    "rows": 11400
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Levante UD",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2408,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Málaga CF",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2047,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-09-14",
                    "opponent": "Real Betis",
                    "minutes": 14.0,
                    "is_starting": true,
                    "weight": 0.174,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1479,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Deportivo Alavés",
                    "minutes": 28.0,
                    "is_starting": false,
                    "weight": 0.1257,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-08-16",
                    "opponent": "Real Racing Club",
                    "minutes": 2.0,
                    "is_starting": false,
                    "weight": 0.1069,
                    "rating": null
                  }
                ],
                "feature_row": {
                  "history_matches": 6.0,
                  "is_starting_11": 0.0,
                  "totalClearance": 2.0111,
                  "defensive_actions": 1.827,
                  "wonTackle": 1.1079,
                  "totalTackle_p90": 1.9382,
                  "totalClearance_p90": 2.9557,
                  "aerialWon": 1.1768
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.6971190571784973,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "interceptionWon",
                        "importance": 0.0903
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0858
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.052
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0447
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0364
                      }
                    ],
                    "decomposition": {
                      "base": 0.9034,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1134
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0791
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0343
                        },
                        {
                          "name": "interceptionWon_p90",
                          "contribution": -0.0316
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0226
                        }
                      ],
                      "others": 0.0061,
                      "total": 0.6971,
                      "log_link": true,
                      "margin_base": -0.101631,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.134137
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.105485
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.047111
                        },
                        {
                          "name": "interceptionWon_p90",
                          "margin": -0.043302
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.032159
                        }
                      ],
                      "others_margin": 0.008804
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.335006833076477,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "defensive_actions",
                        "importance": 0.1044
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0863
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0629
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.045
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0342
                      }
                    ],
                    "decomposition": {
                      "base": 1.3313,
                      "items": [
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.1365
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0934
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.04
                        },
                        {
                          "name": "wonTackle",
                          "contribution": -0.0223
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": -0.0108
                        }
                      ],
                      "others": 0.0337,
                      "total": 1.335,
                      "log_link": true,
                      "margin_base": 0.286166,
                      "item_margins": [
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.09759
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.065752
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.029513
                        },
                        {
                          "name": "wonTackle",
                          "margin": -0.016844
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": -0.008227
                        }
                      ],
                      "others_margin": 0.025517
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.7680732011795044,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "wonTackle",
                        "importance": 0.1003
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0586
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0501
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0492
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0386
                      }
                    ],
                    "decomposition": {
                      "base": 0.8256,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0312
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0297
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0236
                        },
                        {
                          "name": "wonTackle",
                          "contribution": -0.0193
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.0136
                        }
                      ],
                      "others": -0.0145,
                      "total": 0.7681,
                      "log_link": true,
                      "margin_base": -0.191612,
                      "item_margins": [
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.038499
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.038141
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": 0.030364
                        },
                        {
                          "name": "wonTackle",
                          "margin": -0.024797
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.01756
                        }
                      ],
                      "others_margin": -0.018746
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 1.9817861318588257,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalClearance",
                        "importance": 0.138
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0733
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.034
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 3.3876,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.6851
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.4044
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.1705
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0888
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0356
                        }
                      ],
                      "others": -0.0214,
                      "total": 1.9818,
                      "log_link": true,
                      "margin_base": 1.220122,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.225955
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.162077
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.077086
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.042631
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.017607
                        }
                      ],
                      "others_margin": -0.010767
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.7218880653381348,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "aerialWon",
                        "importance": 0.1155
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0659
                      },
                      {
                        "name": "aerial_dominance",
                        "importance": 0.0345
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0335
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0332
                      }
                    ],
                    "decomposition": {
                      "base": 1.2696,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.3526
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0754
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0642
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0414
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0291
                        }
                      ],
                      "others": 0.015,
                      "total": 0.7219,
                      "log_link": true,
                      "margin_base": 0.238719,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.325358
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.085822
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.079384
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.054705
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.04029
                        }
                      ],
                      "others_margin": 0.020956
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.4231482446193695,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0373
                      },
                      {
                        "name": "long_ball_accuracy",
                        "importance": 0.0337
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0333
                      },
                      {
                        "name": "errorLeadToAGoal",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0306
                      }
                    ],
                    "decomposition": {
                      "base": 0.476,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0542
                        },
                        {
                          "name": "tackle_success_rate",
                          "contribution": 0.0371
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0271
                        },
                        {
                          "name": "aerialLost",
                          "contribution": -0.0267
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0232
                        }
                      ],
                      "others": -0.0594,
                      "total": 0.4231,
                      "log_link": false,
                      "margin_base": 0.476045,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.054231
                        },
                        {
                          "name": "tackle_success_rate",
                          "margin": 0.037073
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.027121
                        },
                        {
                          "name": "aerialLost",
                          "margin": -0.026653
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.023211
                        }
                      ],
                      "others_margin": -0.059417
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.850771427154541,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0639
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0627
                      },
                      {
                        "name": "defensiveValueNormalized",
                        "importance": 0.0466
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0352
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 6.7578,
                      "items": [
                        {
                          "name": "duel_win_rate",
                          "contribution": 0.0406
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0202
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0195
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": 0.0188
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0124
                        }
                      ],
                      "others": -0.0185,
                      "total": 6.8508,
                      "log_link": false,
                      "margin_base": 6.757789,
                      "item_margins": [
                        {
                          "name": "duel_win_rate",
                          "margin": 0.040619
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": 0.020178
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.019454
                        },
                        {
                          "name": "duelWon_p90",
                          "margin": 0.01877
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.012393
                        }
                      ],
                      "others_margin": -0.018432
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0039, quality 0.513)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.8508,
                "minutes": 52,
                "total_pass": 46,
                "accurate_pass": 44,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 17,
                "total_opp_half_passes": 28,
                "accurate_opp_half_passes": 26,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 60,
                "possession_lost": 5.1902,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0402,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 61,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 0
              },
              "params": {
                "market_value_eur": 9200000,
                "quality_factor": 0.513,
                "boost_factor": 1.0039
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 13.9 expected minutes (appearance prob 0.31)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.8508,
                "minutes": 14,
                "total_pass": 7,
                "accurate_pass": 7,
                "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": 4,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 9,
                "possession_lost": 0.8,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0062,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 2,
                "total_progression": 9,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.312,
                "bench_expected_minutes": 13.87
              },
              "params": {
                "expected_minutes": 13.87,
                "appearance_probability": 0.312
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.8508,
                "minutes": 14,
                "total_pass": 7,
                "accurate_pass": 7,
                "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": 4,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 9,
                "possession_lost": 0.8,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0062,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 2,
                "total_progression": 9,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.312,
                "bench_expected_minutes": 13.87
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 12 by projected rating, fifa_overall 81.0; not used by the projection)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.8508,
                "minutes": 14,
                "total_pass": 7,
                "accurate_pass": 7,
                "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": 4,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 9,
                "possession_lost": 0.8,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0062,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 2,
                "total_progression": 9,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.312,
                "bench_expected_minutes": 13.87,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.197,
                "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": 81.0
              },
              "params": {
                "match_squad_rank": 12,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 416,
                "fifa_rank": 500.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 81.0
              }
            }
          ]
        },
        "Juan Foyth": {
          "player_id": 873189,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 8,
          "height": 187,
          "market_value": 8600000,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 0,
            "aerial_won": 0,
            "total_shots": 0,
            "rating": 7.1887,
            "minutes": 14,
            "total_pass": 12,
            "accurate_pass": 11,
            "duels_won": 1,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "total_own_half_passes": 7,
            "accurate_own_half_passes": 6,
            "total_opp_half_passes": 5,
            "accurate_opp_half_passes": 5,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 15,
            "possession_lost": 1.0278,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 1,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assist_rate": 0.0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0185,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 5,
            "total_progression": 20,
            "progressive_carries": 0,
            "key_pass": 0,
            "shots_off_target": 0,
            "offsides": 0,
            "yellowCards": 0.6667,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 25.0,
            "shotConversion": 0.0,
            "minutesPct": 100.0,
            "pointsPerMatch": 0.67,
            "netGoalDifferencePer90": 0.0,
            "bench_appearance_probability": 0.222,
            "bench_expected_minutes": 13.84,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.197,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "available_bench_not_projected_used",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 79.0
          },
          "latest_10_games": [
            {
              "match_id": 16416290.0,
              "match_date": "2026-08-28",
              "home_team": "Deportivo Alavés",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 90,
                "rating": 7.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.3212,
                "expected_assists": 0.0206,
                "total_shots": 4,
                "shots_on_target": 1,
                "shots_off_target": 2,
                "total_pass": 88,
                "accurate_pass": 83,
                "tackles": 5,
                "tackles_won": 4,
                "interceptions": 2,
                "clearances": 4,
                "aerial_won": 4,
                "duels_won": 11,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416302.0,
              "match_date": "2026-08-23",
              "home_team": "Atlético Madrid",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.2948,
                "total_shots": 0,
                "total_pass": 68,
                "accurate_pass": 62,
                "key_pass": 1,
                "interceptions": 3,
                "clearances": 4,
                "aerial_won": 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": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421061.0,
              "match_date": "2026-08-16",
              "home_team": "Real Racing Club",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 90,
                "rating": 7.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0313,
                "total_shots": 0,
                "total_pass": 75,
                "accurate_pass": 68,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 8,
                "aerial_won": 2,
                "duels_won": 3,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 1291,
            "combined_rank_score": 559.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 157.0,
            "sofascore_rating": 7.3,
            "sofascore_appearances": 1.0,
            "fifa_rank": 962.0,
            "fifa_overall": 79.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 1,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 7.1887,
            "source_file": "data/player_rankings.csv",
            "player_name": "Juan Foyth",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Mario Hermoso",
                  "ranking": 1286
                },
                {
                  "player_name": "Giovani Lo Celso",
                  "ranking": 1287
                },
                {
                  "player_name": "Lucas Torreira",
                  "ranking": 1288
                },
                {
                  "player_name": "Diego Ulloa",
                  "ranking": 1289
                },
                {
                  "player_name": "David Neres",
                  "ranking": 1290
                }
              ],
              "lower": [
                {
                  "player_name": "Patrick Berg",
                  "ranking": 1292
                },
                {
                  "player_name": "Nicholas Pennington",
                  "ranking": 1293
                },
                {
                  "player_name": "Park Jae-Hwan",
                  "ranking": 1294
                },
                {
                  "player_name": "Franco Frías",
                  "ranking": 1295
                },
                {
                  "player_name": "César Fuentes",
                  "ranking": 1296
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.467,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "D_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "totalOppositionHalfPasses",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "ballRecovery",
              "touches",
              "totalClearance",
              "wonTackle",
              "interceptionWon",
              "dispossessed",
              "challengeLost",
              "errorLeadToAShot",
              "errorLeadToAGoal",
              "possessionLostCtrl",
              "passValueNormalized",
              "defensiveValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "totalShots",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.467,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 13.843259726989771,
            "bench_appearance_prob": 0.222,
            "market_value_adjustment": 1.0018,
            "fbref_prior_metrics": {
              "squad": "Villarreal",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "sub_appearances": 0.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "prior_reliability": 0.2
            },
            "rationale": "Bench projection scaled from XGBoost D_service (3 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": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 2,
                "total_shots": 1,
                "rating": 7.1887,
                "minutes": 90,
                "total_pass": 77,
                "accurate_pass": 71,
                "duels_won": 6,
                "total_long_balls": 3,
                "accurate_long_balls": 2,
                "total_own_half_passes": 43,
                "accurate_own_half_passes": 41,
                "total_opp_half_passes": 34,
                "accurate_opp_half_passes": 30,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 95,
                "possession_lost": 6.67,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 6,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.12,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 30,
                "total_progression": 131,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:01:55.523250+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 402,
                    "rows": 11400
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Deportivo Alavés",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3887,
                    "rating": 7.6
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Atlético Madrid",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3304,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-08-16",
                    "opponent": "Real Racing Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2809,
                    "rating": 7.3
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 0.0,
                  "totalClearance": 5.1234,
                  "defensive_actions": 4.5549,
                  "wonTackle": 1.8358,
                  "totalTackle_p90": 2.2245,
                  "totalClearance_p90": 5.1234,
                  "aerialWon": 3.1079
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.8234604597091675,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "interceptionWon",
                        "importance": 0.0903
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0858
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.052
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0447
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0364
                      }
                    ],
                    "decomposition": {
                      "base": 0.9034,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2802
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": 0.0522
                        },
                        {
                          "name": "interceptionWon_p90",
                          "contribution": 0.0423
                        },
                        {
                          "name": "history_matches",
                          "contribution": -0.0197
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": 0.0192
                        }
                      ],
                      "others": 0.1063,
                      "total": 0.8235,
                      "log_link": true,
                      "margin_base": -0.101631,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.371375
                        },
                        {
                          "name": "interceptionWon",
                          "margin": 0.08041
                        },
                        {
                          "name": "interceptionWon_p90",
                          "margin": 0.060813
                        },
                        {
                          "name": "history_matches",
                          "margin": -0.027879
                        },
                        {
                          "name": "defensive_actions",
                          "margin": 0.027106
                        }
                      ],
                      "others_margin": 0.138316
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.799248456954956,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "defensive_actions",
                        "importance": 0.1044
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0863
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0629
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.045
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0342
                      }
                    ],
                    "decomposition": {
                      "base": 1.3313,
                      "items": [
                        {
                          "name": "defensive_actions",
                          "contribution": 0.3432
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.1393
                        },
                        {
                          "name": "wonTackle",
                          "contribution": 0.0728
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0416
                        },
                        {
                          "name": "history_matches",
                          "contribution": -0.0314
                        }
                      ],
                      "others": -0.0144,
                      "total": 1.7992,
                      "log_link": true,
                      "margin_base": 0.286166,
                      "item_margins": [
                        {
                          "name": "defensive_actions",
                          "margin": 0.229336
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.079931
                        },
                        {
                          "name": "wonTackle",
                          "margin": 0.039329
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.022314
                        },
                        {
                          "name": "history_matches",
                          "margin": -0.017187
                        }
                      ],
                      "others_margin": -0.007892
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 1.056767225265503,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "wonTackle",
                        "importance": 0.1003
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0586
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0501
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0492
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0386
                      }
                    ],
                    "decomposition": {
                      "base": 0.8256,
                      "items": [
                        {
                          "name": "wonTackle",
                          "contribution": 0.1266
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": 0.1032
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0257
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": -0.0235
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0132
                        }
                      ],
                      "others": 0.0124,
                      "total": 1.0568,
                      "log_link": true,
                      "margin_base": -0.191612,
                      "item_margins": [
                        {
                          "name": "wonTackle",
                          "margin": 0.142711
                        },
                        {
                          "name": "defensive_actions",
                          "margin": 0.102926
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": 0.024017
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": -0.022005
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.012578
                        }
                      ],
                      "others_margin": 0.011755
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 2.7799124717712402,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalClearance",
                        "importance": 0.138
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0733
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.034
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 3.3876,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -1.0508
                        },
                        {
                          "name": "totalClearance",
                          "contribution": 0.19
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0697
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0665
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.0665
                        }
                      ],
                      "others": 0.1834,
                      "total": 2.7799,
                      "log_link": true,
                      "margin_base": 1.220122,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.371357
                        },
                        {
                          "name": "totalClearance",
                          "margin": 0.07818
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.027229
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.025286
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": -0.025275
                        }
                      ],
                      "others_margin": 0.068235
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 1.5433785915374756,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "aerialWon",
                        "importance": 0.1155
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0659
                      },
                      {
                        "name": "aerial_dominance",
                        "importance": 0.0345
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0335
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0332
                      }
                    ],
                    "decomposition": {
                      "base": 1.2696,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.436
                        },
                        {
                          "name": "aerialWon",
                          "contribution": 0.2163
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.1179
                        },
                        {
                          "name": "totalClearance",
                          "contribution": 0.0767
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.07
                        }
                      ],
                      "others": 0.2289,
                      "total": 1.5434,
                      "log_link": true,
                      "margin_base": 0.238719,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.420691
                        },
                        {
                          "name": "aerialWon",
                          "margin": 0.23072
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.106442
                        },
                        {
                          "name": "totalClearance",
                          "margin": 0.063575
                        },
                        {
                          "name": "totalPass",
                          "margin": 0.054725
                        }
                      ],
                      "others_margin": 0.160484
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.5412,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0373
                      },
                      {
                        "name": "long_ball_accuracy",
                        "importance": 0.0337
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0333
                      },
                      {
                        "name": "errorLeadToAGoal",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0306
                      }
                    ],
                    "decomposition": {
                      "base": 0.476,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.059
                        },
                        {
                          "name": "aerialLost",
                          "contribution": -0.025
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0213
                        },
                        {
                          "name": "duelWon",
                          "contribution": 0.0208
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0204
                        }
                      ],
                      "others": 0.0867,
                      "total": 0.5412,
                      "log_link": false,
                      "margin_base": 0.476045,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.058998
                        },
                        {
                          "name": "aerialLost",
                          "margin": -0.025017
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.021283
                        },
                        {
                          "name": "duelWon",
                          "margin": 0.020783
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": 0.020358
                        }
                      ],
                      "others_margin": 0.086732
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 7.188741683959961,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0639
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0627
                      },
                      {
                        "name": "defensiveValueNormalized",
                        "importance": 0.0466
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0352
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 6.7578,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0667
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0609
                        },
                        {
                          "name": "touches",
                          "contribution": 0.0523
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": 0.0452
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": 0.0401
                        }
                      ],
                      "others": 0.1657,
                      "total": 7.1887,
                      "log_link": false,
                      "margin_base": 6.757789,
                      "item_margins": [
                        {
                          "name": "passValueNormalized",
                          "margin": 0.066727
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.060931
                        },
                        {
                          "name": "touches",
                          "margin": 0.052283
                        },
                        {
                          "name": "duelWon_p90",
                          "margin": 0.045227
                        },
                        {
                          "name": "duel_win_rate",
                          "margin": 0.040108
                        }
                      ],
                      "others_margin": 0.165675
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0018, quality 0.506)",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 2,
                "total_shots": 1,
                "rating": 7.1887,
                "minutes": 90,
                "total_pass": 77,
                "accurate_pass": 71,
                "duels_won": 6,
                "total_long_balls": 3,
                "accurate_long_balls": 2,
                "total_own_half_passes": 43,
                "accurate_own_half_passes": 41,
                "total_opp_half_passes": 34,
                "accurate_opp_half_passes": 30,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 95,
                "possession_lost": 6.6818,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 6,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.1202,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 30,
                "total_progression": 131,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 8600000,
                "quality_factor": 0.5059,
                "boost_factor": 1.0018
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0813)",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 2,
                "total_shots": 1,
                "rating": 7.1887,
                "minutes": 90,
                "total_pass": 77,
                "accurate_pass": 71,
                "duels_won": 6,
                "total_long_balls": 3,
                "accurate_long_balls": 2,
                "total_own_half_passes": 43,
                "accurate_own_half_passes": 41,
                "total_opp_half_passes": 34,
                "accurate_opp_half_passes": 30,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 95,
                "possession_lost": 6.6818,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 6,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.1202,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 30,
                "total_progression": 131,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.6667,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 25.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": -0.33
              },
              "params": {
                "blend_weight": 0.0813,
                "history_matches": 3,
                "prior_reliability": 0.2,
                "competition": "La Liga",
                "squad": "Villarreal"
              },
              "changes": [
                {
                  "stat": "interceptionWon",
                  "before": 0.8249,
                  "after": 0.9475
                },
                {
                  "stat": "totalShots",
                  "before": 0.5422,
                  "after": 0.6062
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0542
                },
                {
                  "stat": "wonTackle",
                  "before": 1.0586,
                  "after": 1.108
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0271
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.0,
                  "after": 0.0268
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 13.8 expected minutes (appearance prob 0.22)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 7.1887,
                "minutes": 14,
                "total_pass": 12,
                "accurate_pass": 11,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 6,
                "total_opp_half_passes": 5,
                "accurate_opp_half_passes": 5,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 1.0278,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0185,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 20,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.6667,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 25.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.222,
                "bench_expected_minutes": 13.84
              },
              "params": {
                "expected_minutes": 13.84,
                "appearance_probability": 0.222
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 7.1887,
                "minutes": 14,
                "total_pass": 12,
                "accurate_pass": 11,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 6,
                "total_opp_half_passes": 5,
                "accurate_opp_half_passes": 5,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 1.0278,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0185,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 20,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.6667,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 25.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.222,
                "bench_expected_minutes": 13.84
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 1 by projected rating, fifa_overall 79.0; not used by the projection)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 7.1887,
                "minutes": 14,
                "total_pass": 12,
                "accurate_pass": 11,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 6,
                "total_opp_half_passes": 5,
                "accurate_opp_half_passes": 5,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 1.0278,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0185,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 20,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.6667,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 25.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.222,
                "bench_expected_minutes": 13.84,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.197,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "available_bench_not_projected_used",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 79.0
              },
              "params": {
                "match_squad_rank": 1,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 1291,
                "fifa_rank": 962.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 79.0
              }
            }
          ]
        },
        "Nathan-Dylan Saliba": {
          "player_id": 1093229,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 24,
          "height": 173,
          "market_value": 9200000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0128,
            "assist_rate": 0.0198,
            "assists": 0,
            "expected_goals": 0.0344,
            "goal_rate": 0.0308,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 0,
            "rating": 6.9295,
            "minutes": 22,
            "total_pass": 12,
            "accurate_pass": 11,
            "duels_won": 1,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "total_own_half_passes": 4,
            "accurate_own_half_passes": 4,
            "total_opp_half_passes": 7,
            "accurate_opp_half_passes": 7,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 15,
            "possession_lost": 1.8011,
            "dispossessed": 0.0,
            "duels_lost": 1,
            "aerial_won": 0,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 4,
            "total_progression": 12,
            "progressive_carries": 0,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.512,
            "bench_expected_minutes": 22.27,
            "projected_substitution_order": 2,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.197,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0173,
            "projected_assists": 0,
            "assist_probability": 0.0065,
            "finishing_factor": 1.0306,
            "creation_factor": 1.1009,
            "fifa_overall": 71.0
          },
          "latest_10_games": [
            {
              "match_id": 16416294.0,
              "match_date": "2026-09-20",
              "home_team": "Villarreal",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1143,
                "expected_assists": 0.0184,
                "total_shots": 3,
                "shots_off_target": 1,
                "total_pass": 39,
                "accurate_pass": 36,
                "tackles": 5,
                "tackles_won": 2,
                "interceptions": 3,
                "aerial_won": 1,
                "duels_won": 7,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416338.0,
              "match_date": "2026-09-17",
              "home_team": "Málaga CF",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 80,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0195,
                "total_shots": 0,
                "total_pass": 42,
                "accurate_pass": 38,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "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": 16416333.0,
              "match_date": "2026-09-14",
              "home_team": "Villarreal",
              "away_team": "Real Betis",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 36,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0253,
                "total_shots": 0,
                "total_pass": 37,
                "accurate_pass": 32,
                "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": 16416324.0,
              "match_date": "2026-09-05",
              "home_team": "Villarreal",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 90,
                "rating": 7.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1151,
                "expected_assists": 0.1364,
                "total_shots": 1,
                "total_pass": 73,
                "accurate_pass": 67,
                "key_pass": 1,
                "tackles": 5,
                "tackles_won": 3,
                "interceptions": 3,
                "clearances": 3,
                "aerial_won": 3,
                "duels_won": 10,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 4406,
            "combined_rank_score": 2430.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 4706.0,
            "fifa_overall": 71.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 9,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.9295,
            "source_file": "data/player_rankings.csv",
            "player_name": "Nathan-Dylan Saliba",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Francés",
                  "ranking": 4401
                },
                {
                  "player_name": "Florin Tănase",
                  "ranking": 4402
                },
                {
                  "player_name": "Víctor García",
                  "ranking": 4403
                },
                {
                  "player_name": "Kings Kangwa",
                  "ranking": 4404
                },
                {
                  "player_name": "Soualiho Meïté",
                  "ranking": 4405
                }
              ],
              "lower": [
                {
                  "player_name": "Luca Koleosho",
                  "ranking": 4407
                },
                {
                  "player_name": "Anastasios Bakasetas",
                  "ranking": 4408
                },
                {
                  "player_name": "Rick van Drongelen",
                  "ranking": 4409
                },
                {
                  "player_name": "Rodrigo Echeverría",
                  "ranking": 4410
                },
                {
                  "player_name": "Romaine Mundle",
                  "ranking": 4411
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.5,
          "history_matches": 4,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 4,
            "data_confidence": 0.5,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 22.271536137511767,
            "bench_appearance_prob": 0.5123425517050804,
            "market_value_adjustment": 1.0039,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost M_service (4 historical appearances) to 22.3 expected mins (appearance prob 0.51)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0539,
                "assist_rate": 0.0798,
                "assists": 0,
                "expected_goals": 0.1143,
                "goal_rate": 0.124,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.9295,
                "minutes": 74,
                "total_pass": 48,
                "accurate_pass": 43,
                "duels_won": 6,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 17,
                "total_opp_half_passes": 30,
                "accurate_opp_half_passes": 26,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 61,
                "possession_lost": 7.25,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 2,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 48,
                "progressive_carries": 1,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 6,
                  "trained_at": "2026-09-29T10:02:07.046807+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 550,
                    "rows": 13779
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Levante UD",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3138,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Málaga CF",
                    "minutes": 80.0,
                    "is_starting": true,
                    "weight": 0.2667,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-09-14",
                    "opponent": "Real Betis",
                    "minutes": 36.0,
                    "is_starting": true,
                    "weight": 0.2267,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1927,
                    "rating": 7.7
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 0.0,
                  "totalShots": 1.1342,
                  "expectedAssists": 0.043,
                  "creative_index": 0.1029,
                  "creative_efficiency": 0.0263,
                  "shotValueNormalized": -0.0772,
                  "dribbleValueNormalized": 0.0979
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.6921706795692444,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.12
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0959
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0798
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0429
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0425
                      }
                    ],
                    "decomposition": {
                      "base": 0.9267,
                      "items": [
                        {
                          "name": "creative_index",
                          "contribution": -0.1204
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.0943
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0387
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0267
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0238
                        }
                      ],
                      "others": -0.0556,
                      "total": 0.6922,
                      "log_link": true,
                      "margin_base": -0.076148,
                      "item_margins": [
                        {
                          "name": "creative_index",
                          "margin": -0.139125
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.124428
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.052992
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.036281
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.032379
                        }
                      ],
                      "others_margin": -0.077311
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.053878892213106155,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.118
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0768
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0579
                      },
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0397
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0318
                      }
                    ],
                    "decomposition": {
                      "base": 0.0872,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0173
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0082
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0033
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0026
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": -0.0024
                        }
                      ],
                      "others": 0.0005,
                      "total": 0.0539,
                      "log_link": true,
                      "margin_base": -2.439192,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": -0.221405
                        },
                        {
                          "name": "cross_creative_contribution",
                          "margin": -0.12499
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.054778
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.044859
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": -0.043209
                        }
                      ],
                      "others_margin": 0.007416
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.07981563359498978,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0669
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0574
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0465
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0404
                      },
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0277
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0127
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.004
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0021
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0018
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": -0.0018
                        }
                      ],
                      "others": -0.0083,
                      "total": 0.0798,
                      "log_link": true,
                      "margin_base": -2.463441,
                      "item_margins": [
                        {
                          "name": "creative_efficiency",
                          "margin": 0.139398
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.042232
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.022222
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.019696
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": -0.019666
                        }
                      ],
                      "others_margin": -0.100177
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.11430300772190094,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.082
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0374
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0365
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.035
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0344
                      }
                    ],
                    "decomposition": {
                      "base": 0.1826,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0144
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": -0.008
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0057
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.0051
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": -0.0043
                        }
                      ],
                      "others": -0.0308,
                      "total": 0.1143,
                      "log_link": true,
                      "margin_base": -1.700309,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.081885
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": -0.048467
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": -0.036139
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.033748
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": -0.029429
                        }
                      ],
                      "others_margin": -0.238924
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.12396681308746338,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0879
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0676
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0367
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.031
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0294
                      }
                    ],
                    "decomposition": {
                      "base": 0.1479,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0543
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0328
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0076
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": -0.0069
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0065
                        }
                      ],
                      "others": -0.0244,
                      "total": 0.124,
                      "log_link": true,
                      "margin_base": -1.911166,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.312691
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.176746
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.045963
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "margin": -0.04362
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": -0.042955
                        }
                      ],
                      "others_margin": -0.179982
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.3077886998653412,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1114
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0574
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0383
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0333
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.033
                      }
                    ],
                    "decomposition": {
                      "base": 0.3374,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0249
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0209
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0186
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0148
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": -0.0093
                        }
                      ],
                      "others": -0.0281,
                      "total": 0.3078,
                      "log_link": true,
                      "margin_base": -1.086396,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.071271
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": -0.059418
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": 0.052909
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.041995
                        },
                        {
                          "name": "ballRecovery_p90",
                          "margin": -0.027277
                        }
                      ],
                      "others_margin": -0.087436
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.8437253832817078,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1236
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0751
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0663
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0364
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 1.0381,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0808
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0313
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0274
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0241
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0225
                        }
                      ],
                      "others": -0.0533,
                      "total": 0.8437,
                      "log_link": false,
                      "margin_base": 1.038069,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.080818
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.031262
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.027444
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": -0.024068
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": 0.022525
                        }
                      ],
                      "others_margin": -0.053276
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.929502010345459,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0666
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "touches",
                        "importance": 0.041
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0305
                      }
                    ],
                    "decomposition": {
                      "base": 6.8598,
                      "items": [
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.027
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0243
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": 0.0174
                        },
                        {
                          "name": "touches",
                          "contribution": 0.0143
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0138
                        }
                      ],
                      "others": 0.0005,
                      "total": 6.9295,
                      "log_link": false,
                      "margin_base": 6.859756,
                      "item_margins": [
                        {
                          "name": "defensiveValueNormalized",
                          "margin": 0.026974
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.024319
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "margin": 0.017417
                        },
                        {
                          "name": "touches",
                          "margin": 0.014318
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.013842
                        }
                      ],
                      "others_margin": 0.00056
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0039, quality 0.513)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0541,
                "assist_rate": 0.0801,
                "assists": 0,
                "expected_goals": 0.1147,
                "goal_rate": 0.1245,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.9295,
                "minutes": 74,
                "total_pass": 48,
                "accurate_pass": 43,
                "duels_won": 6,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 17,
                "total_opp_half_passes": 30,
                "accurate_opp_half_passes": 26,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 61,
                "possession_lost": 7.2783,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 2,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 48,
                "progressive_carries": 1,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 9200000,
                "quality_factor": 0.513,
                "boost_factor": 1.0039
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 22.3 expected minutes (appearance prob 0.51)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0134,
                "assist_rate": 0.0198,
                "assists": 0,
                "expected_goals": 0.0284,
                "goal_rate": 0.0308,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.9295,
                "minutes": 22,
                "total_pass": 12,
                "accurate_pass": 11,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 7,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 1.8011,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 12,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.512,
                "bench_expected_minutes": 22.27
              },
              "params": {
                "expected_minutes": 22.27,
                "appearance_probability": 0.512
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0134,
                "assist_rate": 0.0198,
                "assists": 0,
                "expected_goals": 0.0284,
                "goal_rate": 0.0308,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.9295,
                "minutes": 22,
                "total_pass": 12,
                "accurate_pass": 11,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 7,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 1.8011,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 12,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.512,
                "bench_expected_minutes": 22.27
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.35 (squad xG sum 1.1115, xG scale 1.2128, xA scale 0.9580, team xA 1.08 = 0.80 x lambda)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0128,
                "assist_rate": 0.0198,
                "assists": 0,
                "expected_goals": 0.0344,
                "goal_rate": 0.0308,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.9295,
                "minutes": 22,
                "total_pass": 12,
                "accurate_pass": 11,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 7,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 1.8011,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 12,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.512,
                "bench_expected_minutes": 22.27,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.197,
                "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.0306,
                "creation_factor": 1.1009
              },
              "params": {
                "team_lambda": 1.348,
                "squad_xg_sum": 1.1115,
                "squad_xa_sum": 1.1257,
                "team_expected_assists": 1.0784,
                "team_xa_to_xg_ratio": 0.8,
                "bench_appearance_weighted": true,
                "xg_scale": 1.2128,
                "xa_scale": 0.958,
                "opponent_lambda": 3.538,
                "scoreline_reset": true,
                "appearance_weight": 0.512
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0284,
                  "after": 0.0344
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 9 by projected rating, fifa_overall 71.0; not used by the projection)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0128,
                "assist_rate": 0.0198,
                "assists": 0,
                "expected_goals": 0.0344,
                "goal_rate": 0.0308,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.9295,
                "minutes": 22,
                "total_pass": 12,
                "accurate_pass": 11,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 7,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 1.8011,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 12,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.512,
                "bench_expected_minutes": 22.27,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.197,
                "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.0306,
                "creation_factor": 1.1009,
                "fifa_overall": 71.0
              },
              "params": {
                "match_squad_rank": 9,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 4406,
                "fifa_rank": 4706.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 71.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,
                "expected_assists": 0.0128,
                "assist_rate": 0.0198,
                "assists": 0,
                "expected_goals": 0.0344,
                "goal_rate": 0.0308,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.9295,
                "minutes": 22,
                "total_pass": 12,
                "accurate_pass": 11,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 7,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 1.8011,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 12,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.512,
                "bench_expected_minutes": 22.27,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.197,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0173,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0306,
                "creation_factor": 1.1009,
                "fifa_overall": 71.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0173,
                "scorer_weight": 0.0182,
                "squad_weight_total": 1.3104,
                "weight_share": 0.0139,
                "finishing_factor": 1.0306,
                "appearance_weight": 0.512,
                "weight_rank": 9,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Georges Mikautadze",
                    "weight": 0.3558,
                    "already": 0,
                    "effective_weight": 0.3558,
                    "runner_up": "Alberto Moleiro",
                    "runner_up_effective_weight": 0.3304
                  }
                ]
              }
            },
            {
              "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,
                "expected_assists": 0.0128,
                "assist_rate": 0.0198,
                "assists": 0,
                "expected_goals": 0.0344,
                "goal_rate": 0.0308,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.9295,
                "minutes": 22,
                "total_pass": 12,
                "accurate_pass": 11,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 7,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 1.8011,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 12,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.512,
                "bench_expected_minutes": 22.27,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.197,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0173,
                "projected_assists": 0,
                "assist_probability": 0.0065,
                "finishing_factor": 1.0306,
                "creation_factor": 1.1009,
                "fifa_overall": 71.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0065,
                "provider_weight": 0.0072,
                "squad_weight_total": 1.0247,
                "weight_share": 0.007,
                "creation_factor": 1.1009,
                "appearance_weight": 0.512,
                "weight_rank": 12,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Alberto Moleiro",
                    "weight": 0.2034,
                    "already": 0,
                    "effective_weight": 0.2034,
                    "runner_up": "Ilias Akhomach",
                    "runner_up_effective_weight": 0.1848,
                    "blocked_own_goal": [
                      "Georges Mikautadze"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Santi Comesaña": {
          "player_id": 843678,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 14,
          "height": 187,
          "market_value": 8400000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0192,
            "assist_rate": 0.0207,
            "assists": 0,
            "expected_goals": 0.0275,
            "goal_rate": 0.0139,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 0,
            "rating": 6.8569,
            "minutes": 22,
            "total_pass": 11,
            "accurate_pass": 10,
            "duels_won": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 4,
            "accurate_own_half_passes": 4,
            "total_opp_half_passes": 7,
            "accurate_opp_half_passes": 6,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 14,
            "possession_lost": 1.5258,
            "dispossessed": 0.0,
            "duels_lost": 1,
            "aerial_won": 0,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 1,
            "fouls_drawn": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 4,
            "total_progression": 10,
            "progressive_carries": 0,
            "shots_off_target": 0,
            "offsides": 1,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "minutesPct": 73.7,
            "pointsPerMatch": 0.67,
            "netGoalDifferencePer90": 0.0,
            "bench_appearance_probability": 0.312,
            "bench_expected_minutes": 22.23,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.197,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "available_bench_not_projected_used",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 79.0
          },
          "latest_10_games": [
            {
              "match_id": 16416338.0,
              "match_date": "2026-09-17",
              "home_team": "Málaga CF",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 37,
                "rating": 7.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0953,
                "total_shots": 0,
                "total_pass": 42,
                "accurate_pass": 41,
                "key_pass": 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": 16416333.0,
              "match_date": "2026-09-14",
              "home_team": "Villarreal",
              "away_team": "Real Betis",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 90,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.5685,
                "expected_assists": 0.0428,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 70,
                "accurate_pass": 65,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 3,
                "clearances": 1,
                "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": 16416324.0,
              "match_date": "2026-09-05",
              "home_team": "Villarreal",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Villarreal",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 28,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0293,
                "total_shots": 0,
                "total_pass": 29,
                "accurate_pass": 24,
                "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": 16416290.0,
              "match_date": "2026-08-28",
              "home_team": "Deportivo Alavés",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 62,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0546,
                "total_shots": 0,
                "total_pass": 54,
                "accurate_pass": 46,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 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": 16416302.0,
              "match_date": "2026-08-23",
              "home_team": "Atlético Madrid",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 84,
                "rating": 6.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0171,
                "total_shots": 0,
                "total_pass": 50,
                "accurate_pass": 43,
                "interceptions": 1,
                "clearances": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421061.0,
              "match_date": "2026-08-16",
              "home_team": "Real Racing Club",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 56,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.459,
                "total_shots": 0,
                "total_pass": 29,
                "accurate_pass": 26,
                "tackles": 4,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 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"
            }
          ],
          "ranking": {
            "global_player_rank": 1902,
            "combined_rank_score": 735.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 511.0,
            "sofascore_rating": 6.85,
            "sofascore_appearances": 34.0,
            "fifa_rank": 960.0,
            "fifa_overall": 79.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 11,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.8569,
            "source_file": "data/player_rankings.csv",
            "player_name": "Santi Comesaña",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Jeong-hwan Kim",
                  "ranking": 1897
                },
                {
                  "player_name": "Ahmet Arslan",
                  "ranking": 1898
                },
                {
                  "player_name": "Matteo Gabbia",
                  "ranking": 1899
                },
                {
                  "player_name": "Otabek Jurakuziev",
                  "ranking": 1900
                },
                {
                  "player_name": "Choi Han-sol",
                  "ranking": 1901
                }
              ],
              "lower": [
                {
                  "player_name": "Federico Lanzillotta",
                  "ranking": 1903
                },
                {
                  "player_name": "Dong-su Lee",
                  "ranking": 1904
                },
                {
                  "player_name": "Armand Laurienté",
                  "ranking": 1905
                },
                {
                  "player_name": "Álex Jiménez",
                  "ranking": 1906
                },
                {
                  "player_name": "Carlos Baleba",
                  "ranking": 1907
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.647,
          "history_matches": 6,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 6,
            "data_confidence": 0.647,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 22.233793669464315,
            "bench_appearance_prob": 0.312,
            "market_value_adjustment": 1.001,
            "fbref_prior_metrics": {
              "squad": "Villarreal",
              "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.1467
            },
            "rationale": "Bench projection scaled from XGBoost M_service (6 historical appearances) to 22.2 expected mins (appearance prob 0.31); FBref playing time empirical prior: 0.0 sub appearances, 0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0778,
                "assist_rate": 0.0873,
                "assists": 0,
                "expected_goals": 0.1111,
                "goal_rate": 0.0587,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.8569,
                "minutes": 60,
                "total_pass": 46,
                "accurate_pass": 41,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 28,
                "accurate_opp_half_passes": 24,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 56,
                "possession_lost": 6.17,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 14,
                "total_progression": 40,
                "progressive_carries": 1,
                "shots_off_target": 0
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 6,
                  "trained_at": "2026-09-29T10:02:07.046807+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 550,
                    "rows": 13779
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Málaga CF",
                    "minutes": 37.0,
                    "is_starting": true,
                    "weight": 0.2408,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-09-14",
                    "opponent": "Real Betis",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2047,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 28.0,
                    "is_starting": false,
                    "weight": 0.174,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Deportivo Alavés",
                    "minutes": 62.0,
                    "is_starting": true,
                    "weight": 0.1479,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Atlético Madrid",
                    "minutes": 84.0,
                    "is_starting": true,
                    "weight": 0.1257,
                    "rating": 6.1
                  },
                  {
                    "match_date": "2026-08-16",
                    "opponent": "Real Racing Club",
                    "minutes": 56.0,
                    "is_starting": true,
                    "weight": 0.1069,
                    "rating": 6.2
                  }
                ],
                "feature_row": {
                  "history_matches": 6.0,
                  "is_starting_11": 0.0,
                  "totalShots": 0.2047,
                  "expectedAssists": 0.0961,
                  "creative_index": 0.3751,
                  "creative_efficiency": 0.0343,
                  "shotValueNormalized": 0.0246,
                  "dribbleValueNormalized": 0.1258
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.8059133887290955,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.12
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0959
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0798
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0429
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0425
                      }
                    ],
                    "decomposition": {
                      "base": 0.9267,
                      "items": [
                        {
                          "name": "keyPass",
                          "contribution": -0.1145
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0338
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.033
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0298
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0265
                        }
                      ],
                      "others": -0.0088,
                      "total": 0.8059,
                      "log_link": true,
                      "margin_base": -0.076148,
                      "item_margins": [
                        {
                          "name": "keyPass",
                          "margin": -0.131878
                        },
                        {
                          "name": "is_starting_11",
                          "margin": -0.042482
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": 0.041486
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.036124
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.032054
                        }
                      ],
                      "others_margin": -0.010826
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.07776995003223419,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.118
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0768
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0579
                      },
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0397
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0318
                      }
                    ],
                    "decomposition": {
                      "base": 0.0872,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0052
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0039
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0035
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0023
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": -0.0022
                        }
                      ],
                      "others": -0.0027,
                      "total": 0.0778,
                      "log_link": true,
                      "margin_base": -2.439192,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": 0.05784
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.04266
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.04038
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.027332
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": -0.026585
                        }
                      ],
                      "others_margin": -0.035691
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.08727122098207474,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0669
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0574
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0465
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0404
                      },
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0277
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0118
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.0039
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.0024
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.002
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0016
                        }
                      ],
                      "others": -0.0077,
                      "total": 0.0873,
                      "log_link": true,
                      "margin_base": -2.463441,
                      "item_margins": [
                        {
                          "name": "creative_efficiency",
                          "margin": 0.129702
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.041514
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": 0.025523
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.020751
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.017105
                        }
                      ],
                      "others_margin": -0.085358
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.1111062616109848,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.082
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0374
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0365
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.035
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0344
                      }
                    ],
                    "decomposition": {
                      "base": 0.1826,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0297
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0078
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": -0.0064
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0047
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0045
                        }
                      ],
                      "others": -0.0184,
                      "total": 0.1111,
                      "log_link": true,
                      "margin_base": -1.700309,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.17769
                        },
                        {
                          "name": "intensity_index",
                          "margin": -0.052535
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": -0.045294
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.034754
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": -0.033904
                        }
                      ],
                      "others_margin": -0.152782
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.05870168283581734,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0879
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0676
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0367
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.031
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0294
                      }
                    ],
                    "decomposition": {
                      "base": 0.1479,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0379
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0224
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0035
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": -0.0031
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0029
                        }
                      ],
                      "others": -0.0194,
                      "total": 0.0587,
                      "log_link": true,
                      "margin_base": -1.911166,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.296208
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.227787
                        },
                        {
                          "name": "intensity_index",
                          "margin": -0.040455
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "margin": -0.038013
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.036536
                        }
                      ],
                      "others_margin": -0.28512
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.18616607785224915,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1114
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0574
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0383
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0333
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.033
                      }
                    ],
                    "decomposition": {
                      "base": 0.3374,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.1187
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0102
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0091
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0058
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0054
                        }
                      ],
                      "others": -0.0202,
                      "total": 0.1862,
                      "log_link": true,
                      "margin_base": -1.086396,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.433722
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.048004
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": 0.042758
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.027017
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": -0.025623
                        }
                      ],
                      "others_margin": -0.103113
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.6585038900375366,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1236
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0751
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0663
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0364
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 1.0381,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.2428
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0357
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0341
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.034
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0298
                        }
                      ],
                      "others": -0.0712,
                      "total": 0.6585,
                      "log_link": false,
                      "margin_base": 1.038069,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.242772
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.035693
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.034125
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.033957
                        },
                        {
                          "name": "is_starting_11",
                          "margin": -0.02981
                        }
                      ],
                      "others_margin": -0.071124
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.85692024230957,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0666
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "touches",
                        "importance": 0.041
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0305
                      }
                    ],
                    "decomposition": {
                      "base": 6.8598,
                      "items": [
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0643
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0371
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0266
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": 0.0262
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": -0.0178
                        }
                      ],
                      "others": -0.0107,
                      "total": 6.8569,
                      "log_link": false,
                      "margin_base": 6.859756,
                      "item_margins": [
                        {
                          "name": "defensiveValueNormalized",
                          "margin": -0.064283
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.037101
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.02664
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": 0.02624
                        },
                        {
                          "name": "duel_win_rate",
                          "margin": -0.017751
                        }
                      ],
                      "others_margin": -0.010784
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0010, quality 0.503)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0779,
                "assist_rate": 0.0874,
                "assists": 0,
                "expected_goals": 0.1112,
                "goal_rate": 0.0588,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.8569,
                "minutes": 60,
                "total_pass": 46,
                "accurate_pass": 41,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 17,
                "total_opp_half_passes": 28,
                "accurate_opp_half_passes": 24,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 56,
                "possession_lost": 6.1764,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 40,
                "progressive_carries": 1,
                "shots_off_target": 0
              },
              "params": {
                "market_value_eur": 8400000,
                "quality_factor": 0.5035,
                "boost_factor": 1.001
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0433)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0779,
                "assist_rate": 0.0836,
                "assists": 0,
                "expected_goals": 0.1112,
                "goal_rate": 0.0563,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.8569,
                "minutes": 60,
                "total_pass": 46,
                "accurate_pass": 41,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 17,
                "total_opp_half_passes": 28,
                "accurate_opp_half_passes": 24,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 56,
                "possession_lost": 6.1764,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 40,
                "progressive_carries": 1,
                "shots_off_target": 0,
                "offsides": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 73.7,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "blend_weight": 0.0433,
                "history_matches": 6,
                "prior_reliability": 0.1467,
                "competition": "La Liga",
                "squad": "Villarreal"
              },
              "changes": [
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0788
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.0,
                  "after": 0.0591
                },
                {
                  "stat": "fouls",
                  "before": 2.0021,
                  "after": 2.0335
                },
                {
                  "stat": "totalShots",
                  "before": 0.6592,
                  "after": 0.6306
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0197
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.1864,
                  "after": 0.1783
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 22.2 expected minutes (appearance prob 0.31)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0192,
                "assist_rate": 0.0207,
                "assists": 0,
                "expected_goals": 0.0275,
                "goal_rate": 0.0139,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.8569,
                "minutes": 22,
                "total_pass": 11,
                "accurate_pass": 10,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 7,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 14,
                "possession_lost": 1.5258,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 10,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "offsides": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 73.7,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.312,
                "bench_expected_minutes": 22.23
              },
              "params": {
                "expected_minutes": 22.23,
                "appearance_probability": 0.312
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0192,
                "assist_rate": 0.0207,
                "assists": 0,
                "expected_goals": 0.0275,
                "goal_rate": 0.0139,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.8569,
                "minutes": 22,
                "total_pass": 11,
                "accurate_pass": 10,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 7,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 14,
                "possession_lost": 1.5258,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 10,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "offsides": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 73.7,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.312,
                "bench_expected_minutes": 22.23
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 11 by projected rating, fifa_overall 79.0; not used by the projection)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0192,
                "assist_rate": 0.0207,
                "assists": 0,
                "expected_goals": 0.0275,
                "goal_rate": 0.0139,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.8569,
                "minutes": 22,
                "total_pass": 11,
                "accurate_pass": 10,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 7,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 14,
                "possession_lost": 1.5258,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 10,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "offsides": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 73.7,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.312,
                "bench_expected_minutes": 22.23,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.197,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "available_bench_not_projected_used",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 79.0
              },
              "params": {
                "match_squad_rank": 11,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 1902,
                "fifa_rank": 960.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 79.0
              }
            }
          ]
        },
        "Tani Oluwaseyi": {
          "player_id": 1172477,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 21,
          "height": 188,
          "market_value": 7500000,
          "stats": {
            "expected_goals": 0.0275,
            "goal_rate": 0.0244,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 0,
            "expected_assists": 0.0057,
            "key_pass": 0,
            "rating": 6.6857,
            "minutes": 16,
            "total_pass": 1,
            "accurate_pass": 0,
            "duels_won": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 1,
            "accurate_opp_half_passes": 0,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 2,
            "possession_lost": 0.5282,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assist_rate": 0.0,
            "assists": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "offsides": 0,
            "ball_carries": 0,
            "total_progression": 0,
            "progressive_carries": 0,
            "shots_off_target": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "minutesPct": 5.9,
            "pointsPerMatch": 0.5,
            "netGoalDifferencePer90": 0.0,
            "bench_appearance_probability": 0.723,
            "bench_expected_minutes": 15.88,
            "projected_substitution_order": 1,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.197,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0196,
            "projected_assists": 0,
            "assist_probability": 0.0041,
            "finishing_factor": 1.0234,
            "creation_factor": 0.8945,
            "fifa_overall": 71.0
          },
          "latest_10_games": [
            {
              "match_id": 16416333.0,
              "match_date": "2026-09-14",
              "home_team": "Villarreal",
              "away_team": "Real Betis",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 28,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0696,
                "expected_assists": 0.0699,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 12,
                "accurate_pass": 9,
                "key_pass": 2,
                "tackles": 3,
                "tackles_won": 2,
                "interceptions": 1,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416324.0,
              "match_date": "2026-09-05",
              "home_team": "Villarreal",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Villarreal",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 13,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.007,
                "total_shots": 0,
                "total_pass": 4,
                "accurate_pass": 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": 16416290.0,
              "match_date": "2026-08-28",
              "home_team": "Deportivo Alavés",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Villarreal",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 8,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "total_shots": 0,
                "total_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": 16416302.0,
              "match_date": "2026-08-23",
              "home_team": "Atlético Madrid",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Villarreal",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 15,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0001,
                "total_shots": 0,
                "total_pass": 2,
                "accurate_pass": 1,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 4879,
            "combined_rank_score": 2974.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 914.0,
            "sofascore_rating": 6.504,
            "sofascore_appearances": 27.0,
            "fifa_rank": 5035.0,
            "fifa_overall": 71.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 16,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.6857,
            "source_file": "data/player_rankings.csv",
            "player_name": "Tani Oluwaseyi",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Yazan Al Arab",
                  "ranking": 4874
                },
                {
                  "player_name": "Lee Chang Geun",
                  "ranking": 4875
                },
                {
                  "player_name": "Song Bum Keun",
                  "ranking": 4876
                },
                {
                  "player_name": "Renato Steffen",
                  "ranking": 4877
                },
                {
                  "player_name": "Edimilson Fernandes",
                  "ranking": 4878
                }
              ],
              "lower": [
                {
                  "player_name": "Cédric Zesiger",
                  "ranking": 4880
                },
                {
                  "player_name": "Timothé Cognat",
                  "ranking": 4881
                },
                {
                  "player_name": "Alvyn Sanches",
                  "ranking": 4882
                },
                {
                  "player_name": "Mattia Zanotti",
                  "ranking": 4883
                },
                {
                  "player_name": "Silas Andersen",
                  "ranking": 4884
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.502,
          "history_matches": 4,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "F_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "onTargetScoringAttempt",
              "shotOffTarget",
              "bigChanceMissed",
              "expectedAssists",
              "keyPass",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "touches",
              "dispossessed",
              "wasFouled",
              "topSpeed",
              "numberOfSprints",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "shot_accuracy",
              "xg_per_shot",
              "touches_p90",
              "totalShots_p90",
              "duelWon_p90",
              "ballCarriesCount_p90",
              "big_chance_conversion",
              "shot_waste_rate",
              "aerial_dominance",
              "press_resistance_fwd",
              "speed_threat",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 4,
            "data_confidence": 0.502,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 15.88,
            "bench_appearance_prob": 0.723,
            "market_value_adjustment": 0.9978,
            "fbref_prior_metrics": {
              "squad": "Villarreal",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 0.0,
              "sub_appearances": 2.0,
              "minutes_per_sub": 8.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "prior_reliability": 0.0133
            },
            "rationale": "Bench projection scaled from XGBoost F_service (4 historical appearances) to 15.9 expected mins (appearance prob 0.72); FBref playing time empirical prior: 2.0 sub appearances, 8.0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.1289,
                "goal_rate": 0.1394,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0332,
                "key_pass": 0,
                "rating": 6.6857,
                "minutes": 16,
                "total_pass": 5,
                "accurate_pass": 0,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 9,
                "possession_lost": 3.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:02:15.441175+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 325,
                    "rows": 6303
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-14",
                    "opponent": "Real Betis",
                    "minutes": 28.0,
                    "is_starting": true,
                    "weight": 0.3138,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 13.0,
                    "is_starting": false,
                    "weight": 0.2667,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Deportivo Alavés",
                    "minutes": 8.0,
                    "is_starting": false,
                    "weight": 0.2267,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Atlético Madrid",
                    "minutes": 15.0,
                    "is_starting": false,
                    "weight": 0.1927,
                    "rating": 6.6
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 0.0,
                  "onTargetScoringAttempt": 0.0,
                  "totalShots": 0.3138,
                  "minutesPlayed": 16.959,
                  "shotValueNormalized": -0.0345,
                  "accuratePass": 4.084,
                  "expectedAssists": 0.0238
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.12885881960391998,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0826
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0724
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.048
                      },
                      {
                        "name": "touches_p90",
                        "importance": 0.0379
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0352
                      }
                    ],
                    "decomposition": {
                      "base": 0.3626,
                      "items": [
                        {
                          "name": "xg_per_shot",
                          "contribution": -0.0859
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0324
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0285
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.02
                        },
                        {
                          "name": "topSpeed",
                          "contribution": -0.0097
                        }
                      ],
                      "others": -0.0572,
                      "total": 0.1289,
                      "log_link": true,
                      "margin_base": -1.014464,
                      "item_margins": [
                        {
                          "name": "xg_per_shot",
                          "margin": -0.270281
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.124731
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.124266
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.097323
                        },
                        {
                          "name": "topSpeed",
                          "margin": -0.050812
                        }
                      ],
                      "others_margin": -0.367161
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.13937106728553772,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1258
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0801
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "bigChanceMissed",
                        "importance": 0.0323
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0265
                      }
                    ],
                    "decomposition": {
                      "base": 0.2866,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0422
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0268
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0216
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0118
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0071
                        }
                      ],
                      "others": -0.0377,
                      "total": 0.1394,
                      "log_link": true,
                      "margin_base": -1.249595,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.159235
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.116102
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.104629
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.061922
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.03941
                        }
                      ],
                      "others_margin": -0.239724
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.2424454689025879,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1486
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0633
                      },
                      {
                        "name": "shot_accuracy",
                        "importance": 0.0618
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0343
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 0.5888,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.1403
                        },
                        {
                          "name": "shot_accuracy",
                          "contribution": -0.0996
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0302
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0156
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0155
                        }
                      ],
                      "others": -0.0762,
                      "total": 0.2424,
                      "log_link": true,
                      "margin_base": -0.52966,
                      "item_margins": [
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.272221
                        },
                        {
                          "name": "shot_accuracy",
                          "margin": -0.251117
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.090453
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.050304
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.049941
                        }
                      ],
                      "others_margin": -0.273164
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.7819937467575073,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.1122
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0872
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0825
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.074
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0566
                      }
                    ],
                    "decomposition": {
                      "base": 1.4352,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.2715
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.1153
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0563
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0393
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0348
                        }
                      ],
                      "others": -0.2056,
                      "total": 0.782,
                      "log_link": false,
                      "margin_base": 1.435195,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.271499
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.115287
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.056308
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.039295
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.034755
                        }
                      ],
                      "others_margin": -0.205567
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.03324733301997185,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.1197
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0571
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0459
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0451
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0369
                      }
                    ],
                    "decomposition": {
                      "base": 0.06,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0162
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0064
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": 0.0028
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0019
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0018
                        }
                      ],
                      "others": -0.0071,
                      "total": 0.0332,
                      "log_link": true,
                      "margin_base": -2.812623,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": -0.313513
                        },
                        {
                          "name": "totalPass",
                          "margin": -0.15748
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": 0.071999
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.045514
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.044856
                        }
                      ],
                      "others_margin": -0.192822
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.48383134603500366,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "accuratePass",
                        "importance": 0.1105
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0916
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0476
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0444
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0409
                      }
                    ],
                    "decomposition": {
                      "base": 0.6782,
                      "items": [
                        {
                          "name": "keyPass",
                          "contribution": -0.1645
                        },
                        {
                          "name": "aerial_dominance",
                          "contribution": 0.0738
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0395
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.039
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0294
                        }
                      ],
                      "others": -0.0738,
                      "total": 0.4838,
                      "log_link": true,
                      "margin_base": -0.388283,
                      "item_margins": [
                        {
                          "name": "keyPass",
                          "margin": -0.27772
                        },
                        {
                          "name": "aerial_dominance",
                          "margin": 0.134181
                        },
                        {
                          "name": "is_starting_11",
                          "margin": -0.06953
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.068822
                        },
                        {
                          "name": "totalPass",
                          "margin": -0.051443
                        }
                      ],
                      "others_margin": -0.142046
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.68571662902832,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0847
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0724
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0628
                      },
                      {
                        "name": "dispossessed",
                        "importance": 0.0551
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0438
                      }
                    ],
                    "decomposition": {
                      "base": 6.815,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0372
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.026
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0176
                        },
                        {
                          "name": "shot_accuracy",
                          "contribution": -0.0118
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0101
                        }
                      ],
                      "others": -0.0618,
                      "total": 6.6857,
                      "log_link": false,
                      "margin_base": 6.814961,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.03717
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.026043
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.017633
                        },
                        {
                          "name": "shot_accuracy",
                          "margin": -0.01183
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.01006
                        }
                      ],
                      "others_margin": -0.061774
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9978, quality 0.493)",
              "stats": {
                "expected_goals": 0.1286,
                "goal_rate": 0.1391,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0332,
                "key_pass": 0,
                "rating": 6.6857,
                "minutes": 16,
                "total_pass": 5,
                "accurate_pass": 0,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 9,
                "possession_lost": 2.9934,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 7500000,
                "quality_factor": 0.4927,
                "boost_factor": 0.9978
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0048)",
              "stats": {
                "expected_goals": 0.1286,
                "goal_rate": 0.1384,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0332,
                "key_pass": 0,
                "rating": 6.6857,
                "minutes": 16,
                "total_pass": 5,
                "accurate_pass": 0,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 9,
                "possession_lost": 2.9934,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 5.9,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": -5.63
              },
              "params": {
                "blend_weight": 0.0048,
                "history_matches": 4,
                "prior_reliability": 0.0133,
                "competition": "La Liga",
                "squad": "Villarreal"
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 15.9 expected minutes (appearance prob 0.72)",
              "stats": {
                "expected_goals": 0.0227,
                "goal_rate": 0.0244,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0059,
                "key_pass": 0,
                "rating": 6.6857,
                "minutes": 16,
                "total_pass": 1,
                "accurate_pass": 0,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 1,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 2,
                "possession_lost": 0.5282,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 5.9,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.723,
                "bench_expected_minutes": 15.88
              },
              "params": {
                "expected_minutes": 15.88,
                "appearance_probability": 0.723
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0227,
                "goal_rate": 0.0244,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0059,
                "key_pass": 0,
                "rating": 6.6857,
                "minutes": 16,
                "total_pass": 1,
                "accurate_pass": 0,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 1,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 2,
                "possession_lost": 0.5282,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 5.9,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.723,
                "bench_expected_minutes": 15.88
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.35 (squad xG sum 1.1115, xG scale 1.2128, xA scale 0.9580, team xA 1.08 = 0.80 x lambda)",
              "stats": {
                "expected_goals": 0.0275,
                "goal_rate": 0.0244,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0057,
                "key_pass": 0,
                "rating": 6.6857,
                "minutes": 16,
                "total_pass": 1,
                "accurate_pass": 0,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 1,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 2,
                "possession_lost": 0.5282,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 5.9,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.723,
                "bench_expected_minutes": 15.88,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.197,
                "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.0234,
                "creation_factor": 0.8945
              },
              "params": {
                "team_lambda": 1.348,
                "squad_xg_sum": 1.1115,
                "squad_xa_sum": 1.1257,
                "team_expected_assists": 1.0784,
                "team_xa_to_xg_ratio": 0.8,
                "bench_appearance_weighted": true,
                "xg_scale": 1.2128,
                "xa_scale": 0.958,
                "opponent_lambda": 3.538,
                "scoreline_reset": true,
                "appearance_weight": 0.723
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 16 by projected rating, fifa_overall 71.0; not used by the projection)",
              "stats": {
                "expected_goals": 0.0275,
                "goal_rate": 0.0244,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0057,
                "key_pass": 0,
                "rating": 6.6857,
                "minutes": 16,
                "total_pass": 1,
                "accurate_pass": 0,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 1,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 2,
                "possession_lost": 0.5282,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 5.9,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.723,
                "bench_expected_minutes": 15.88,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.197,
                "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.0234,
                "creation_factor": 0.8945,
                "fifa_overall": 71.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": 4879,
                "fifa_rank": 5035.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 71.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.0275,
                "goal_rate": 0.0244,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0057,
                "key_pass": 0,
                "rating": 6.6857,
                "minutes": 16,
                "total_pass": 1,
                "accurate_pass": 0,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 1,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 2,
                "possession_lost": 0.5282,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 5.9,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.723,
                "bench_expected_minutes": 15.88,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.197,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0196,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0234,
                "creation_factor": 0.8945,
                "fifa_overall": 71.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0196,
                "scorer_weight": 0.0203,
                "squad_weight_total": 1.3104,
                "weight_share": 0.0155,
                "finishing_factor": 1.0234,
                "appearance_weight": 0.723,
                "weight_rank": 8,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Georges Mikautadze",
                    "weight": 0.3558,
                    "already": 0,
                    "effective_weight": 0.3558,
                    "runner_up": "Alberto Moleiro",
                    "runner_up_effective_weight": 0.3304
                  }
                ]
              }
            },
            {
              "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.0275,
                "goal_rate": 0.0244,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0057,
                "key_pass": 0,
                "rating": 6.6857,
                "minutes": 16,
                "total_pass": 1,
                "accurate_pass": 0,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 1,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 2,
                "possession_lost": 0.5282,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 5.9,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.723,
                "bench_expected_minutes": 15.88,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.197,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0196,
                "projected_assists": 0,
                "assist_probability": 0.0041,
                "finishing_factor": 1.0234,
                "creation_factor": 0.8945,
                "fifa_overall": 71.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0041,
                "provider_weight": 0.0037,
                "squad_weight_total": 1.0247,
                "weight_share": 0.0036,
                "creation_factor": 0.8945,
                "appearance_weight": 0.723,
                "weight_rank": 13,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Alberto Moleiro",
                    "weight": 0.2034,
                    "already": 0,
                    "effective_weight": 0.2034,
                    "runner_up": "Ilias Akhomach",
                    "runner_up_effective_weight": 0.1848,
                    "blocked_own_goal": [
                      "Georges Mikautadze"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Nicolas Pépé": {
          "player_id": 593526,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 19,
          "height": 183,
          "market_value": 6600000,
          "stats": {
            "expected_goals": 0.0743,
            "goal_rate": 0.0827,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 0,
            "expected_assists": 0.0332,
            "key_pass": 0,
            "rating": 6.941,
            "minutes": 25,
            "total_pass": 10,
            "accurate_pass": 9,
            "duels_won": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 9,
            "accurate_opp_half_passes": 8,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 16,
            "possession_lost": 3.7514,
            "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,
            "assist_rate": 0.0,
            "assists": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "offsides": 0,
            "ball_carries": 6,
            "total_progression": 22,
            "progressive_carries": 1,
            "shots_off_target": 0,
            "yellowCards": 0.3704,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 71.4,
            "shotConversion": 0.14,
            "minutesPct": 90.4,
            "pointsPerMatch": 0.67,
            "netGoalDifferencePer90": 0.0,
            "bench_appearance_probability": 0.338,
            "bench_expected_minutes": 25.47,
            "projected_substitution_order": 3,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.197,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0242,
            "projected_assists": 0,
            "assist_probability": 0.011,
            "finishing_factor": 1.1923,
            "creation_factor": 0.8,
            "fifa_overall": 81.0
          },
          "latest_10_games": [
            {
              "match_id": 16416294.0,
              "match_date": "2026-09-20",
              "home_team": "Villarreal",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 11,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0016,
                "total_shots": 0,
                "total_pass": 5,
                "accurate_pass": 4,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_type": "played",
              "match_id": "16416338.0",
              "match_date": "2026-09-17 19:30:00 UTC",
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27",
              "home_team": "Málaga",
              "away_team": "Villarreal",
              "home_score_current": 1.0,
              "away_score_current": 3.0,
              "team_side": "away",
              "status_code": "100",
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": "True",
              "team": "Villarreal",
              "opponent": "Málaga",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16416333.0,
              "match_date": "2026-09-14",
              "home_team": "Villarreal",
              "away_team": "Real Betis",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 76,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1115,
                "expected_assists": 0.0621,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 35,
                "accurate_pass": 27,
                "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": 16416324.0,
              "match_date": "2026-09-05",
              "home_team": "Villarreal",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "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.2768,
                "expected_assists": 0.2635,
                "total_shots": 5,
                "shots_on_target": 1,
                "shots_off_target": 2,
                "total_pass": 62,
                "accurate_pass": 55,
                "key_pass": 4,
                "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": 16416290.0,
              "match_date": "2026-08-28",
              "home_team": "Deportivo Alavés",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.2524,
                "expected_assists": 0.4359,
                "total_shots": 3,
                "shots_on_target": 2,
                "total_pass": 49,
                "accurate_pass": 42,
                "key_pass": 4,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 6,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416302.0,
              "match_date": "2026-08-23",
              "home_team": "Atlético Madrid",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 79,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1005,
                "expected_assists": 0.2611,
                "total_shots": 2,
                "shots_on_target": 1,
                "total_pass": 31,
                "accurate_pass": 30,
                "key_pass": 1,
                "interceptions": 1,
                "clearances": 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": 16421061.0,
              "match_date": "2026-08-16",
              "home_team": "Real Racing Club",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 77,
                "rating": 7.8,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0802,
                "expected_assists": 0.232,
                "total_shots": 2,
                "shots_on_target": 2,
                "total_pass": 38,
                "accurate_pass": 33,
                "tackles": 1,
                "tackles_won": 1,
                "aerial_won": 1,
                "duels_won": 7,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 560,
            "combined_rank_score": 308.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 44.0,
            "sofascore_rating": 7.8,
            "sofascore_appearances": 1.0,
            "fifa_rank": 572.0,
            "fifa_overall": 81.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 7,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.941,
            "source_file": "data/player_rankings.csv",
            "player_name": "Nicolas Pépé",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Joseph Otunenche",
                  "ranking": 555
                },
                {
                  "player_name": "Dean Huijsen",
                  "ranking": 556
                },
                {
                  "player_name": "Jarrod Bowen",
                  "ranking": 557
                },
                {
                  "player_name": "Ivan Alonso Martin",
                  "ranking": 558
                },
                {
                  "player_name": "Marco Román",
                  "ranking": 559
                }
              ],
              "lower": [
                {
                  "player_name": "Javi Navarro",
                  "ranking": 561
                },
                {
                  "player_name": "Jordi Pesquer",
                  "ranking": 562
                },
                {
                  "player_name": "Diego Lacosta",
                  "ranking": 563
                },
                {
                  "player_name": "Luca Williams-Barnett",
                  "ranking": 564
                },
                {
                  "player_name": "Tynan Thompson",
                  "ranking": 565
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.652,
          "history_matches": 6,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "F_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "onTargetScoringAttempt",
              "shotOffTarget",
              "bigChanceMissed",
              "expectedAssists",
              "keyPass",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "touches",
              "dispossessed",
              "wasFouled",
              "topSpeed",
              "numberOfSprints",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "shot_accuracy",
              "xg_per_shot",
              "touches_p90",
              "totalShots_p90",
              "duelWon_p90",
              "ballCarriesCount_p90",
              "big_chance_conversion",
              "shot_waste_rate",
              "aerial_dominance",
              "press_resistance_fwd",
              "speed_threat",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 6,
            "data_confidence": 0.652,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 25.467767132293673,
            "bench_appearance_prob": 0.338,
            "market_value_adjustment": 0.9945,
            "fbref_prior_metrics": {
              "squad": "Villarreal",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "sub_appearances": 0.0,
              "goals_per90": 0.3703703703703703,
              "assists_per90": 0.0,
              "prior_reliability": 0.18
            },
            "rationale": "Bench projection scaled from XGBoost F_service (6 historical appearances) to 25.5 expected mins (appearance prob 0.34); FBref playing time empirical prior: 0.0 sub appearances, 0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.2178,
                "goal_rate": 0.2894,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.1233,
                "key_pass": 1,
                "rating": 6.941,
                "minutes": 70,
                "total_pass": 37,
                "accurate_pass": 32,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 32,
                "accurate_opp_half_passes": 28,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "possession_lost": 13.33,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 20,
                "total_progression": 77,
                "progressive_carries": 4,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:02:15.441175+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 325,
                    "rows": 6303
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Levante UD",
                    "minutes": 11.0,
                    "is_starting": true,
                    "weight": 0.2408,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-14",
                    "opponent": "Real Betis",
                    "minutes": 76.0,
                    "is_starting": true,
                    "weight": 0.2047,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.174,
                    "rating": 7.8
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Deportivo Alavés",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1479,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Atlético Madrid",
                    "minutes": 79.0,
                    "is_starting": true,
                    "weight": 0.1257,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-08-16",
                    "opponent": "Real Racing Club",
                    "minutes": 77.0,
                    "is_starting": true,
                    "weight": 0.1069,
                    "rating": 7.8
                  }
                ],
                "feature_row": {
                  "history_matches": 6.0,
                  "is_starting_11": 0.0,
                  "onTargetScoringAttempt": 1.0139,
                  "totalShots": 2.1882,
                  "minutesPlayed": 65.3367,
                  "shotValueNormalized": 0.1941,
                  "accuratePass": 29.5697,
                  "expectedAssists": 0.181
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.21781174838542938,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0826
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0724
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.048
                      },
                      {
                        "name": "touches_p90",
                        "importance": 0.0379
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0352
                      }
                    ],
                    "decomposition": {
                      "base": 0.3626,
                      "items": [
                        {
                          "name": "xg_per_shot",
                          "contribution": -0.0852
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0178
                        },
                        {
                          "name": "topSpeed",
                          "contribution": -0.0157
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0092
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0093
                        }
                      ],
                      "others": -0.0446,
                      "total": 0.2178,
                      "log_link": true,
                      "margin_base": -1.014464,
                      "item_margins": [
                        {
                          "name": "xg_per_shot",
                          "margin": -0.267774
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.066379
                        },
                        {
                          "name": "topSpeed",
                          "margin": -0.062212
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.037077
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": 0.036266
                        }
                      ],
                      "others_margin": -0.186638
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.2893947660923004,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1258
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0801
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "bigChanceMissed",
                        "importance": 0.0323
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0265
                      }
                    ],
                    "decomposition": {
                      "base": 0.2866,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0277
                        },
                        {
                          "name": "big_chance_conversion",
                          "contribution": 0.0217
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": 0.0197
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0194
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0202
                        }
                      ],
                      "others": -0.0505,
                      "total": 0.2894,
                      "log_link": true,
                      "margin_base": -1.249595,
                      "item_margins": [
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.101486
                        },
                        {
                          "name": "big_chance_conversion",
                          "margin": 0.080354
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": 0.067709
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.062601
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.061371
                        }
                      ],
                      "others_margin": -0.160918
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.5725125670433044,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1486
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0633
                      },
                      {
                        "name": "shot_accuracy",
                        "importance": 0.0618
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0343
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 0.5888,
                      "items": [
                        {
                          "name": "shot_accuracy",
                          "contribution": 0.0878
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0495
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0245
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0232
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": -0.0209
                        }
                      ],
                      "others": 0.014,
                      "total": 0.5725,
                      "log_link": true,
                      "margin_base": -0.52966,
                      "item_margins": [
                        {
                          "name": "shot_accuracy",
                          "margin": 0.139019
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.075923
                        },
                        {
                          "name": "is_starting_11",
                          "margin": -0.039813
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.039224
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": -0.036664
                        }
                      ],
                      "others_margin": 0.024546
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.5355446338653564,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.1122
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0872
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0825
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.074
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0566
                      }
                    ],
                    "decomposition": {
                      "base": 1.4352,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.1594
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0724
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": 0.0538
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0507
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0499
                        }
                      ],
                      "others": 0.0601,
                      "total": 1.5355,
                      "log_link": false,
                      "margin_base": 1.435195,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.159421
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.072366
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": 0.053847
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.050722
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.049856
                        }
                      ],
                      "others_margin": 0.060026
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.12326037883758545,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.1197
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0571
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0459
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0451
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0369
                      }
                    ],
                    "decomposition": {
                      "base": 0.06,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0295
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0088
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0071
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0071
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.0066
                        }
                      ],
                      "others": 0.0042,
                      "total": 0.1233,
                      "log_link": true,
                      "margin_base": -2.812623,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": 0.400137
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.093745
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.069557
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": 0.065407
                        },
                        {
                          "name": "totalPass",
                          "margin": 0.056963
                        }
                      ],
                      "others_margin": 0.033359
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 1.1962103843688965,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "accuratePass",
                        "importance": 0.1105
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0916
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0476
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0444
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0409
                      }
                    ],
                    "decomposition": {
                      "base": 0.6782,
                      "items": [
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.1446
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.1391
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1019
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.076
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.0638
                        }
                      ],
                      "others": 0.1964,
                      "total": 1.1962,
                      "log_link": true,
                      "margin_base": -0.388283,
                      "item_margins": [
                        {
                          "name": "ballCarriesCount",
                          "margin": 0.193271
                        },
                        {
                          "name": "keyPass",
                          "margin": 0.156222
                        },
                        {
                          "name": "is_starting_11",
                          "margin": -0.111985
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.084658
                        },
                        {
                          "name": "totalPass",
                          "margin": 0.065901
                        }
                      ],
                      "others_margin": 0.179374
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.940967559814453,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0847
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0724
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0628
                      },
                      {
                        "name": "dispossessed",
                        "importance": 0.0551
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0438
                      }
                    ],
                    "decomposition": {
                      "base": 6.815,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0418
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0372
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": 0.0331
                        },
                        {
                          "name": "totalProgression",
                          "contribution": 0.0181
                        },
                        {
                          "name": "big_chance_conversion",
                          "contribution": 0.0181
                        }
                      ],
                      "others": 0.0521,
                      "total": 6.941,
                      "log_link": false,
                      "margin_base": 6.814961,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": 0.04178
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.03724
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": 0.033065
                        },
                        {
                          "name": "totalProgression",
                          "margin": 0.018135
                        },
                        {
                          "name": "big_chance_conversion",
                          "margin": 0.018053
                        }
                      ],
                      "others_margin": 0.052213
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9945, quality 0.482)",
              "stats": {
                "expected_goals": 0.2166,
                "goal_rate": 0.2878,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.1226,
                "key_pass": 1,
                "rating": 6.941,
                "minutes": 70,
                "total_pass": 36,
                "accurate_pass": 32,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 32,
                "accurate_opp_half_passes": 28,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "possession_lost": 13.2571,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 20,
                "total_progression": 76,
                "progressive_carries": 4,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 6600000,
                "quality_factor": 0.4818,
                "boost_factor": 0.9945
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0532)",
              "stats": {
                "expected_goals": 0.2166,
                "goal_rate": 0.2922,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.1226,
                "key_pass": 1,
                "rating": 6.941,
                "minutes": 70,
                "total_pass": 36,
                "accurate_pass": 32,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 32,
                "accurate_opp_half_passes": 28,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "possession_lost": 13.2571,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 20,
                "total_progression": 76,
                "progressive_carries": 4,
                "shots_off_target": 1,
                "yellowCards": 0.3704,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 71.4,
                "shotConversion": 0.14,
                "minutesPct": 90.4,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "blend_weight": 0.0532,
                "history_matches": 6,
                "prior_reliability": 0.18,
                "competition": "La Liga",
                "squad": "Villarreal"
              },
              "changes": [
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.1773
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0788
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.5694,
                  "after": 0.637
                },
                {
                  "stat": "totalShots",
                  "before": 1.5271,
                  "after": 1.5831
                },
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0394
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.0,
                  "after": 0.0197
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 25.5 expected minutes (appearance prob 0.34)",
              "stats": {
                "expected_goals": 0.0613,
                "goal_rate": 0.0827,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0347,
                "key_pass": 0,
                "rating": 6.941,
                "minutes": 25,
                "total_pass": 10,
                "accurate_pass": 9,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 3.7514,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 6,
                "total_progression": 22,
                "progressive_carries": 1,
                "shots_off_target": 0,
                "yellowCards": 0.3704,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 71.4,
                "shotConversion": 0.14,
                "minutesPct": 90.4,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.338,
                "bench_expected_minutes": 25.47
              },
              "params": {
                "expected_minutes": 25.47,
                "appearance_probability": 0.338
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0613,
                "goal_rate": 0.0827,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0347,
                "key_pass": 0,
                "rating": 6.941,
                "minutes": 25,
                "total_pass": 10,
                "accurate_pass": 9,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 3.7514,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 6,
                "total_progression": 22,
                "progressive_carries": 1,
                "shots_off_target": 0,
                "yellowCards": 0.3704,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 71.4,
                "shotConversion": 0.14,
                "minutesPct": 90.4,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.338,
                "bench_expected_minutes": 25.47
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": true
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.35 (squad xG sum 1.1115, xG scale 1.2128, xA scale 0.9580, team xA 1.08 = 0.80 x lambda)",
              "stats": {
                "expected_goals": 0.0743,
                "goal_rate": 0.0827,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0332,
                "key_pass": 0,
                "rating": 6.941,
                "minutes": 25,
                "total_pass": 10,
                "accurate_pass": 9,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 3.7514,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 6,
                "total_progression": 22,
                "progressive_carries": 1,
                "shots_off_target": 0,
                "yellowCards": 0.3704,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 71.4,
                "shotConversion": 0.14,
                "minutesPct": 90.4,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.338,
                "bench_expected_minutes": 25.47,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.197,
                "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.1923,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 1.348,
                "squad_xg_sum": 1.1115,
                "squad_xa_sum": 1.1257,
                "team_expected_assists": 1.0784,
                "team_xa_to_xg_ratio": 0.8,
                "bench_appearance_weighted": true,
                "xg_scale": 1.2128,
                "xa_scale": 0.958,
                "opponent_lambda": 3.538,
                "scoreline_reset": true,
                "appearance_weight": 0.338
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0613,
                  "after": 0.0743
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 7 by projected rating, fifa_overall 81.0; not used by the projection)",
              "stats": {
                "expected_goals": 0.0743,
                "goal_rate": 0.0827,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0332,
                "key_pass": 0,
                "rating": 6.941,
                "minutes": 25,
                "total_pass": 10,
                "accurate_pass": 9,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 3.7514,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 6,
                "total_progression": 22,
                "progressive_carries": 1,
                "shots_off_target": 0,
                "yellowCards": 0.3704,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 71.4,
                "shotConversion": 0.14,
                "minutesPct": 90.4,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.338,
                "bench_expected_minutes": 25.47,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.197,
                "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.1923,
                "creation_factor": 0.8,
                "fifa_overall": 81.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": 560,
                "fifa_rank": 572.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.0743,
                "goal_rate": 0.0827,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0332,
                "key_pass": 0,
                "rating": 6.941,
                "minutes": 25,
                "total_pass": 10,
                "accurate_pass": 9,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 3.7514,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 6,
                "total_progression": 22,
                "progressive_carries": 1,
                "shots_off_target": 0,
                "yellowCards": 0.3704,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 71.4,
                "shotConversion": 0.14,
                "minutesPct": 90.4,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.338,
                "bench_expected_minutes": 25.47,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.197,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0242,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.1923,
                "creation_factor": 0.8,
                "fifa_overall": 81.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0242,
                "scorer_weight": 0.0299,
                "squad_weight_total": 1.3104,
                "weight_share": 0.0228,
                "finishing_factor": 1.1923,
                "appearance_weight": 0.338,
                "weight_rank": 7,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Georges Mikautadze",
                    "weight": 0.3558,
                    "already": 0,
                    "effective_weight": 0.3558,
                    "runner_up": "Alberto Moleiro",
                    "runner_up_effective_weight": 0.3304
                  }
                ]
              }
            },
            {
              "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.0743,
                "goal_rate": 0.0827,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0332,
                "key_pass": 0,
                "rating": 6.941,
                "minutes": 25,
                "total_pass": 10,
                "accurate_pass": 9,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 3.7514,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 6,
                "total_progression": 22,
                "progressive_carries": 1,
                "shots_off_target": 0,
                "yellowCards": 0.3704,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 71.4,
                "shotConversion": 0.14,
                "minutesPct": 90.4,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.338,
                "bench_expected_minutes": 25.47,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.197,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0242,
                "projected_assists": 0,
                "assist_probability": 0.011,
                "finishing_factor": 1.1923,
                "creation_factor": 0.8,
                "fifa_overall": 81.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.011,
                "provider_weight": 0.009,
                "squad_weight_total": 1.0247,
                "weight_share": 0.0088,
                "creation_factor": 0.8,
                "appearance_weight": 0.338,
                "weight_rank": 10,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Alberto Moleiro",
                    "weight": 0.2034,
                    "already": 0,
                    "effective_weight": 0.2034,
                    "runner_up": "Ilias Akhomach",
                    "runner_up_effective_weight": 0.1848,
                    "blocked_own_goal": [
                      "Georges Mikautadze"
                    ]
                  }
                ]
              }
            }
          ]
        }
      },
      "substitutes": {
        "Tani Oluwaseyi": {
          "player_id": 1172477,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 21,
          "height": 188,
          "market_value": 7500000,
          "stats": {
            "expected_goals": 0.0275,
            "goal_rate": 0.0244,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 0,
            "expected_assists": 0.0057,
            "key_pass": 0,
            "rating": 6.6857,
            "minutes": 16,
            "total_pass": 1,
            "accurate_pass": 0,
            "duels_won": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 1,
            "accurate_opp_half_passes": 0,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 2,
            "possession_lost": 0.5282,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assist_rate": 0.0,
            "assists": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "offsides": 0,
            "ball_carries": 0,
            "total_progression": 0,
            "progressive_carries": 0,
            "shots_off_target": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "minutesPct": 5.9,
            "pointsPerMatch": 0.5,
            "netGoalDifferencePer90": 0.0,
            "bench_appearance_probability": 0.723,
            "bench_expected_minutes": 15.88,
            "projected_substitution_order": 1,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.197,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0196,
            "projected_assists": 0,
            "assist_probability": 0.0041,
            "finishing_factor": 1.0234,
            "creation_factor": 0.8945,
            "fifa_overall": 71.0
          },
          "latest_10_games": [
            {
              "match_id": 16416333.0,
              "match_date": "2026-09-14",
              "home_team": "Villarreal",
              "away_team": "Real Betis",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 28,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0696,
                "expected_assists": 0.0699,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 12,
                "accurate_pass": 9,
                "key_pass": 2,
                "tackles": 3,
                "tackles_won": 2,
                "interceptions": 1,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416324.0,
              "match_date": "2026-09-05",
              "home_team": "Villarreal",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Villarreal",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 13,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.007,
                "total_shots": 0,
                "total_pass": 4,
                "accurate_pass": 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": 16416290.0,
              "match_date": "2026-08-28",
              "home_team": "Deportivo Alavés",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Villarreal",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 8,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "total_shots": 0,
                "total_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": 16416302.0,
              "match_date": "2026-08-23",
              "home_team": "Atlético Madrid",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Villarreal",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 15,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0001,
                "total_shots": 0,
                "total_pass": 2,
                "accurate_pass": 1,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 4879,
            "combined_rank_score": 2974.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 914.0,
            "sofascore_rating": 6.504,
            "sofascore_appearances": 27.0,
            "fifa_rank": 5035.0,
            "fifa_overall": 71.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 16,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.6857,
            "source_file": "data/player_rankings.csv",
            "player_name": "Tani Oluwaseyi",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Yazan Al Arab",
                  "ranking": 4874
                },
                {
                  "player_name": "Lee Chang Geun",
                  "ranking": 4875
                },
                {
                  "player_name": "Song Bum Keun",
                  "ranking": 4876
                },
                {
                  "player_name": "Renato Steffen",
                  "ranking": 4877
                },
                {
                  "player_name": "Edimilson Fernandes",
                  "ranking": 4878
                }
              ],
              "lower": [
                {
                  "player_name": "Cédric Zesiger",
                  "ranking": 4880
                },
                {
                  "player_name": "Timothé Cognat",
                  "ranking": 4881
                },
                {
                  "player_name": "Alvyn Sanches",
                  "ranking": 4882
                },
                {
                  "player_name": "Mattia Zanotti",
                  "ranking": 4883
                },
                {
                  "player_name": "Silas Andersen",
                  "ranking": 4884
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.502,
          "history_matches": 4,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "F_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "onTargetScoringAttempt",
              "shotOffTarget",
              "bigChanceMissed",
              "expectedAssists",
              "keyPass",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "touches",
              "dispossessed",
              "wasFouled",
              "topSpeed",
              "numberOfSprints",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "shot_accuracy",
              "xg_per_shot",
              "touches_p90",
              "totalShots_p90",
              "duelWon_p90",
              "ballCarriesCount_p90",
              "big_chance_conversion",
              "shot_waste_rate",
              "aerial_dominance",
              "press_resistance_fwd",
              "speed_threat",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 4,
            "data_confidence": 0.502,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 15.88,
            "bench_appearance_prob": 0.723,
            "market_value_adjustment": 0.9978,
            "fbref_prior_metrics": {
              "squad": "Villarreal",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 0.0,
              "sub_appearances": 2.0,
              "minutes_per_sub": 8.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "prior_reliability": 0.0133
            },
            "rationale": "Bench projection scaled from XGBoost F_service (4 historical appearances) to 15.9 expected mins (appearance prob 0.72); FBref playing time empirical prior: 2.0 sub appearances, 8.0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.1289,
                "goal_rate": 0.1394,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0332,
                "key_pass": 0,
                "rating": 6.6857,
                "minutes": 16,
                "total_pass": 5,
                "accurate_pass": 0,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 9,
                "possession_lost": 3.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:02:15.441175+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 325,
                    "rows": 6303
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-14",
                    "opponent": "Real Betis",
                    "minutes": 28.0,
                    "is_starting": true,
                    "weight": 0.3138,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 13.0,
                    "is_starting": false,
                    "weight": 0.2667,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Deportivo Alavés",
                    "minutes": 8.0,
                    "is_starting": false,
                    "weight": 0.2267,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Atlético Madrid",
                    "minutes": 15.0,
                    "is_starting": false,
                    "weight": 0.1927,
                    "rating": 6.6
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 0.0,
                  "onTargetScoringAttempt": 0.0,
                  "totalShots": 0.3138,
                  "minutesPlayed": 16.959,
                  "shotValueNormalized": -0.0345,
                  "accuratePass": 4.084,
                  "expectedAssists": 0.0238
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.12885881960391998,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0826
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0724
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.048
                      },
                      {
                        "name": "touches_p90",
                        "importance": 0.0379
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0352
                      }
                    ],
                    "decomposition": {
                      "base": 0.3626,
                      "items": [
                        {
                          "name": "xg_per_shot",
                          "contribution": -0.0859
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0324
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0285
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.02
                        },
                        {
                          "name": "topSpeed",
                          "contribution": -0.0097
                        }
                      ],
                      "others": -0.0572,
                      "total": 0.1289,
                      "log_link": true,
                      "margin_base": -1.014464,
                      "item_margins": [
                        {
                          "name": "xg_per_shot",
                          "margin": -0.270281
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.124731
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.124266
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.097323
                        },
                        {
                          "name": "topSpeed",
                          "margin": -0.050812
                        }
                      ],
                      "others_margin": -0.367161
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.13937106728553772,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1258
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0801
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "bigChanceMissed",
                        "importance": 0.0323
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0265
                      }
                    ],
                    "decomposition": {
                      "base": 0.2866,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0422
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0268
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0216
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0118
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0071
                        }
                      ],
                      "others": -0.0377,
                      "total": 0.1394,
                      "log_link": true,
                      "margin_base": -1.249595,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.159235
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.116102
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.104629
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.061922
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.03941
                        }
                      ],
                      "others_margin": -0.239724
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.2424454689025879,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1486
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0633
                      },
                      {
                        "name": "shot_accuracy",
                        "importance": 0.0618
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0343
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 0.5888,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.1403
                        },
                        {
                          "name": "shot_accuracy",
                          "contribution": -0.0996
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0302
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0156
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0155
                        }
                      ],
                      "others": -0.0762,
                      "total": 0.2424,
                      "log_link": true,
                      "margin_base": -0.52966,
                      "item_margins": [
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.272221
                        },
                        {
                          "name": "shot_accuracy",
                          "margin": -0.251117
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.090453
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.050304
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.049941
                        }
                      ],
                      "others_margin": -0.273164
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.7819937467575073,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.1122
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0872
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0825
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.074
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0566
                      }
                    ],
                    "decomposition": {
                      "base": 1.4352,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.2715
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.1153
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0563
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0393
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0348
                        }
                      ],
                      "others": -0.2056,
                      "total": 0.782,
                      "log_link": false,
                      "margin_base": 1.435195,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.271499
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.115287
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.056308
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.039295
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.034755
                        }
                      ],
                      "others_margin": -0.205567
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.03324733301997185,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.1197
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0571
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0459
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0451
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0369
                      }
                    ],
                    "decomposition": {
                      "base": 0.06,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0162
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0064
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": 0.0028
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0019
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0018
                        }
                      ],
                      "others": -0.0071,
                      "total": 0.0332,
                      "log_link": true,
                      "margin_base": -2.812623,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": -0.313513
                        },
                        {
                          "name": "totalPass",
                          "margin": -0.15748
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": 0.071999
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.045514
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.044856
                        }
                      ],
                      "others_margin": -0.192822
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.48383134603500366,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "accuratePass",
                        "importance": 0.1105
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0916
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0476
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0444
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0409
                      }
                    ],
                    "decomposition": {
                      "base": 0.6782,
                      "items": [
                        {
                          "name": "keyPass",
                          "contribution": -0.1645
                        },
                        {
                          "name": "aerial_dominance",
                          "contribution": 0.0738
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0395
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.039
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0294
                        }
                      ],
                      "others": -0.0738,
                      "total": 0.4838,
                      "log_link": true,
                      "margin_base": -0.388283,
                      "item_margins": [
                        {
                          "name": "keyPass",
                          "margin": -0.27772
                        },
                        {
                          "name": "aerial_dominance",
                          "margin": 0.134181
                        },
                        {
                          "name": "is_starting_11",
                          "margin": -0.06953
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.068822
                        },
                        {
                          "name": "totalPass",
                          "margin": -0.051443
                        }
                      ],
                      "others_margin": -0.142046
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.68571662902832,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0847
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0724
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0628
                      },
                      {
                        "name": "dispossessed",
                        "importance": 0.0551
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0438
                      }
                    ],
                    "decomposition": {
                      "base": 6.815,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0372
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.026
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0176
                        },
                        {
                          "name": "shot_accuracy",
                          "contribution": -0.0118
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0101
                        }
                      ],
                      "others": -0.0618,
                      "total": 6.6857,
                      "log_link": false,
                      "margin_base": 6.814961,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.03717
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.026043
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.017633
                        },
                        {
                          "name": "shot_accuracy",
                          "margin": -0.01183
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.01006
                        }
                      ],
                      "others_margin": -0.061774
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9978, quality 0.493)",
              "stats": {
                "expected_goals": 0.1286,
                "goal_rate": 0.1391,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0332,
                "key_pass": 0,
                "rating": 6.6857,
                "minutes": 16,
                "total_pass": 5,
                "accurate_pass": 0,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 9,
                "possession_lost": 2.9934,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 7500000,
                "quality_factor": 0.4927,
                "boost_factor": 0.9978
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0048)",
              "stats": {
                "expected_goals": 0.1286,
                "goal_rate": 0.1384,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0332,
                "key_pass": 0,
                "rating": 6.6857,
                "minutes": 16,
                "total_pass": 5,
                "accurate_pass": 0,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 9,
                "possession_lost": 2.9934,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 5.9,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": -5.63
              },
              "params": {
                "blend_weight": 0.0048,
                "history_matches": 4,
                "prior_reliability": 0.0133,
                "competition": "La Liga",
                "squad": "Villarreal"
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 15.9 expected minutes (appearance prob 0.72)",
              "stats": {
                "expected_goals": 0.0227,
                "goal_rate": 0.0244,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0059,
                "key_pass": 0,
                "rating": 6.6857,
                "minutes": 16,
                "total_pass": 1,
                "accurate_pass": 0,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 1,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 2,
                "possession_lost": 0.5282,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 5.9,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.723,
                "bench_expected_minutes": 15.88
              },
              "params": {
                "expected_minutes": 15.88,
                "appearance_probability": 0.723
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0227,
                "goal_rate": 0.0244,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0059,
                "key_pass": 0,
                "rating": 6.6857,
                "minutes": 16,
                "total_pass": 1,
                "accurate_pass": 0,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 1,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 2,
                "possession_lost": 0.5282,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 5.9,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.723,
                "bench_expected_minutes": 15.88
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.35 (squad xG sum 1.1115, xG scale 1.2128, xA scale 0.9580, team xA 1.08 = 0.80 x lambda)",
              "stats": {
                "expected_goals": 0.0275,
                "goal_rate": 0.0244,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0057,
                "key_pass": 0,
                "rating": 6.6857,
                "minutes": 16,
                "total_pass": 1,
                "accurate_pass": 0,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 1,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 2,
                "possession_lost": 0.5282,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 5.9,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.723,
                "bench_expected_minutes": 15.88,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.197,
                "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.0234,
                "creation_factor": 0.8945
              },
              "params": {
                "team_lambda": 1.348,
                "squad_xg_sum": 1.1115,
                "squad_xa_sum": 1.1257,
                "team_expected_assists": 1.0784,
                "team_xa_to_xg_ratio": 0.8,
                "bench_appearance_weighted": true,
                "xg_scale": 1.2128,
                "xa_scale": 0.958,
                "opponent_lambda": 3.538,
                "scoreline_reset": true,
                "appearance_weight": 0.723
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 16 by projected rating, fifa_overall 71.0; not used by the projection)",
              "stats": {
                "expected_goals": 0.0275,
                "goal_rate": 0.0244,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0057,
                "key_pass": 0,
                "rating": 6.6857,
                "minutes": 16,
                "total_pass": 1,
                "accurate_pass": 0,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 1,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 2,
                "possession_lost": 0.5282,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 5.9,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.723,
                "bench_expected_minutes": 15.88,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.197,
                "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.0234,
                "creation_factor": 0.8945,
                "fifa_overall": 71.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": 4879,
                "fifa_rank": 5035.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 71.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.0275,
                "goal_rate": 0.0244,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0057,
                "key_pass": 0,
                "rating": 6.6857,
                "minutes": 16,
                "total_pass": 1,
                "accurate_pass": 0,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 1,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 2,
                "possession_lost": 0.5282,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 5.9,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.723,
                "bench_expected_minutes": 15.88,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.197,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0196,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0234,
                "creation_factor": 0.8945,
                "fifa_overall": 71.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0196,
                "scorer_weight": 0.0203,
                "squad_weight_total": 1.3104,
                "weight_share": 0.0155,
                "finishing_factor": 1.0234,
                "appearance_weight": 0.723,
                "weight_rank": 8,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Georges Mikautadze",
                    "weight": 0.3558,
                    "already": 0,
                    "effective_weight": 0.3558,
                    "runner_up": "Alberto Moleiro",
                    "runner_up_effective_weight": 0.3304
                  }
                ]
              }
            },
            {
              "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.0275,
                "goal_rate": 0.0244,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0057,
                "key_pass": 0,
                "rating": 6.6857,
                "minutes": 16,
                "total_pass": 1,
                "accurate_pass": 0,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 1,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 2,
                "possession_lost": 0.5282,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 5.9,
                "pointsPerMatch": 0.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.723,
                "bench_expected_minutes": 15.88,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.197,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0196,
                "projected_assists": 0,
                "assist_probability": 0.0041,
                "finishing_factor": 1.0234,
                "creation_factor": 0.8945,
                "fifa_overall": 71.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0041,
                "provider_weight": 0.0037,
                "squad_weight_total": 1.0247,
                "weight_share": 0.0036,
                "creation_factor": 0.8945,
                "appearance_weight": 0.723,
                "weight_rank": 13,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Alberto Moleiro",
                    "weight": 0.2034,
                    "already": 0,
                    "effective_weight": 0.2034,
                    "runner_up": "Ilias Akhomach",
                    "runner_up_effective_weight": 0.1848,
                    "blocked_own_goal": [
                      "Georges Mikautadze"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Nathan-Dylan Saliba": {
          "player_id": 1093229,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 24,
          "height": 173,
          "market_value": 9200000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0128,
            "assist_rate": 0.0198,
            "assists": 0,
            "expected_goals": 0.0344,
            "goal_rate": 0.0308,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 0,
            "rating": 6.9295,
            "minutes": 22,
            "total_pass": 12,
            "accurate_pass": 11,
            "duels_won": 1,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "total_own_half_passes": 4,
            "accurate_own_half_passes": 4,
            "total_opp_half_passes": 7,
            "accurate_opp_half_passes": 7,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 15,
            "possession_lost": 1.8011,
            "dispossessed": 0.0,
            "duels_lost": 1,
            "aerial_won": 0,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 4,
            "total_progression": 12,
            "progressive_carries": 0,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.512,
            "bench_expected_minutes": 22.27,
            "projected_substitution_order": 2,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.197,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0173,
            "projected_assists": 0,
            "assist_probability": 0.0065,
            "finishing_factor": 1.0306,
            "creation_factor": 1.1009,
            "fifa_overall": 71.0
          },
          "latest_10_games": [
            {
              "match_id": 16416294.0,
              "match_date": "2026-09-20",
              "home_team": "Villarreal",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1143,
                "expected_assists": 0.0184,
                "total_shots": 3,
                "shots_off_target": 1,
                "total_pass": 39,
                "accurate_pass": 36,
                "tackles": 5,
                "tackles_won": 2,
                "interceptions": 3,
                "aerial_won": 1,
                "duels_won": 7,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416338.0,
              "match_date": "2026-09-17",
              "home_team": "Málaga CF",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 80,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0195,
                "total_shots": 0,
                "total_pass": 42,
                "accurate_pass": 38,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "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": 16416333.0,
              "match_date": "2026-09-14",
              "home_team": "Villarreal",
              "away_team": "Real Betis",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 36,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0253,
                "total_shots": 0,
                "total_pass": 37,
                "accurate_pass": 32,
                "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": 16416324.0,
              "match_date": "2026-09-05",
              "home_team": "Villarreal",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 90,
                "rating": 7.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1151,
                "expected_assists": 0.1364,
                "total_shots": 1,
                "total_pass": 73,
                "accurate_pass": 67,
                "key_pass": 1,
                "tackles": 5,
                "tackles_won": 3,
                "interceptions": 3,
                "clearances": 3,
                "aerial_won": 3,
                "duels_won": 10,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 4406,
            "combined_rank_score": 2430.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 4706.0,
            "fifa_overall": 71.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 9,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.9295,
            "source_file": "data/player_rankings.csv",
            "player_name": "Nathan-Dylan Saliba",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Francés",
                  "ranking": 4401
                },
                {
                  "player_name": "Florin Tănase",
                  "ranking": 4402
                },
                {
                  "player_name": "Víctor García",
                  "ranking": 4403
                },
                {
                  "player_name": "Kings Kangwa",
                  "ranking": 4404
                },
                {
                  "player_name": "Soualiho Meïté",
                  "ranking": 4405
                }
              ],
              "lower": [
                {
                  "player_name": "Luca Koleosho",
                  "ranking": 4407
                },
                {
                  "player_name": "Anastasios Bakasetas",
                  "ranking": 4408
                },
                {
                  "player_name": "Rick van Drongelen",
                  "ranking": 4409
                },
                {
                  "player_name": "Rodrigo Echeverría",
                  "ranking": 4410
                },
                {
                  "player_name": "Romaine Mundle",
                  "ranking": 4411
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.5,
          "history_matches": 4,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 4,
            "data_confidence": 0.5,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 22.271536137511767,
            "bench_appearance_prob": 0.5123425517050804,
            "market_value_adjustment": 1.0039,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost M_service (4 historical appearances) to 22.3 expected mins (appearance prob 0.51)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0539,
                "assist_rate": 0.0798,
                "assists": 0,
                "expected_goals": 0.1143,
                "goal_rate": 0.124,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.9295,
                "minutes": 74,
                "total_pass": 48,
                "accurate_pass": 43,
                "duels_won": 6,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 17,
                "total_opp_half_passes": 30,
                "accurate_opp_half_passes": 26,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 61,
                "possession_lost": 7.25,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 2,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 48,
                "progressive_carries": 1,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 6,
                  "trained_at": "2026-09-29T10:02:07.046807+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 550,
                    "rows": 13779
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Levante UD",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3138,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Málaga CF",
                    "minutes": 80.0,
                    "is_starting": true,
                    "weight": 0.2667,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-09-14",
                    "opponent": "Real Betis",
                    "minutes": 36.0,
                    "is_starting": true,
                    "weight": 0.2267,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1927,
                    "rating": 7.7
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 0.0,
                  "totalShots": 1.1342,
                  "expectedAssists": 0.043,
                  "creative_index": 0.1029,
                  "creative_efficiency": 0.0263,
                  "shotValueNormalized": -0.0772,
                  "dribbleValueNormalized": 0.0979
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.6921706795692444,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.12
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0959
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0798
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0429
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0425
                      }
                    ],
                    "decomposition": {
                      "base": 0.9267,
                      "items": [
                        {
                          "name": "creative_index",
                          "contribution": -0.1204
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.0943
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0387
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0267
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0238
                        }
                      ],
                      "others": -0.0556,
                      "total": 0.6922,
                      "log_link": true,
                      "margin_base": -0.076148,
                      "item_margins": [
                        {
                          "name": "creative_index",
                          "margin": -0.139125
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.124428
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.052992
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.036281
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.032379
                        }
                      ],
                      "others_margin": -0.077311
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.053878892213106155,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.118
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0768
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0579
                      },
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0397
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0318
                      }
                    ],
                    "decomposition": {
                      "base": 0.0872,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0173
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0082
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0033
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0026
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": -0.0024
                        }
                      ],
                      "others": 0.0005,
                      "total": 0.0539,
                      "log_link": true,
                      "margin_base": -2.439192,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": -0.221405
                        },
                        {
                          "name": "cross_creative_contribution",
                          "margin": -0.12499
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.054778
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.044859
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": -0.043209
                        }
                      ],
                      "others_margin": 0.007416
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.07981563359498978,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0669
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0574
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0465
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0404
                      },
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0277
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0127
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.004
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0021
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0018
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": -0.0018
                        }
                      ],
                      "others": -0.0083,
                      "total": 0.0798,
                      "log_link": true,
                      "margin_base": -2.463441,
                      "item_margins": [
                        {
                          "name": "creative_efficiency",
                          "margin": 0.139398
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.042232
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.022222
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.019696
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": -0.019666
                        }
                      ],
                      "others_margin": -0.100177
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.11430300772190094,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.082
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0374
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0365
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.035
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0344
                      }
                    ],
                    "decomposition": {
                      "base": 0.1826,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0144
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": -0.008
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0057
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.0051
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": -0.0043
                        }
                      ],
                      "others": -0.0308,
                      "total": 0.1143,
                      "log_link": true,
                      "margin_base": -1.700309,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.081885
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": -0.048467
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": -0.036139
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.033748
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": -0.029429
                        }
                      ],
                      "others_margin": -0.238924
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.12396681308746338,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0879
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0676
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0367
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.031
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0294
                      }
                    ],
                    "decomposition": {
                      "base": 0.1479,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0543
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0328
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0076
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": -0.0069
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0065
                        }
                      ],
                      "others": -0.0244,
                      "total": 0.124,
                      "log_link": true,
                      "margin_base": -1.911166,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.312691
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.176746
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.045963
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "margin": -0.04362
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": -0.042955
                        }
                      ],
                      "others_margin": -0.179982
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.3077886998653412,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1114
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0574
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0383
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0333
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.033
                      }
                    ],
                    "decomposition": {
                      "base": 0.3374,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0249
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0209
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0186
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0148
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": -0.0093
                        }
                      ],
                      "others": -0.0281,
                      "total": 0.3078,
                      "log_link": true,
                      "margin_base": -1.086396,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.071271
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": -0.059418
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": 0.052909
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.041995
                        },
                        {
                          "name": "ballRecovery_p90",
                          "margin": -0.027277
                        }
                      ],
                      "others_margin": -0.087436
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.8437253832817078,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1236
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0751
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0663
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0364
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 1.0381,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0808
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0313
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0274
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0241
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0225
                        }
                      ],
                      "others": -0.0533,
                      "total": 0.8437,
                      "log_link": false,
                      "margin_base": 1.038069,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.080818
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.031262
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.027444
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": -0.024068
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": 0.022525
                        }
                      ],
                      "others_margin": -0.053276
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.929502010345459,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0666
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "touches",
                        "importance": 0.041
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0305
                      }
                    ],
                    "decomposition": {
                      "base": 6.8598,
                      "items": [
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.027
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0243
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": 0.0174
                        },
                        {
                          "name": "touches",
                          "contribution": 0.0143
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0138
                        }
                      ],
                      "others": 0.0005,
                      "total": 6.9295,
                      "log_link": false,
                      "margin_base": 6.859756,
                      "item_margins": [
                        {
                          "name": "defensiveValueNormalized",
                          "margin": 0.026974
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.024319
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "margin": 0.017417
                        },
                        {
                          "name": "touches",
                          "margin": 0.014318
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.013842
                        }
                      ],
                      "others_margin": 0.00056
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0039, quality 0.513)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0541,
                "assist_rate": 0.0801,
                "assists": 0,
                "expected_goals": 0.1147,
                "goal_rate": 0.1245,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.9295,
                "minutes": 74,
                "total_pass": 48,
                "accurate_pass": 43,
                "duels_won": 6,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 17,
                "total_opp_half_passes": 30,
                "accurate_opp_half_passes": 26,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 61,
                "possession_lost": 7.2783,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 2,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 48,
                "progressive_carries": 1,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 9200000,
                "quality_factor": 0.513,
                "boost_factor": 1.0039
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 22.3 expected minutes (appearance prob 0.51)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0134,
                "assist_rate": 0.0198,
                "assists": 0,
                "expected_goals": 0.0284,
                "goal_rate": 0.0308,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.9295,
                "minutes": 22,
                "total_pass": 12,
                "accurate_pass": 11,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 7,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 1.8011,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 12,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.512,
                "bench_expected_minutes": 22.27
              },
              "params": {
                "expected_minutes": 22.27,
                "appearance_probability": 0.512
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0134,
                "assist_rate": 0.0198,
                "assists": 0,
                "expected_goals": 0.0284,
                "goal_rate": 0.0308,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.9295,
                "minutes": 22,
                "total_pass": 12,
                "accurate_pass": 11,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 7,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 1.8011,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 12,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.512,
                "bench_expected_minutes": 22.27
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.35 (squad xG sum 1.1115, xG scale 1.2128, xA scale 0.9580, team xA 1.08 = 0.80 x lambda)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0128,
                "assist_rate": 0.0198,
                "assists": 0,
                "expected_goals": 0.0344,
                "goal_rate": 0.0308,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.9295,
                "minutes": 22,
                "total_pass": 12,
                "accurate_pass": 11,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 7,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 1.8011,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 12,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.512,
                "bench_expected_minutes": 22.27,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.197,
                "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.0306,
                "creation_factor": 1.1009
              },
              "params": {
                "team_lambda": 1.348,
                "squad_xg_sum": 1.1115,
                "squad_xa_sum": 1.1257,
                "team_expected_assists": 1.0784,
                "team_xa_to_xg_ratio": 0.8,
                "bench_appearance_weighted": true,
                "xg_scale": 1.2128,
                "xa_scale": 0.958,
                "opponent_lambda": 3.538,
                "scoreline_reset": true,
                "appearance_weight": 0.512
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0284,
                  "after": 0.0344
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 9 by projected rating, fifa_overall 71.0; not used by the projection)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0128,
                "assist_rate": 0.0198,
                "assists": 0,
                "expected_goals": 0.0344,
                "goal_rate": 0.0308,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.9295,
                "minutes": 22,
                "total_pass": 12,
                "accurate_pass": 11,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 7,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 1.8011,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 12,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.512,
                "bench_expected_minutes": 22.27,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.197,
                "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.0306,
                "creation_factor": 1.1009,
                "fifa_overall": 71.0
              },
              "params": {
                "match_squad_rank": 9,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 4406,
                "fifa_rank": 4706.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 71.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,
                "expected_assists": 0.0128,
                "assist_rate": 0.0198,
                "assists": 0,
                "expected_goals": 0.0344,
                "goal_rate": 0.0308,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.9295,
                "minutes": 22,
                "total_pass": 12,
                "accurate_pass": 11,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 7,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 1.8011,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 12,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.512,
                "bench_expected_minutes": 22.27,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.197,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0173,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0306,
                "creation_factor": 1.1009,
                "fifa_overall": 71.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0173,
                "scorer_weight": 0.0182,
                "squad_weight_total": 1.3104,
                "weight_share": 0.0139,
                "finishing_factor": 1.0306,
                "appearance_weight": 0.512,
                "weight_rank": 9,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Georges Mikautadze",
                    "weight": 0.3558,
                    "already": 0,
                    "effective_weight": 0.3558,
                    "runner_up": "Alberto Moleiro",
                    "runner_up_effective_weight": 0.3304
                  }
                ]
              }
            },
            {
              "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,
                "expected_assists": 0.0128,
                "assist_rate": 0.0198,
                "assists": 0,
                "expected_goals": 0.0344,
                "goal_rate": 0.0308,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.9295,
                "minutes": 22,
                "total_pass": 12,
                "accurate_pass": 11,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 7,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 1.8011,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 12,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.512,
                "bench_expected_minutes": 22.27,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.197,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0173,
                "projected_assists": 0,
                "assist_probability": 0.0065,
                "finishing_factor": 1.0306,
                "creation_factor": 1.1009,
                "fifa_overall": 71.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0065,
                "provider_weight": 0.0072,
                "squad_weight_total": 1.0247,
                "weight_share": 0.007,
                "creation_factor": 1.1009,
                "appearance_weight": 0.512,
                "weight_rank": 12,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Alberto Moleiro",
                    "weight": 0.2034,
                    "already": 0,
                    "effective_weight": 0.2034,
                    "runner_up": "Ilias Akhomach",
                    "runner_up_effective_weight": 0.1848,
                    "blocked_own_goal": [
                      "Georges Mikautadze"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "Nicolas Pépé": {
          "player_id": 593526,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 19,
          "height": 183,
          "market_value": 6600000,
          "stats": {
            "expected_goals": 0.0743,
            "goal_rate": 0.0827,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 0,
            "expected_assists": 0.0332,
            "key_pass": 0,
            "rating": 6.941,
            "minutes": 25,
            "total_pass": 10,
            "accurate_pass": 9,
            "duels_won": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 9,
            "accurate_opp_half_passes": 8,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 16,
            "possession_lost": 3.7514,
            "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,
            "assist_rate": 0.0,
            "assists": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "offsides": 0,
            "ball_carries": 6,
            "total_progression": 22,
            "progressive_carries": 1,
            "shots_off_target": 0,
            "yellowCards": 0.3704,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 71.4,
            "shotConversion": 0.14,
            "minutesPct": 90.4,
            "pointsPerMatch": 0.67,
            "netGoalDifferencePer90": 0.0,
            "bench_appearance_probability": 0.338,
            "bench_expected_minutes": 25.47,
            "projected_substitution_order": 3,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 3,
            "projected_substitution_expected_count": 2.197,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0242,
            "projected_assists": 0,
            "assist_probability": 0.011,
            "finishing_factor": 1.1923,
            "creation_factor": 0.8,
            "fifa_overall": 81.0
          },
          "latest_10_games": [
            {
              "match_id": 16416294.0,
              "match_date": "2026-09-20",
              "home_team": "Villarreal",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 11,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0016,
                "total_shots": 0,
                "total_pass": 5,
                "accurate_pass": 4,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_type": "played",
              "match_id": "16416338.0",
              "match_date": "2026-09-17 19:30:00 UTC",
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27",
              "home_team": "Málaga",
              "away_team": "Villarreal",
              "home_score_current": 1.0,
              "away_score_current": 3.0,
              "team_side": "away",
              "status_code": "100",
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": "True",
              "team": "Villarreal",
              "opponent": "Málaga",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16416333.0,
              "match_date": "2026-09-14",
              "home_team": "Villarreal",
              "away_team": "Real Betis",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 76,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1115,
                "expected_assists": 0.0621,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 35,
                "accurate_pass": 27,
                "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": 16416324.0,
              "match_date": "2026-09-05",
              "home_team": "Villarreal",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Villarreal",
              "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.2768,
                "expected_assists": 0.2635,
                "total_shots": 5,
                "shots_on_target": 1,
                "shots_off_target": 2,
                "total_pass": 62,
                "accurate_pass": 55,
                "key_pass": 4,
                "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": 16416290.0,
              "match_date": "2026-08-28",
              "home_team": "Deportivo Alavés",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.2524,
                "expected_assists": 0.4359,
                "total_shots": 3,
                "shots_on_target": 2,
                "total_pass": 49,
                "accurate_pass": 42,
                "key_pass": 4,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 6,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416302.0,
              "match_date": "2026-08-23",
              "home_team": "Atlético Madrid",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Atlético Madrid",
              "stats": {
                "minutes": 79,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1005,
                "expected_assists": 0.2611,
                "total_shots": 2,
                "shots_on_target": 1,
                "total_pass": 31,
                "accurate_pass": 30,
                "key_pass": 1,
                "interceptions": 1,
                "clearances": 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": 16421061.0,
              "match_date": "2026-08-16",
              "home_team": "Real Racing Club",
              "away_team": "Villarreal",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Villarreal",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 77,
                "rating": 7.8,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0802,
                "expected_assists": 0.232,
                "total_shots": 2,
                "shots_on_target": 2,
                "total_pass": 38,
                "accurate_pass": 33,
                "tackles": 1,
                "tackles_won": 1,
                "aerial_won": 1,
                "duels_won": 7,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 560,
            "combined_rank_score": 308.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 44.0,
            "sofascore_rating": 7.8,
            "sofascore_appearances": 1.0,
            "fifa_rank": 572.0,
            "fifa_overall": 81.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 7,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.941,
            "source_file": "data/player_rankings.csv",
            "player_name": "Nicolas Pépé",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Joseph Otunenche",
                  "ranking": 555
                },
                {
                  "player_name": "Dean Huijsen",
                  "ranking": 556
                },
                {
                  "player_name": "Jarrod Bowen",
                  "ranking": 557
                },
                {
                  "player_name": "Ivan Alonso Martin",
                  "ranking": 558
                },
                {
                  "player_name": "Marco Román",
                  "ranking": 559
                }
              ],
              "lower": [
                {
                  "player_name": "Javi Navarro",
                  "ranking": 561
                },
                {
                  "player_name": "Jordi Pesquer",
                  "ranking": 562
                },
                {
                  "player_name": "Diego Lacosta",
                  "ranking": 563
                },
                {
                  "player_name": "Luca Williams-Barnett",
                  "ranking": 564
                },
                {
                  "player_name": "Tynan Thompson",
                  "ranking": 565
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.652,
          "history_matches": 6,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "F_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "onTargetScoringAttempt",
              "shotOffTarget",
              "bigChanceMissed",
              "expectedAssists",
              "keyPass",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "touches",
              "dispossessed",
              "wasFouled",
              "topSpeed",
              "numberOfSprints",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "shot_accuracy",
              "xg_per_shot",
              "touches_p90",
              "totalShots_p90",
              "duelWon_p90",
              "ballCarriesCount_p90",
              "big_chance_conversion",
              "shot_waste_rate",
              "aerial_dominance",
              "press_resistance_fwd",
              "speed_threat",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 6,
            "data_confidence": 0.652,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 25.467767132293673,
            "bench_appearance_prob": 0.338,
            "market_value_adjustment": 0.9945,
            "fbref_prior_metrics": {
              "squad": "Villarreal",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "sub_appearances": 0.0,
              "goals_per90": 0.3703703703703703,
              "assists_per90": 0.0,
              "prior_reliability": 0.18
            },
            "rationale": "Bench projection scaled from XGBoost F_service (6 historical appearances) to 25.5 expected mins (appearance prob 0.34); FBref playing time empirical prior: 0.0 sub appearances, 0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.2178,
                "goal_rate": 0.2894,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.1233,
                "key_pass": 1,
                "rating": 6.941,
                "minutes": 70,
                "total_pass": 37,
                "accurate_pass": 32,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 32,
                "accurate_opp_half_passes": 28,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "possession_lost": 13.33,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 20,
                "total_progression": 77,
                "progressive_carries": 4,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:02:15.441175+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 325,
                    "rows": 6303
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Levante UD",
                    "minutes": 11.0,
                    "is_starting": true,
                    "weight": 0.2408,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-14",
                    "opponent": "Real Betis",
                    "minutes": 76.0,
                    "is_starting": true,
                    "weight": 0.2047,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.174,
                    "rating": 7.8
                  },
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Deportivo Alavés",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1479,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Atlético Madrid",
                    "minutes": 79.0,
                    "is_starting": true,
                    "weight": 0.1257,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-08-16",
                    "opponent": "Real Racing Club",
                    "minutes": 77.0,
                    "is_starting": true,
                    "weight": 0.1069,
                    "rating": 7.8
                  }
                ],
                "feature_row": {
                  "history_matches": 6.0,
                  "is_starting_11": 0.0,
                  "onTargetScoringAttempt": 1.0139,
                  "totalShots": 2.1882,
                  "minutesPlayed": 65.3367,
                  "shotValueNormalized": 0.1941,
                  "accuratePass": 29.5697,
                  "expectedAssists": 0.181
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.21781174838542938,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0826
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0724
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.048
                      },
                      {
                        "name": "touches_p90",
                        "importance": 0.0379
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0352
                      }
                    ],
                    "decomposition": {
                      "base": 0.3626,
                      "items": [
                        {
                          "name": "xg_per_shot",
                          "contribution": -0.0852
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0178
                        },
                        {
                          "name": "topSpeed",
                          "contribution": -0.0157
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0092
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0093
                        }
                      ],
                      "others": -0.0446,
                      "total": 0.2178,
                      "log_link": true,
                      "margin_base": -1.014464,
                      "item_margins": [
                        {
                          "name": "xg_per_shot",
                          "margin": -0.267774
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.066379
                        },
                        {
                          "name": "topSpeed",
                          "margin": -0.062212
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.037077
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": 0.036266
                        }
                      ],
                      "others_margin": -0.186638
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.2893947660923004,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1258
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0801
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "bigChanceMissed",
                        "importance": 0.0323
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0265
                      }
                    ],
                    "decomposition": {
                      "base": 0.2866,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0277
                        },
                        {
                          "name": "big_chance_conversion",
                          "contribution": 0.0217
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": 0.0197
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0194
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0202
                        }
                      ],
                      "others": -0.0505,
                      "total": 0.2894,
                      "log_link": true,
                      "margin_base": -1.249595,
                      "item_margins": [
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.101486
                        },
                        {
                          "name": "big_chance_conversion",
                          "margin": 0.080354
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": 0.067709
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.062601
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.061371
                        }
                      ],
                      "others_margin": -0.160918
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.5725125670433044,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1486
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0633
                      },
                      {
                        "name": "shot_accuracy",
                        "importance": 0.0618
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0343
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 0.5888,
                      "items": [
                        {
                          "name": "shot_accuracy",
                          "contribution": 0.0878
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0495
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0245
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0232
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": -0.0209
                        }
                      ],
                      "others": 0.014,
                      "total": 0.5725,
                      "log_link": true,
                      "margin_base": -0.52966,
                      "item_margins": [
                        {
                          "name": "shot_accuracy",
                          "margin": 0.139019
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.075923
                        },
                        {
                          "name": "is_starting_11",
                          "margin": -0.039813
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.039224
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": -0.036664
                        }
                      ],
                      "others_margin": 0.024546
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.5355446338653564,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.1122
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0872
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0825
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.074
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0566
                      }
                    ],
                    "decomposition": {
                      "base": 1.4352,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.1594
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0724
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": 0.0538
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0507
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0499
                        }
                      ],
                      "others": 0.0601,
                      "total": 1.5355,
                      "log_link": false,
                      "margin_base": 1.435195,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.159421
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.072366
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": 0.053847
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.050722
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.049856
                        }
                      ],
                      "others_margin": 0.060026
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.12326037883758545,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.1197
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0571
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0459
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0451
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0369
                      }
                    ],
                    "decomposition": {
                      "base": 0.06,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0295
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0088
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0071
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0071
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.0066
                        }
                      ],
                      "others": 0.0042,
                      "total": 0.1233,
                      "log_link": true,
                      "margin_base": -2.812623,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": 0.400137
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.093745
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.069557
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": 0.065407
                        },
                        {
                          "name": "totalPass",
                          "margin": 0.056963
                        }
                      ],
                      "others_margin": 0.033359
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 1.1962103843688965,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "accuratePass",
                        "importance": 0.1105
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0916
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0476
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0444
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0409
                      }
                    ],
                    "decomposition": {
                      "base": 0.6782,
                      "items": [
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.1446
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.1391
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1019
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.076
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.0638
                        }
                      ],
                      "others": 0.1964,
                      "total": 1.1962,
                      "log_link": true,
                      "margin_base": -0.388283,
                      "item_margins": [
                        {
                          "name": "ballCarriesCount",
                          "margin": 0.193271
                        },
                        {
                          "name": "keyPass",
                          "margin": 0.156222
                        },
                        {
                          "name": "is_starting_11",
                          "margin": -0.111985
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.084658
                        },
                        {
                          "name": "totalPass",
                          "margin": 0.065901
                        }
                      ],
                      "others_margin": 0.179374
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.940967559814453,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0847
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0724
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0628
                      },
                      {
                        "name": "dispossessed",
                        "importance": 0.0551
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0438
                      }
                    ],
                    "decomposition": {
                      "base": 6.815,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0418
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0372
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": 0.0331
                        },
                        {
                          "name": "totalProgression",
                          "contribution": 0.0181
                        },
                        {
                          "name": "big_chance_conversion",
                          "contribution": 0.0181
                        }
                      ],
                      "others": 0.0521,
                      "total": 6.941,
                      "log_link": false,
                      "margin_base": 6.814961,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": 0.04178
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.03724
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": 0.033065
                        },
                        {
                          "name": "totalProgression",
                          "margin": 0.018135
                        },
                        {
                          "name": "big_chance_conversion",
                          "margin": 0.018053
                        }
                      ],
                      "others_margin": 0.052213
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9945, quality 0.482)",
              "stats": {
                "expected_goals": 0.2166,
                "goal_rate": 0.2878,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.1226,
                "key_pass": 1,
                "rating": 6.941,
                "minutes": 70,
                "total_pass": 36,
                "accurate_pass": 32,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 32,
                "accurate_opp_half_passes": 28,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "possession_lost": 13.2571,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 20,
                "total_progression": 76,
                "progressive_carries": 4,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 6600000,
                "quality_factor": 0.4818,
                "boost_factor": 0.9945
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0532)",
              "stats": {
                "expected_goals": 0.2166,
                "goal_rate": 0.2922,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.1226,
                "key_pass": 1,
                "rating": 6.941,
                "minutes": 70,
                "total_pass": 36,
                "accurate_pass": 32,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 32,
                "accurate_opp_half_passes": 28,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "possession_lost": 13.2571,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 20,
                "total_progression": 76,
                "progressive_carries": 4,
                "shots_off_target": 1,
                "yellowCards": 0.3704,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 71.4,
                "shotConversion": 0.14,
                "minutesPct": 90.4,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "blend_weight": 0.0532,
                "history_matches": 6,
                "prior_reliability": 0.18,
                "competition": "La Liga",
                "squad": "Villarreal"
              },
              "changes": [
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.1773
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0788
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.5694,
                  "after": 0.637
                },
                {
                  "stat": "totalShots",
                  "before": 1.5271,
                  "after": 1.5831
                },
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0394
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.0,
                  "after": 0.0197
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 25.5 expected minutes (appearance prob 0.34)",
              "stats": {
                "expected_goals": 0.0613,
                "goal_rate": 0.0827,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0347,
                "key_pass": 0,
                "rating": 6.941,
                "minutes": 25,
                "total_pass": 10,
                "accurate_pass": 9,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 3.7514,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 6,
                "total_progression": 22,
                "progressive_carries": 1,
                "shots_off_target": 0,
                "yellowCards": 0.3704,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 71.4,
                "shotConversion": 0.14,
                "minutesPct": 90.4,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.338,
                "bench_expected_minutes": 25.47
              },
              "params": {
                "expected_minutes": 25.47,
                "appearance_probability": 0.338
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0613,
                "goal_rate": 0.0827,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0347,
                "key_pass": 0,
                "rating": 6.941,
                "minutes": 25,
                "total_pass": 10,
                "accurate_pass": 9,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 3.7514,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 6,
                "total_progression": 22,
                "progressive_carries": 1,
                "shots_off_target": 0,
                "yellowCards": 0.3704,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 71.4,
                "shotConversion": 0.14,
                "minutesPct": 90.4,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.338,
                "bench_expected_minutes": 25.47
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": true
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.35 (squad xG sum 1.1115, xG scale 1.2128, xA scale 0.9580, team xA 1.08 = 0.80 x lambda)",
              "stats": {
                "expected_goals": 0.0743,
                "goal_rate": 0.0827,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0332,
                "key_pass": 0,
                "rating": 6.941,
                "minutes": 25,
                "total_pass": 10,
                "accurate_pass": 9,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 3.7514,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 6,
                "total_progression": 22,
                "progressive_carries": 1,
                "shots_off_target": 0,
                "yellowCards": 0.3704,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 71.4,
                "shotConversion": 0.14,
                "minutesPct": 90.4,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.338,
                "bench_expected_minutes": 25.47,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.197,
                "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.1923,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 1.348,
                "squad_xg_sum": 1.1115,
                "squad_xa_sum": 1.1257,
                "team_expected_assists": 1.0784,
                "team_xa_to_xg_ratio": 0.8,
                "bench_appearance_weighted": true,
                "xg_scale": 1.2128,
                "xa_scale": 0.958,
                "opponent_lambda": 3.538,
                "scoreline_reset": true,
                "appearance_weight": 0.338
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0613,
                  "after": 0.0743
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 7 by projected rating, fifa_overall 81.0; not used by the projection)",
              "stats": {
                "expected_goals": 0.0743,
                "goal_rate": 0.0827,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0332,
                "key_pass": 0,
                "rating": 6.941,
                "minutes": 25,
                "total_pass": 10,
                "accurate_pass": 9,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 3.7514,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 6,
                "total_progression": 22,
                "progressive_carries": 1,
                "shots_off_target": 0,
                "yellowCards": 0.3704,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 71.4,
                "shotConversion": 0.14,
                "minutesPct": 90.4,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.338,
                "bench_expected_minutes": 25.47,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.197,
                "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.1923,
                "creation_factor": 0.8,
                "fifa_overall": 81.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": 560,
                "fifa_rank": 572.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.0743,
                "goal_rate": 0.0827,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0332,
                "key_pass": 0,
                "rating": 6.941,
                "minutes": 25,
                "total_pass": 10,
                "accurate_pass": 9,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 3.7514,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 6,
                "total_progression": 22,
                "progressive_carries": 1,
                "shots_off_target": 0,
                "yellowCards": 0.3704,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 71.4,
                "shotConversion": 0.14,
                "minutesPct": 90.4,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.338,
                "bench_expected_minutes": 25.47,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.197,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0242,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.1923,
                "creation_factor": 0.8,
                "fifa_overall": 81.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0242,
                "scorer_weight": 0.0299,
                "squad_weight_total": 1.3104,
                "weight_share": 0.0228,
                "finishing_factor": 1.1923,
                "appearance_weight": 0.338,
                "weight_rank": 7,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Georges Mikautadze",
                    "weight": 0.3558,
                    "already": 0,
                    "effective_weight": 0.3558,
                    "runner_up": "Alberto Moleiro",
                    "runner_up_effective_weight": 0.3304
                  }
                ]
              }
            },
            {
              "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.0743,
                "goal_rate": 0.0827,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0332,
                "key_pass": 0,
                "rating": 6.941,
                "minutes": 25,
                "total_pass": 10,
                "accurate_pass": 9,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 3.7514,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 6,
                "total_progression": 22,
                "progressive_carries": 1,
                "shots_off_target": 0,
                "yellowCards": 0.3704,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 71.4,
                "shotConversion": 0.14,
                "minutesPct": 90.4,
                "pointsPerMatch": 0.67,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.338,
                "bench_expected_minutes": 25.47,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 3,
                "projected_substitution_expected_count": 2.197,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0242,
                "projected_assists": 0,
                "assist_probability": 0.011,
                "finishing_factor": 1.1923,
                "creation_factor": 0.8,
                "fifa_overall": 81.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.011,
                "provider_weight": 0.009,
                "squad_weight_total": 1.0247,
                "weight_share": 0.0088,
                "creation_factor": 0.8,
                "appearance_weight": 0.338,
                "weight_rank": 10,
                "eligible_players": 13,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Alberto Moleiro",
                    "weight": 0.2034,
                    "already": 0,
                    "effective_weight": 0.2034,
                    "runner_up": "Ilias Akhomach",
                    "runner_up_effective_weight": 0.1848,
                    "blocked_own_goal": [
                      "Georges Mikautadze"
                    ]
                  }
                ]
              }
            }
          ]
        }
      },
      "team_totals": {
        "projected_goals": 1,
        "expected_goals": 1.35,
        "expected_assists": 1.08,
        "total_shots": 10,
        "shots_on_target": 2,
        "total_passes": 500,
        "interceptions": 4,
        "tackles": 5,
        "avg_rating": 6.86,
        "possession_estimated_pct": 48.4,
        "pressing_actions_per_90": 7.8
      }
    }
  },
  "antagonist_report": {
    "home_attacking_duels": [
      {
        "attacker": "Federico Valverde",
        "attacker_role": "LWB",
        "attacker_market_value": 87000000,
        "attacker_height": 181,
        "attacker_skill_quality": 0.887,
        "defenders": [
          "Logan Costa"
        ],
        "defender_roles": [
          "RWB"
        ],
        "def_skill_quality_avg": 0.575,
        "duel_zone": "LWB vs RWB",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.508,
        "xg_contribution": 0.1138,
        "xg_multiplier": 1.1299,
        "shots_in_zone": 1.1,
        "dribbles_attempted": 3,
        "dribbles_successful": 1.3,
        "aerial_duels": 2,
        "aerial_won": 1.1,
        "crosses_in_zone": 3.1,
        "fouls_drawn": 1.3,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Logan Costa",
            "role": "RWB",
            "market_value": 14600000,
            "tackles_attempted": 2.0,
            "tackles_won": 1.6,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 0.9,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 0.9,
            "defensive_success_rate": 0.492
          }
        ],
        "duel_analysis": "Federico Valverde (LWB) is slightly favored against Logan Costa in a direct 1v1 contest. Duel win probability: 51%. The quality gap is significant (€87M vs €15M avg). Matchup xG multiplier ×1.13 (×1.00 = his usual level). Projected xG contribution: 0.114 — creating consistent moderate threat."
      },
      {
        "attacker": "Arda Güler",
        "attacker_role": "CM",
        "attacker_market_value": 87000000,
        "attacker_height": 176,
        "attacker_skill_quality": 0.887,
        "defenders": [
          "Alberto Moleiro"
        ],
        "defender_roles": [
          "CM"
        ],
        "def_skill_quality_avg": 0.837,
        "duel_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.454,
        "xg_contribution": 0.2298,
        "xg_multiplier": 1.0497,
        "shots_in_zone": 1.7,
        "dribbles_attempted": 3,
        "dribbles_successful": 1.2,
        "aerial_duels": 2,
        "aerial_won": 0.9,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.4,
        "pressing_intensity_on_attacker": "ULTRA_HIGH",
        "defender_stats": [
          {
            "player": "Alberto Moleiro",
            "role": "CM",
            "market_value": 54000000,
            "tackles_attempted": 2.3,
            "tackles_won": 1.8,
            "fouls_committed": 0.4,
            "interceptions_in_zone": 1.3,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 1.1,
            "defensive_success_rate": 0.546
          }
        ],
        "duel_analysis": "Arda Güler (CM) is evenly matched against Alberto Moleiro in a direct 1v1 contest. Duel win probability: 45%. The quality gap is significant (€87M vs €54M avg). Matchup xG multiplier ×1.05 (×1.00 = his usual level). Projected xG contribution: 0.230 — with neither side clearly dominant."
      },
      {
        "attacker": "Jude Bellingham",
        "attacker_role": "CM",
        "attacker_market_value": 151000000,
        "attacker_height": 188,
        "attacker_skill_quality": 0.899,
        "defenders": [
          "Alberto Moleiro"
        ],
        "defender_roles": [
          "CM"
        ],
        "def_skill_quality_avg": 0.837,
        "duel_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.501,
        "xg_contribution": 0.2567,
        "xg_multiplier": 1.1194,
        "shots_in_zone": 1.8,
        "dribbles_attempted": 3,
        "dribbles_successful": 1.3,
        "aerial_duels": 2,
        "aerial_won": 1.2,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.4,
        "pressing_intensity_on_attacker": "ULTRA_HIGH",
        "defender_stats": [
          {
            "player": "Alberto Moleiro",
            "role": "CM",
            "market_value": 54000000,
            "tackles_attempted": 2.3,
            "tackles_won": 1.8,
            "fouls_committed": 0.4,
            "interceptions_in_zone": 1.3,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 0.8,
            "defensive_success_rate": 0.499
          }
        ],
        "duel_analysis": "Jude Bellingham (CM) is slightly favored against Alberto Moleiro in a direct 1v1 contest. Duel win probability: 50%. The quality gap is significant (€151M vs €54M avg). Matchup xG multiplier ×1.12 (×1.00 = his usual level). Projected xG contribution: 0.257 — creating consistent moderate threat."
      },
      {
        "attacker": "Aurélien Tchouaméni",
        "attacker_role": "RWB",
        "attacker_market_value": 73000000,
        "attacker_height": 188,
        "attacker_skill_quality": 0.875,
        "defenders": [
          "Carlos Romero"
        ],
        "defender_roles": [
          "LWB"
        ],
        "def_skill_quality_avg": 0.669,
        "duel_zone": "RWB vs LWB",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.542,
        "xg_contribution": 0.1317,
        "xg_multiplier": 1.1797,
        "shots_in_zone": 1.2,
        "dribbles_attempted": 3,
        "dribbles_successful": 1.4,
        "aerial_duels": 2,
        "aerial_won": 1.2,
        "crosses_in_zone": 3.1,
        "fouls_drawn": 1.3,
        "pressing_intensity_on_attacker": "MEDIUM",
        "defender_stats": [
          {
            "player": "Carlos Romero",
            "role": "LWB",
            "market_value": 24000000,
            "tackles_attempted": 2.1,
            "tackles_won": 1.6,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 1.1,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 0.8,
            "defensive_success_rate": 0.458
          }
        ],
        "duel_analysis": "Aurélien Tchouaméni (RWB) is slightly favored against Carlos Romero in a direct 1v1 contest. Duel win probability: 54%. The quality gap is significant (€73M vs €24M avg). Matchup xG multiplier ×1.18 (×1.00 = his usual level). Projected xG contribution: 0.132 — creating consistent moderate threat."
      },
      {
        "attacker": "Vinícius Júnior",
        "attacker_role": "SS",
        "attacker_market_value": 146000000,
        "attacker_height": 176,
        "attacker_skill_quality": 0.899,
        "defenders": [
          "Renato Veiga"
        ],
        "defender_roles": [
          "CB"
        ],
        "def_skill_quality_avg": 0.71,
        "duel_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.451,
        "xg_contribution": 0.3321,
        "xg_multiplier": 1.0008,
        "shots_in_zone": 2.5,
        "dribbles_attempted": 3,
        "dribbles_successful": 1.2,
        "aerial_duels": 2,
        "aerial_won": 0.9,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.5,
        "pressing_intensity_on_attacker": "MEDIUM",
        "defender_stats": [
          {
            "player": "Renato Veiga",
            "role": "CB",
            "market_value": 29000000,
            "tackles_attempted": 2.2,
            "tackles_won": 1.7,
            "fouls_committed": 0.4,
            "interceptions_in_zone": 1.1,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 1.1,
            "defensive_success_rate": 0.549
          }
        ],
        "duel_analysis": "Vinícius Júnior (SS) is evenly matched against Renato Veiga in a direct 1v1 contest. Duel win probability: 45%. The quality gap is significant (€146M vs €29M avg). Matchup xG multiplier ×1.00 (×1.00 = his usual level). Projected xG contribution: 0.332 — with neither side clearly dominant."
      },
      {
        "attacker": "Yan Diomande",
        "attacker_role": "SS",
        "attacker_market_value": 99000000,
        "attacker_height": 180,
        "attacker_skill_quality": 0.893,
        "defenders": [
          "Renato Veiga"
        ],
        "defender_roles": [
          "CB"
        ],
        "def_skill_quality_avg": 0.71,
        "duel_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.464,
        "xg_contribution": 0.1642,
        "xg_multiplier": 1.0201,
        "shots_in_zone": 2.5,
        "dribbles_attempted": 3,
        "dribbles_successful": 1.2,
        "aerial_duels": 2,
        "aerial_won": 1.1,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.4,
        "pressing_intensity_on_attacker": "MEDIUM",
        "defender_stats": [
          {
            "player": "Renato Veiga",
            "role": "CB",
            "market_value": 29000000,
            "tackles_attempted": 2.2,
            "tackles_won": 1.7,
            "fouls_committed": 0.4,
            "interceptions_in_zone": 1.1,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 0.9,
            "defensive_success_rate": 0.536
          }
        ],
        "duel_analysis": "Yan Diomande (SS) is evenly matched against Renato Veiga in a direct 1v1 contest. Duel win probability: 46%. The quality gap is significant (€99M vs €29M avg). Matchup xG multiplier ×1.02 (×1.00 = his usual level). Projected xG contribution: 0.164 — with neither side clearly dominant."
      },
      {
        "attacker": "Kylian Mbappé",
        "attacker_role": "ST",
        "attacker_market_value": 212000000,
        "attacker_height": 180,
        "attacker_skill_quality": 0.9,
        "defenders": [
          "Renato Veiga",
          "Santiago Mouriño"
        ],
        "defender_roles": [
          "CB",
          "CB"
        ],
        "def_skill_quality_avg": 0.668,
        "duel_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "numerical_situation": "1v2",
        "duel_win_rate": 0.245,
        "xg_contribution": 0.5297,
        "xg_multiplier": 1.066,
        "shots_in_zone": 2.3,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.4,
        "aerial_duels": 3,
        "aerial_won": 1.6,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.8,
        "pressing_intensity_on_attacker": "MEDIUM",
        "defender_stats": [
          {
            "player": "Renato Veiga",
            "role": "CB",
            "market_value": 29000000,
            "tackles_attempted": 1.1,
            "tackles_won": 1.0,
            "fouls_committed": 0.4,
            "interceptions_in_zone": 1.1,
            "clearances_in_zone": 1.0,
            "aerial_duels_won": 0.7,
            "defensive_success_rate": 0.755
          },
          {
            "player": "Santiago Mouriño",
            "role": "CB",
            "market_value": 19400000,
            "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.755
          }
        ],
        "duel_analysis": "Kylian Mbappé (ST) is slightly favored against Renato Veiga and Santiago Mouriño in a 2-defender block. Duel win probability: 24%. The quality gap is significant (€212M vs €24M avg). Matchup xG multiplier ×1.07 (×1.00 = his usual level). Projected xG contribution: 0.530 — creating consistent moderate threat."
      }
    ],
    "away_attacking_duels": [
      {
        "attacker": "Carlos Romero",
        "attacker_role": "LWB",
        "attacker_market_value": 24000000,
        "attacker_height": 174,
        "attacker_skill_quality": 0.669,
        "defenders": [
          "Aurélien Tchouaméni"
        ],
        "defender_roles": [
          "RWB"
        ],
        "def_skill_quality_avg": 0.875,
        "duel_zone": "LWB vs RWB",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.298,
        "xg_contribution": 0.0794,
        "xg_multiplier": 0.8203,
        "shots_in_zone": 0.8,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.5,
        "aerial_duels": 2,
        "aerial_won": 0.9,
        "crosses_in_zone": 2.7,
        "fouls_drawn": 1.5,
        "pressing_intensity_on_attacker": "ULTRA_HIGH",
        "defender_stats": [
          {
            "player": "Aurélien Tchouaméni",
            "role": "RWB",
            "market_value": 73000000,
            "tackles_attempted": 2.3,
            "tackles_won": 2.0,
            "fouls_committed": 0.4,
            "interceptions_in_zone": 1.4,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 1.1,
            "defensive_success_rate": 0.702
          }
        ],
        "duel_analysis": "Carlos Romero (LWB) faces tough defensive resistance against Aurélien Tchouaméni in a direct 1v1 contest. Duel win probability: 30%. The quality gap is significant (€24M vs €73M avg). Matchup xG multiplier ×0.82 (×1.00 = his usual level). Projected xG contribution: 0.079 — and is restricted in space and time on the ball."
      },
      {
        "attacker": "Logan Costa",
        "attacker_role": "RWB",
        "attacker_market_value": 14600000,
        "attacker_height": 188,
        "attacker_skill_quality": 0.575,
        "defenders": [
          "Federico Valverde"
        ],
        "defender_roles": [
          "LWB"
        ],
        "def_skill_quality_avg": 0.887,
        "duel_zone": "RWB vs LWB",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.332,
        "xg_contribution": 0.0533,
        "xg_multiplier": 0.8701,
        "shots_in_zone": 0.9,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.6,
        "aerial_duels": 2,
        "aerial_won": 1.2,
        "crosses_in_zone": 2.5,
        "fouls_drawn": 1.4,
        "pressing_intensity_on_attacker": "ULTRA_HIGH",
        "defender_stats": [
          {
            "player": "Federico Valverde",
            "role": "LWB",
            "market_value": 87000000,
            "tackles_attempted": 2.3,
            "tackles_won": 2.0,
            "fouls_committed": 0.4,
            "interceptions_in_zone": 1.4,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 0.8,
            "defensive_success_rate": 0.668
          }
        ],
        "duel_analysis": "Logan Costa (RWB) faces tough defensive resistance against Federico Valverde in a direct 1v1 contest. Duel win probability: 33%. The quality gap is significant (€15M vs €87M avg). Matchup xG multiplier ×0.87 (×1.00 = his usual level). Projected xG contribution: 0.053 — and is restricted in space and time on the ball."
      },
      {
        "attacker": "Tajon Buchanan",
        "attacker_role": "LM",
        "attacker_market_value": 13000000,
        "attacker_height": 183,
        "attacker_skill_quality": 0.557,
        "defenders": [
          "Dean Huijsen"
        ],
        "defender_roles": [
          "CB"
        ],
        "def_skill_quality_avg": 0.864,
        "duel_zone": "LM vs CB",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.23,
        "xg_contribution": 0.1253,
        "xg_multiplier": 0.7212,
        "shots_in_zone": 1.1,
        "dribbles_attempted": 3,
        "dribbles_successful": 0.6,
        "aerial_duels": 2,
        "aerial_won": 1.1,
        "crosses_in_zone": 2.3,
        "fouls_drawn": 1.5,
        "pressing_intensity_on_attacker": "ULTRA_HIGH",
        "defender_stats": [
          {
            "player": "Dean Huijsen",
            "role": "CB",
            "market_value": 66000000,
            "tackles_attempted": 2.3,
            "tackles_won": 2.1,
            "fouls_committed": 0.4,
            "interceptions_in_zone": 1.4,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 0.9,
            "defensive_success_rate": 0.77
          }
        ],
        "duel_analysis": "Tajon Buchanan (LM) is heavily outmatched defensively against Dean Huijsen in a direct 1v1 contest. Duel win probability: 23%. The quality gap is significant (€13M vs €66M avg). Matchup xG multiplier ×0.72 (×1.00 = his usual level). Projected xG contribution: 0.125 — with very limited chance creation expected."
      },
      {
        "attacker": "Alberto Moleiro",
        "attacker_role": "CM",
        "attacker_market_value": 54000000,
        "attacker_height": 172,
        "attacker_skill_quality": 0.837,
        "defenders": [
          "Arda Güler"
        ],
        "defender_roles": [
          "CM"
        ],
        "def_skill_quality_avg": 0.887,
        "duel_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.386,
        "xg_contribution": 0.2179,
        "xg_multiplier": 0.9503,
        "shots_in_zone": 1.5,
        "dribbles_attempted": 3,
        "dribbles_successful": 1.0,
        "aerial_duels": 2,
        "aerial_won": 0.8,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.5,
        "pressing_intensity_on_attacker": "ULTRA_HIGH",
        "defender_stats": [
          {
            "player": "Arda Güler",
            "role": "CM",
            "market_value": 87000000,
            "tackles_attempted": 2.3,
            "tackles_won": 1.9,
            "fouls_committed": 0.4,
            "interceptions_in_zone": 1.4,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 1.1,
            "defensive_success_rate": 0.614
          }
        ],
        "duel_analysis": "Alberto Moleiro (CM) is evenly matched against Arda Güler in a direct 1v1 contest. Duel win probability: 39%. The quality gap is significant (€54M vs €87M avg). Matchup xG multiplier ×0.95 (×1.00 = his usual level). Projected xG contribution: 0.218 — with neither side clearly dominant."
      },
      {
        "attacker": "Pape Gueye",
        "attacker_role": "CM",
        "attacker_market_value": 39000000,
        "attacker_height": 187,
        "attacker_skill_quality": 0.775,
        "defenders": [
          "Arda Güler"
        ],
        "defender_roles": [
          "CM"
        ],
        "def_skill_quality_avg": 0.887,
        "duel_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.421,
        "xg_contribution": 0.1924,
        "xg_multiplier": 1.0019,
        "shots_in_zone": 1.6,
        "dribbles_attempted": 3,
        "dribbles_successful": 1.1,
        "aerial_duels": 2,
        "aerial_won": 1.2,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.4,
        "pressing_intensity_on_attacker": "ULTRA_HIGH",
        "defender_stats": [
          {
            "player": "Arda Güler",
            "role": "CM",
            "market_value": 87000000,
            "tackles_attempted": 2.3,
            "tackles_won": 1.9,
            "fouls_committed": 0.4,
            "interceptions_in_zone": 1.4,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 0.8,
            "defensive_success_rate": 0.579
          }
        ],
        "duel_analysis": "Pape Gueye (CM) is evenly matched against Arda Güler in a direct 1v1 contest. Duel win probability: 42%. The quality gap is significant (€39M vs €87M avg). Matchup xG multiplier ×1.00 (×1.00 = his usual level). Projected xG contribution: 0.192 — with neither side clearly dominant."
      },
      {
        "attacker": "Ilias Akhomach",
        "attacker_role": "RM",
        "attacker_market_value": 11100000,
        "attacker_height": 175,
        "attacker_skill_quality": 0.535,
        "defenders": [
          "Dean Huijsen"
        ],
        "defender_roles": [
          "CB"
        ],
        "def_skill_quality_avg": 0.864,
        "duel_zone": "RM vs CB",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.208,
        "xg_contribution": 0.0962,
        "xg_multiplier": 0.6879,
        "shots_in_zone": 1.1,
        "dribbles_attempted": 3,
        "dribbles_successful": 0.5,
        "aerial_duels": 2,
        "aerial_won": 0.9,
        "crosses_in_zone": 2.2,
        "fouls_drawn": 1.5,
        "pressing_intensity_on_attacker": "ULTRA_HIGH",
        "defender_stats": [
          {
            "player": "Dean Huijsen",
            "role": "CB",
            "market_value": 66000000,
            "tackles_attempted": 2.3,
            "tackles_won": 2.1,
            "fouls_committed": 0.4,
            "interceptions_in_zone": 1.4,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 1.1,
            "defensive_success_rate": 0.792
          }
        ],
        "duel_analysis": "Ilias Akhomach (RM) is heavily outmatched defensively against Dean Huijsen in a direct 1v1 contest. Duel win probability: 21%. The quality gap is significant (€11M vs €66M avg). Matchup xG multiplier ×0.69 (×1.00 = his usual level). Projected xG contribution: 0.096 — with very limited chance creation expected."
      },
      {
        "attacker": "Georges Mikautadze",
        "attacker_role": "ST",
        "attacker_market_value": 32000000,
        "attacker_height": 176,
        "attacker_skill_quality": 0.732,
        "defenders": [
          "Dean Huijsen",
          "Trent Alexander-Arnold"
        ],
        "defender_roles": [
          "CB",
          "CB"
        ],
        "def_skill_quality_avg": 0.861,
        "duel_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "numerical_situation": "1v2",
        "duel_win_rate": 0.18,
        "xg_contribution": 0.3667,
        "xg_multiplier": 0.8305,
        "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.7,
        "pressing_intensity_on_attacker": "ULTRA_HIGH",
        "defender_stats": [
          {
            "player": "Dean Huijsen",
            "role": "CB",
            "market_value": 66000000,
            "tackles_attempted": 1.2,
            "tackles_won": 1.1,
            "fouls_committed": 0.4,
            "interceptions_in_zone": 1.4,
            "clearances_in_zone": 1.2,
            "aerial_duels_won": 0.8,
            "defensive_success_rate": 0.82
          },
          {
            "player": "Trent Alexander-Arnold",
            "role": "CB",
            "market_value": 62000000,
            "tackles_attempted": 1.1,
            "tackles_won": 1.1,
            "fouls_committed": 0.4,
            "interceptions_in_zone": 1.4,
            "clearances_in_zone": 1.2,
            "aerial_duels_won": 0.8,
            "defensive_success_rate": 0.82
          }
        ],
        "duel_analysis": "Georges Mikautadze (ST) faces tough defensive resistance against Dean Huijsen and Trent Alexander-Arnold in a 2-defender block. Duel win probability: 18%. The quality gap is significant (€32M vs €64M avg). Matchup xG multiplier ×0.83 (×1.00 = his usual level). Projected xG contribution: 0.367 — and is restricted in space and time on the ball."
      }
    ],
    "midfield_battle": {
      "home_midfield_power": 0.912,
      "away_midfield_power": 0.701,
      "home_creative_power": 0.888,
      "away_creative_power": 0.719,
      "home_defensive_power": 0.749,
      "away_defensive_power": 0.659,
      "home_dominance_ratio": 0.565,
      "home_midfield_count": 4,
      "away_midfield_count": 4,
      "home_midfield_players": [
        "Jude Bellingham",
        "Arda Güler",
        "Federico Valverde",
        "Aurélien Tchouaméni"
      ],
      "away_midfield_players": [
        "Alberto Moleiro",
        "Pape Gueye",
        "Tajon Buchanan",
        "Ilias Akhomach"
      ],
      "possession_advantage": "home",
      "estimated_possession_home_pct": 51.6,
      "estimated_possession_away_pct": 48.4,
      "home_pressing_actions_per_90": 8.6,
      "away_pressing_actions_per_90": 7.8,
      "home_key_passes_projected": 6.8,
      "away_key_passes_projected": 5.8,
      "home_throughball_threat": 3.3,
      "away_throughball_threat": 2.8,
      "key_personal_duel": "Jude Bellingham vs Alberto Moleiro",
      "midfield_lambda_factor_home": 1.025,
      "midfield_lambda_factor_away": 0.984
    },
    "formation_analysis": {
      "home_formation": "3-4-2-1",
      "away_formation": "5-4-1",
      "home_tactical_bonus": 0.01,
      "away_tactical_bonus": -0.01,
      "formation_verdict": "Tactical parity between 3-4-2-1 and 5-4-1. Match outcome driven primarily by individual player quality."
    },
    "home_lambda": 3.538,
    "away_lambda": 1.348,
    "home_top_threat_zones": [
      "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
      "Shadow Striker vs Centre Back — Half-Space Threat"
    ],
    "away_top_threat_zones": [
      "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
      "Central Mid vs Central Mid — Box-to-Box Midfield Contest"
    ],
    "home_player_antagonists": {
      "Federico Valverde": {
        "opponents": [
          "Logan Costa",
          "Tajon Buchanan"
        ],
        "primary_zone": "LWB vs RWB",
        "source": "attacking_duel, defensive_duel, midfield_pairing"
      },
      "Arda Güler": {
        "opponents": [
          "Alberto Moleiro",
          "Pape Gueye"
        ],
        "primary_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
        "source": "attacking_duel, defensive_duel, midfield_pairing"
      },
      "Jude Bellingham": {
        "opponents": [
          "Alberto Moleiro",
          "Pape Gueye"
        ],
        "primary_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
        "source": "attacking_duel, midfield_pairing"
      },
      "Aurélien Tchouaméni": {
        "opponents": [
          "Carlos Romero",
          "Ilias Akhomach"
        ],
        "primary_zone": "RWB vs LWB",
        "source": "attacking_duel, defensive_duel, midfield_pairing"
      },
      "Vinícius Júnior": {
        "opponents": [
          "Renato Veiga"
        ],
        "primary_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
        "source": "attacking_duel"
      },
      "Yan Diomande": {
        "opponents": [
          "Renato Veiga"
        ],
        "primary_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
        "source": "attacking_duel"
      },
      "Kylian Mbappé": {
        "opponents": [
          "Renato Veiga",
          "Santiago Mouriño"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "attacking_duel"
      },
      "Dean Huijsen": {
        "opponents": [
          "Tajon Buchanan",
          "Ilias Akhomach",
          "Georges Mikautadze"
        ],
        "primary_zone": "LM vs CB",
        "source": "defensive_duel"
      },
      "Trent Alexander-Arnold": {
        "opponents": [
          "Georges Mikautadze"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "defensive_duel"
      },
      "Thibaut Courtois": {
        "opponents": [
          "Georges Mikautadze",
          "Alberto Moleiro"
        ],
        "primary_zone": "Shape fallback",
        "source": "formation_fallback"
      },
      "Marc Cucurella": {
        "opponents": [
          "Georges Mikautadze"
        ],
        "primary_zone": "Shape fallback",
        "source": "formation_fallback"
      }
    },
    "away_player_antagonists": {
      "Logan Costa": {
        "opponents": [
          "Federico Valverde"
        ],
        "primary_zone": "LWB vs RWB",
        "source": "defensive_duel, attacking_duel"
      },
      "Alberto Moleiro": {
        "opponents": [
          "Arda Güler",
          "Jude Bellingham"
        ],
        "primary_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
        "source": "defensive_duel, attacking_duel, midfield_pairing"
      },
      "Carlos Romero": {
        "opponents": [
          "Aurélien Tchouaméni"
        ],
        "primary_zone": "RWB vs LWB",
        "source": "defensive_duel, attacking_duel"
      },
      "Renato Veiga": {
        "opponents": [
          "Vinícius Júnior",
          "Yan Diomande",
          "Kylian Mbappé"
        ],
        "primary_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
        "source": "defensive_duel"
      },
      "Santiago Mouriño": {
        "opponents": [
          "Kylian Mbappé"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "defensive_duel"
      },
      "Tajon Buchanan": {
        "opponents": [
          "Dean Huijsen",
          "Federico Valverde"
        ],
        "primary_zone": "LM vs CB",
        "source": "attacking_duel, midfield_pairing"
      },
      "Pape Gueye": {
        "opponents": [
          "Arda Güler",
          "Jude Bellingham"
        ],
        "primary_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
        "source": "attacking_duel, midfield_pairing"
      },
      "Ilias Akhomach": {
        "opponents": [
          "Dean Huijsen",
          "Aurélien Tchouaméni"
        ],
        "primary_zone": "RM vs CB",
        "source": "attacking_duel, midfield_pairing"
      },
      "Georges Mikautadze": {
        "opponents": [
          "Dean Huijsen",
          "Trent Alexander-Arnold"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "attacking_duel"
      },
      "Luiz Júnior": {
        "opponents": [
          "Vinícius Júnior",
          "Yan Diomande"
        ],
        "primary_zone": "Shape fallback",
        "source": "formation_fallback"
      },
      "Pau Navarro": {
        "opponents": [
          "Kylian Mbappé"
        ],
        "primary_zone": "Shape fallback",
        "source": "formation_fallback"
      }
    },
    "key_tactical_insight": "Home midfield dominates with ~52% possession expected (Jude Bellingham vs Alberto Moleiro). Total antagonist xG — Home: 1.76, Away: 1.13. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.",
    "lambda_factors": {
      "home_gk_opposition_factor": 0.9644,
      "away_gk_opposition_factor": 0.9548,
      "home_set_piece_bonus": 0.1458,
      "away_set_piece_bonus": 0.1336,
      "home_defensive_solidity_vs": 0.9356,
      "away_defensive_solidity_vs": 0.8778,
      "home_midfield_factor": 1.025,
      "away_midfield_factor": 0.984,
      "stage_discount": 1.0,
      "quality_gap_applied": true,
      "home_avg_quality": 0.8819,
      "away_avg_quality": 0.659,
      "avg_quality_gap": 0.2229,
      "squad_value_gap_log": 1.3979,
      "top5_value_gap_log": 1.3218,
      "attack_value_gap_log": 1.6932,
      "elite_count_gap": 9,
      "combined_quality_gap": 0.5133,
      "stronger_lambda_boost": 0.2823,
      "weaker_lambda_suppression": 0.1643,
      "home_bench_lambda_bonus": 0.1443,
      "away_bench_lambda_bonus": 0.0679,
      "home_bench_players_modelled": 7,
      "away_bench_players_modelled": 7,
      "fbref_team_priors": {
        "applied": true,
        "home_squad": "Real Madrid",
        "away_squad": "Villarreal",
        "home_goals_per90": 3.0,
        "away_goals_against_per90": 1.33,
        "away_goals_per90": 1.3333333333333333,
        "home_goals_against_per90": 3.33,
        "home_empirical_lambda": 2.956,
        "away_empirical_lambda": 3.289,
        "blending_weight": 0.228
      },
      "mismatch_score_pressure_applied": true,
      "mismatch_score_pressure_gap": 0.5133,
      "mismatch_favorite_lambda_boost": 1.1333,
      "mismatch_underdog_lambda_factor": 0.9587,
      "pre_mismatch_home_lambda": 3.369,
      "pre_mismatch_away_lambda": 1.517,
      "competitive_underdog_floor_applied": false,
      "pre_calibration_home_lambda": 3.3692,
      "pre_calibration_away_lambda": 1.5172,
      "competition_calibration_applied": false,
      "competition_calibration_reason": "no_sofascore_matches_data",
      "competition_calibration_samples": 0,
      "competition_observed_total_goals": 0.0,
      "competition_calibration_scale": 1.0,
      "neutral_share_preserved": false,
      "final_home_lambda": 3.538,
      "final_away_lambda": 1.348
    }
  },
  "home_standing": {
    "available": true,
    "team_position": 4,
    "opponent_position": 9,
    "standing_lambda_multiplier": 1.3852,
    "attack_index": 2.079,
    "defense_concede_index": 1.04,
    "form_multiplier": 1.046,
    "team_attack_rate_contextual": 3.0,
    "opp_defense_rate_contextual": 1.5,
    "team_ppg": 2.14,
    "opponent_ppg": 1.14
  },
  "away_standing": {
    "available": true,
    "team_position": 9,
    "opponent_position": 4,
    "standing_lambda_multiplier": 1.0069,
    "attack_index": 1.126,
    "defense_concede_index": 0.924,
    "form_multiplier": 0.954,
    "team_attack_rate_contextual": 1.62,
    "opp_defense_rate_contextual": 1.33,
    "team_ppg": 1.14,
    "opponent_ppg": 2.14
  },
  "xgboost_reasoning": {
    "summary": "Antagonist + XGBoost match analysis for Real Madrid vs Villarreal. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 3-4-2-1 vs 5-4-1 (duel lambdas: Home 3.369, Away 1.517). Final calibrated Poisson lambdas: Home 3.538, Away 1.348 (most likely score 3-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": "Real Madrid",
      "away_squad": "Villarreal",
      "home_goals_per90": 3.0,
      "away_goals_against_per90": 1.33,
      "away_goals_per90": 1.3333333333333333,
      "home_goals_against_per90": 3.33,
      "home_empirical_lambda": 2.956,
      "away_empirical_lambda": 3.289,
      "blending_weight": 0.228
    },
    "pipeline_stages": [
      "1. XGBoost player regressions for volume & event rates with market-value quality scaling",
      "2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)",
      "3. Antagonist formation duel matrix resolving 1v1 and zonal matchups",
      "4. Team-level prior calibration (FBref possession and attack/defense efficiencies)",
      "5. Bivariate Poisson matrix with Dixon-Coles low-score correction"
    ],
    "final_lambdas": {
      "home_lambda": 3.538,
      "away_lambda": 1.348,
      "micro_duel_home_lambda": 3.369,
      "micro_duel_away_lambda": 1.517
    },
    "calibration_and_pressure": {
      "competition_calibration_applied": false,
      "competition_calibration_scale": 1.0,
      "mismatch_pressure_applied": true,
      "underdog_floor_applied": false
    }
  },
  "timestamp": "2026-09-30T01:05:53Z",
  "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
  }
}